블로그 정리를 오랫동안 못했다 ㅋㅋㅋ 너무 혼자 진도를 쫓아가느라 바빴기 때문이다.
3번의 Sprint Challenge가 끝났다. 3주가 지났는데 체감은 며칠이었다..하루 지난 느낌인데 정신차리면 3일이 지나갈 정도이다. 고등학교 때 이렇게 공부했으면ㅋㅋㅋㅋㅋㅋㅋㅋ 이라는 생각이 많이 들었다. 첫 주와 두번째 주 sprint challenge는 좀 멘붕이었다.. ㅋㅋㅋ 막상 풀려니 지금까지 공부한 내용들이 엉킨 실처럼 뒤죽박죽 정리가 안됐었다는게 확연히 느껴졌다. 일주일 뒤 쯤 다시 공부하고 정리해서 재제출했는데 내가 이걸 왜 못풀었을까 라는 생각이 들었다. 그것도 오픈북인데..왜... ㅎㅎ? 아마 기초가 많이 부족했지 않았나 싶다. 저번에도 말했듯이 인간은 적응의 동물이라고 1주, 2주 헤맸지만 3주차 sprint challenge는 도전과제까지 잘 풀어 냈다. 너무 행복했따 ㅎㅎ처음으로 스챌 3점받아서 너무 기뻤다.
TO DO LIST
- 데이터사이언스와 선형대수의 관계
- 벡터,스칼라,매트릭스의 기본 연산
- Numpy 기본 선형대수 계산
- 벡터의 크기 (norm,length,magnitude) ||x||
np.linalg.norm(x)
- 벡터의 내적 (Dot Product), 내적을 하는 이유
np.dot(x,y)
내적의 특징 : 교환법칙,분배법칙,두 벡터의 길이 동일
- 영벡터
np.zeros(( , ))
- 일벡터
np.ones(( , ))
- 정방행렬(Square matrix)
- 정방행렬의 특별케이스
대각행렬(Diagonal),단위행렬(Identiy matrix),대칭행렬(Symmetric),상삼각(Upper Triangular),하삼각(Lower Triangula)
- 행렬식(Determinant) |x|
- 행렬의 곱
np.matmul, dot, @
과 차이
- 역행렬(Inverse matrix)
- Dimensionality 매트릭스의 행과 열의 숫자를 차원이라 표현 (행,열)
- 2개의 매트릭스 일치 : 동일한 차원, 각각 동일한 구성요소들
- 전치
- 분산(Variance)
df.var(ddof=n)
- 공분산(Covariance)
df.cov()
: 1개의 변수 값이 변화할 때 다른 변수가 어떠한 연관성을 나타내며 변하는지 측정)
공분산값이 높으면 두변수의 연관성이 높다 ( 두 변수가 연관성이 적더라도 큰 스케일을 가지고 있따면 연관이 높지만, 스케일이 작은 변수들에 비해 높은 공분산 값을 가진다)
- 표준편차(Standard deviation)
df.std(ddof=n)
분산의 제곱근 , 분산의 스케일을 낮춰줌.
- 상관계수(Correlation coefficient)
df.corr()
분산이 표준편차를 사용하는 것처럼, 공분산의 스케일 조정(-1과 1사이 값)으로 상관계수 사용
- 피어슨 상관계수(Pearson correlation coefficient) - numeric
- 스피어만 상관계수(Spearman correlation coefficient) - categorical (rank)
scipy.stats.spearmanr(a,b,axis=0)
- 수직성,직교 (Orthogonality)
: 내적값이 0이면 수직
- 단위벡터(Unit Vectors)
:모든벡터(혹은 매트리스)는 단위벡터의 선형조합으로 표기된다.
- 스판(Span) -공간
- 선형관계의 벡터(Linearly Dependaent Vector) = 선 위
- 선형관계가 없는벡터(Linearly Independent Vector) 선형적으로 독립되어있다.
- 기저(Basis)
: 선형관계에 있지 않은 벡터들의 모음
- 직교기저(Othogonal Basis) : Basis + 수직
서로 수직인 벡터들
- 정규직교기저(Othonormal Baiss) : Basis + 수직 + Normalized
길이가 서로 1인 벡터들
Gram-Schmidt(그람 슈미트 직교화) : 주어진 벡터들을 이용해 서로 수직인 벡터들을 만드는 과정
- 랭크(Rank) np.linalg.matrix_rank
: 매트릭스의 Rank란, 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 Span(공간)의 차원.
Gaussian Elimination : 주어진 매트릭스를 Row-Echelon form(사다리꼴)로 바꾸는 계산과정
- 직선투영법(Linear Projection)
- 행렬곱(matrix multiplication)
- 행렬식이 사용되는 벡터곱(cross products which use the determinent)
- 고유벡터(Eigenvactor)
np.linalg.eig(a)
: transformation에 대해 크기만 변하고 방향은 변하지 않는 벡터
- 고유값(Eigenvalues)
: 고유벡터에서 변화하는 크기는 결국 스칼라 값으로 변화할 수 밖에 없는데, 이 특정 스칼라 값을 고유값이라고 한다.
- 벡터변환(Vector Transformation), 선형변환(Linear transformation)
: 임의의 두 벡터를 더하거나 혹은 스칼라값을 곱하는 것
- High dimension data
- Feature Extraction/Selection
- PCA(Principle Component Analysis) 주성분분석
: 고차원의 데이터셋을 원본 데이터의 정보를 최대한 유지하면서 낮은 차원의 데이터셋으로 변환하는 기술
- 고유값을 쓰는 이유
- 고차원 문제
- 원 핫 인코딩 (One hot encoding)
pd.get_dummies(df)
categorical -> numerical
- 차원축소 PCA
- 클러스터링(Clustering)
: Un-Supervised learning Algorithm의 한 종류.
목적- 데이터를 요약정리하려고.
클러스터링이 대답할 수 있는 질문은 주어진 데이터들이 얼마나, 어떻게 유사한지 이다.
그렇게 때문에 주어진 데이터셋을 요약/정리 하는데 있어서 매우 효율적인 방법들 중 하나로 사용된다. 그러나 동시에 정답을 보장하지 않는다는 이슈도 있어 production의 수준, 혹은 예측을 위한 모델링에 쓰이기보다는 EDA를 위한 방법으로 많이 쓰인다.
- K-means Clustering
- Hierarchical
1.응집형(개별 포인트에서 시작 후 점점 크게 합쳐감 2.분열형(한개의 큰 cluser에서 시작 후 점점 작은 cluster로 나눠감)
- Point Assignment
- Hard/Soft clustering
- Similarity , Euclidean