Loading...
2022. 2. 8. 01:28

데이터분석 전문가(ADP)를 위한 R프로그래밍 기초편5

1. 데이터프레임 데이터에서 각각의 변수에 해당하는 열들의 모임 data.frame(벡터, 벡터, 벡터, ...) 벡터들로 데이터셋을 생성함 혹은 열 변수벡터로 데이터셋을 생성 혹은 data.frame(변수1이름=값, 변수2이름=값, 변수3이름=값,.....) > a b c d d a b c 1 1 5 9 2 2 6 10 3 3 7 11 4 4 8 12 > new new a b c d 1 1 2 3 a N=100 > dtfm dtfm$lab [1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" [42] "" "" "" "" "" ""..

2022. 2. 7. 15:48

유사도(similarity)와 거리(distance)는 무슨 차이가 있을까?(+ cosine distance vs. euclidean distance)

유사도와 거리는 밀접한 관계가 있다고 생각할 수 있다. 거리가 클 수록 유사도는 떨어진다. 비교하는 특징은 같으나 측량하는 관점에서는 서로 반대라는 것이다. 두 데이터 X,Y의 거리함수(distance function) d는 수학적으로 다음과 같이 정의한다. 위 식을 모두 만족하는 d가 거리함수다 유사도함수 s(X,Y)는 실수값을 출력하는 함수로 특별한 정의는 없다. 그래서 조금 더 일반적이다(general) 유사도함수가 특별히 [0,1]내에서 값을 가진다고 하면 두 함수 의미의 서로 반대의미와 identity-discening에 주목하여 유사도함수가 위의 거리함수의 공리를 모두 만족한다면 완벽하게 혼용해서 사용할 수 있다. 그런데 모든 유사도함수가 위의 조건을 만족할까? 그렇지도 않다. 지금 당장 생각..

데이터분석 전문가(ADP)를 위한 R프로그래밍 기초편4

1. 벡터 벡터의 원소들은 동질적 한 벡터의 모든 원소는 같은 자료형 또는 같은 모드(mode)를 가진다. 예를 들어 문자형과 수치형을 넣으면 모두 문자형으로 통일된다 > v v [1] "yun" "13" "22" 벡터는 위치로 indexing가능 v[2]는 v의 2번째 원소 벡터는 인덱스를 통해 여러 개의 원소로 구성된 하위 벡터를 반환할 수 있다 v[c(2,3)]은 v벡터의 2번째, 3번째 원소로 구성된 하위벡터 인덱스에 -를 붙이면 해당 번호는 제외한 나머지 번호의 원소를 가져옴 v[-c(2,3)]은 2,3번째 값을 제외한 하위벡터 > v v[2] [1] 21 > v[c(2,3)] [1] 21 42 > v[-c(2,3)] [1] 33 32 5 4 432 21 벡터의 원소들도 이름을 가질 수 있다 >..

데이터분석 전문가(ADP)를 위한 R프로그래밍 기초편1

1. 출력함수 print() - 한번에 하나의 객체만 출력 > a print(a) [1] 3 cat() - 여러 항목을 묶어서 연결된 결과 출력 > cat('yun','dae','hyuck') yun dae hyuck > a b cat(a,b) 3 4 2. 할당연산자 a print(a) [1] 3 > a a = 5 > print(a) [1] 5 > a -> 6 Error in 6 6 -> a > print(a) [1] 6 3. 변수 목록보기 ls(), ls.str() 사용가능 > a ls() [1] "a" > ls.str() a : num 3 4. 변수 삭제하기 rm()을 사용 응용하여 rm(list=ls())로 모든 변수 목록 삭제 가능 5. 벡터 생성 c()를 사용 문자, 숫자, 논리값, 변수를 모두..

2022. 1. 12. 22:46

선형변환으로서의 행렬이 가지는 의미

1. 선형변환으로 생각하는 행렬 행렬은 벡터공간에서 두 데이터 사이 연결관계를 나타내는 연산자로 생각할 수도 있다. (선형변환) 벡터 $x$에 행렬 $A$를 곱하여 다른 차원의 벡터 $z$로 변환시킴 기계학습의 선형모델들은 위와 같은 선형변환 행렬곱을 이용해서 데이터 $x$의 패턴($z$)을 추출하거나 압축시킨다. 행렬 A의 연산을 거꾸로 되돌리는 행렬이 A의 역행렬 $A$의 역행렬은 $A$의 행과 열의 숫자가 같고 $A$의 행렬식이 0이 아니어야 존재한다 2. np.linalg.inv() numpy의 np.linalg.inv()는 역행렬이 존재하는 행렬의 역행렬을 구해준다 컴퓨터 연산 오차로 인해 자기 자신과 역행렬을 곱해보면 정확히 항등행렬이 나오진 않고 비슷한 값으로 나온다 X와 np.linalg...

2022. 1. 7. 00:08

벡터의 내적의 기하학적 의미

1. 내적의 기하학적 의미 1-1) 정사영(projection) 위의 그림에서 벡터 a를 x의 정사영이라고 부른다 (projection) 1-2) 정사영의 길이 삼각함수 cos을 이용하여 위와 같이 정사영의 길이를 쉽게 구할 수 있다. 1-3) 두 벡터의 유사도 그렇다면 x,y의 내적은 x의 정사영벡터 크기에 벡터 y의 길이를 곱한 것이 된다. 그러므로 우리는 내적을 두 벡터 x,y의 유사도 측정에 사용할 수 있을 것 같다. 두 벡터가 비슷할수록 정사영의 길이가 커서 내적도 크다 두 벡터가 비슷할수록 두 벡터가 이루는 각의 크기가 작다(cosine 값이 크다) 두 벡터의 내적이 클수록 두 벡터가 그만큼 유사하다는 것 내적이 크다는 것은 두 벡터가 이루는 각이 작아야한다는 뜻임 두 벡터는 두개의 데이터로 ..