Please enable JavaScript.
Coggle requires JavaScript to display documents.
Section.1 Review, Non-parametic
모집단에 대해 분포 형태를 가정할 수 없는 경우
이에 대한 가정을…
Section.1 Review
I. EDA &
Pre-processing
Feature Engineering
merge
: 합친다. 공통된 부분만 남기거나 등등
다양한 방법으로 가능
.merge(df, how = , on = )
-
- pivot()
- stack(), unstack()
- melt()
- wide_to_long()
- pd.crosstab()
-
-
-
one hot encoding
- Categorical to Numerical
: pd.get_dummies()
: from sklearn preprocessing import LabelEncoder
: from sklearn.preprocessing import OneHotEncoder
-
Scaling
- sklearn.preprocessing.StandardScalar
: 정규 분포로 변환
: 데이터의 최소/최대 값을 모를 경우에 사용
- sklearn.preprocessing.MinMaxScalar
: 0-1 사이의 값으로 변환
: 데이터의 최소, 최대 값을 알 경우 사용
III. Linear Algebra
-
Vector
-
- 공간에서 특정 방향을 가지고 이동한 것
- scalar : 벡터 scaling을 위해 사용되는 상수
- 파이썬에서 list로 사용
- 벡터의 크기 (norm, length, magnitude) |v|
: np.linalg.norm(v)
- 벡터의 내적 (Dot product)
: 내적하는 벡터의 크기가 동일해야 함
: 스칼라 값을 얻게 됨
: np.dot(v1, v2)
- Span
: 선형 조합을 통해 만들 수 있는 모든 가능한 벡터의 집합
: 각 벡터의 선형관계 유무(독립/종속)
- Rank
: 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 공간(span)의 차원
: basis -> span -> span's dimension
: 가우스 소거법
: np.linalg.matrix_rank()
vector
transformation
- Dimension Reduction
: Feature Selection
: Feature Extraction
- 데이터를 target(예측하고자 하는 목표)와 이를 예측하기 위한 모든 feature로 나눔
- row - 평균 : 각 row의 평균값이 0이 됨 (스케일 조정)
- 표준화(standardizing) - z매트릭스 생성
- z매트릭스의 분산/공분산 매트릭스 계산
- 분산/공분산 매트릭스의 고유벡터, 고유값 계산
- 고유값, 고유벡터 쌍을 크기에 따라 정렬 (PC의 순서를 정함)
- 데이터를 고유 벡터에 projection시켜서 매트릭스를 변환시킴
- Scree plot
: 몇 개의 PC를 사용할 것인가?
: 고유값의 비율을 확인
: 일반적으로 누적 7-80% 면 무난
: 격하게 꺾인 이후 비슷한 비율을 보이면 중요하지 않은 components라고 생각할 수 있음
- Eigenvectors (고유벡터)
: 회전축
: 선형변환 이후에도 방향이 변하지 않음
- Eigenvalues (고유값)
: 오직 크기만 변하는 고유 벡터
: 이러한 고유벡터의 크기를 변화시키는 eigenvalues(스칼라 값)
np.linalg.eig(matrix_A) >> (고유값, 고유벡터) 출력
- Why need transformation ?
: feature handling
: The curse of dimensionality
: Overfitting Issue
II. Statistics
가설검정
Hypothesis Test
빈도주의
Frequentist
(연역적 추론)
Parametic
- 모집단이 특정한 분포를 따른다는
가정하에 모수에 대해 추정
- 크기의 차이를 제시할 수 있음
-
[ANOVA test (분산분석)]
- 여러 그룹간 평균의 차이가
통계적으로 유의미한지 판단
- 그룹의 수가 2개 이상일 때 사용
One-way ANOVA
- 종속변인 1, 독립변인 1
- 한가지 변수의 변화가 결과가
변수에 미치는 영향을 보기위해
: stats.f_oneway(df['1'], df['2'], df['3'])
: Ordinary Least Squares(OLS) model 도 있음
-
Two-way ANOVA
- 독립변인이 2개 이상
- 집단 간 차이가 유의한지 판단
- 한가지 변수의 변화가 결과에 미치는 영향이 다른 변수의 수준에 따라 달라지는지를 확인
: statmodels 라이브러리 사용
-
-
베이지안
Bayesian
(귀납적 추론)
베이즈 정리
: 모집단 파라미터에 대한 믿음에 대한 추정
(ex. 동전을 던져 앞 면이 나왔다는 주장의 신뢰도가 0.5 이다)
- True Positive Rate(민감도): 실제 사건이 일어났을 때 사건이 일어났다고 판단할 확률
- False Positive Rate(특이도, type1 error) : 실제 사건이 일어나지 않았지만 사건이 일어났다고 판단할 확률
- True Negative Rate : 실제 사건이 일어나지 않았고 사건이 일어나지 않았다고 판단할 확률
- False Negative Rate(type2 error) : 실제 사건이 일어났지만 사건이 일어났다고 판단할 확률
사전 확률을 바탕으로 사후 확률을 얻는 것
P(H|E) = P(H) P(E|H) / P(H) P(E|H) + P(!H) * P(E|!H)
: Evidence가 True일 때, Hypothesis가 True일 확률
Central Limit Theorem (중심극한정리)
- 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포의 모양에 가까워 진다.
Confidence Interval (신뢰구간)
- 모수가 어느 범위안에 있는지
확률적으로 보여주는 방법
Law of Large Number (큰 수의 법칙)
- 데이터의 양이 많을수록(클수록) 샘플 통계치는
점점 모집단의 모수에 가까워 진다
- method chaining
Degree of Freedom
- n(샘플의 수) - 1 == 독립변수의 수
- (행-1) * (열-1) == 독립변수의 수
Sampling
- Simple random sampling : 무작위 추출
- Systematic sampling : 규칙을 가지고 추출
- Stratified random sampling : 여러 그룹 + 그룹별 무작위 추출
- Cluster sampling : 여러 그룹 + 특정 그룹 무작위 선택
Non-parametic
- 모집단에 대해 분포 형태를 가정할 수 없는 경우
이에 대한 가정을 완하하여 추정
- 범주형 데이터에 사용
- 극닥적인 outlier가 있는 경우
X2 test
- 변수가 모두 명목척도 일 때
(ex. 전공, 성별, 혈액형 등)
- 그룹의 분포를 비교할 때 선택할 수 있음
-
-
-
Kruskal-Wallis test
- 독립된 3개 군 이상의 크기를
비교하는 비모수적 평균 비교법
Machine Learning
Unsupervised Learning (비지도학습)
: 데이터에 라벨이 없을 떄
: 데이터의 구조 혹은 특징을 파악
- 군집화 (clustering)
- 차원축소 (dimension reduction)
- 연관규칙학습 (Association Rule Learning)
Clustering
: 주어진 데이터의 유사성을 파악하고 정리
Hierarchical Clustering
- Agglomerative : 작은 >> 크게
- Divisive : 큰 >> 작게
- 임의의 클러스터 수를 지정할 필요 X
- with Dendrogram
- 계층적 트리모형
- Dendrogram을 사용해서
원하는 클러스터 수 만큼 cutting
-
K-means Clustering
: 평균값을 기반으로 k개의 클러스터 형성
- 임의의 중심점 설정
- distance 기반으로 클러스터 형성
- 평균을 기반으로 새로운 중심점 계산
- 위 과정 반복 수행
-
-
Reinforcement Learing (강화학습)
: 주어진 환경에 대해 행동을 취하고,
피드백을 통해 학습
Supervised Learning (지도학습)
: 데이터에 라벨이 있을 때
- 분류 (classfication)
- 회기 (Prediction)
- 분산이란 v
: sum((관측값-평균)**2) / n-1(표본분산) or n(모분산)
: ddof = 0(모분산), ddof = 1(표본분산)
: np.var() / .var() == 분산
: np.std() / .std() == 표준편차
- 공분산이란 cov
: 두 변수 사이의 연관성을 측정
: positive, negative
: 공분산이 0에 가까울수록 관련성을 알 수 없다
: np.cov() / .cov()
- 상관계수란 r
: 공분산의 scale을 조정하자
: 공분산 / 각 변수의 표준편차
: 상관계수는 -1 ≤ r ≤1
: 데이터의 평균이나 분산 크기에 영향X
: np.corrcoef / .corr() - 피어슨 상관계수(numeric)
: 스피어만 상관계수(categorical)
- 직교성 (Orthogonality)
: 전혀 상관관계가 없는 데이터
: 임의의 두 벡터 내적값이 0이면 서로 수직
- 기저벡터 (Basis)
: 선형관계에 있지 않은 벡터 모음
: scalar가 scale하는 실제 대상이 basis
-
-
-
Numpy array & Python list
- array는 array끼리 연산이 가능하지만,
list는 연산이 불가하고 새로운 list를 생성
- array는 같은 자료형만 담을 수 있고,
list는 다양한 자료형 저장이 가능
- array는 복잡한 수계산이나 행렬같은 다차원 배열에서 용이하고,
list는 값을 추가하고 제거하는 등 자료형 저장으로 사용가능
- pd.DataFrame은 array에서 더 나아가 다양한 자료형 데이터를 담을 수 있음
-