Rucrazia's Blog
PCA, CLSTURING(K-Means), Association Rule 본문
PCA
입력 변수를 분석함으로써 모형의 예측변수의 수를 줄이기 위한 유용한 기법.
의사결정을 위해서 필요한 변수가 많을 때는, 어떤 변수를 사용 해야 할지 모름..
다중공선성이 있다는 것은 이 현상을 위한 데이터 중에서 그 다중공선성(상관관계)가 있다는 것은 그 만큼 중요하다는 것이다.
상관 관계가 깊은 애들을 뭉쳐서 하나 이상의 변수로 합쳐준다.
그렇게 되면 변수가 줄어들기 때문에 의사결정이 쉬워진다.
종류가 여러개 있는 변수들을 최사한의 변수의 갯수로 줄여서 정보의 유실 없이 최대한 많은 정보를 뽑아낼수 있는 최소의 변수를 뽑아내는것.
두 변수 사이의 가장 관련 있는 축(직선)을 만드는것(회귀 분석과 비슷 but, 다름)
2차원으로 보았을 때 첫번째 주성분은 가장 길게, 가장 퍼져있는 방향의 축에 해당함.
회귀직선과 같은(like) 종단면으로 자르게 되면 가장 많은 데이터를 가져오기 때문.
직선을 따라 데이터들의 분산(흩어진 정도)이 가장큼. 투영(Projection)시켰을 때, 해당 직선을 따라 데이터의 분산이 최대가 되는 방향의 직선이다.
이때 최대한 많이 받고 남은 것들에 대해서 또한 처리를 해줘야 한다.
남은 것은, 해당 직선의 직교 하는 방향의 직선으로 데이터를 투영 하는것이 가장 남은 것들을 많이 얻을 수 있다.
왜냐하면 내적을 하게 되면 cos90이 0 이므로..
2차원 데이터라면 두 개의 주성분이 존재하다.
3차원 데이터라면 3개의 주성분이 존재한다.
그런데.. 주성분의 priority에 따라서 주성분1 직선, 주성분2 직선... 이렇게 순서로 나온다.
그래서 만약 5차원에서 주성분1, 주성분2만 이용해서 90%를 커버한다면(투영 시킬수) 5차원에서 -> 2차원으로 줄일 수 있다.
공분산(Covariance)
Cov(X,Y) > 0 X가 증가할 때 Y도 장그한다.
Cov(X,Y) < 0 X가 증가 할 때 Y는 감소한다.
Cov(X,Y) = 0 공분산이 0이라면 두 변수간에는 아무런 선형관계가 없으며 두 변수는 서로 독립적인 관계에 있음을 알 수 있다.
Cov(X,Y) = E((X-u)(Y-v)), (공분산은 X의 편차와 Y의 편차의 곱의 평균)
값이 -1 이라면 음의 상관관계, 1이라면 양의 상관관계. 0이라면 상관관계가 없는것.
Covariance Matrix
C={cov(x,x) cov(x,y)}
{cov(x,y) cov(y,y)}
cov(x,x), cov(y,y)는 자기 자신의 분산.
Eigenvalue (고유값), Eigenvector (고유벡터)
어떤 행렬에다 어떤 벡터를 곱할 때, 그게 그 자신의 벡터가 나오는데, 자신에서 상수 배(상수항)를 한 벡터가 나오는 것을 Eigenvalue(원래 나의 벡터 값*상수),
Eigenvector(자기 자신의 상수배가 되는 0이 아닌 벡터)
ex) Eighen Face에서 상수배를 하게 되면 내 얼굴이 나오기 때문에 face recognition이 가능하다.
PCA 는 쉽게 할 수 있다. DS의 역량은 NAME이다. 주 변수에다 이름 정해줘야 한다.(PC1 , PC2 이런 이름을 바꿔야 하는데, 각각 설명해주는 결과 값을 봐야한다.)
EX)
#Data discriptions for "finance_status"
#총자본순이익율 V1_s
#자기자본순이익율 V2_s
#자기자본비율 V3_s
#부채비율(반대로 수정) V4_s2
#자기자본회전율 V5_s
Rotation (n x k) = (5 x 5):
PC1 PC2 PC3 PC4 PC5
V1_s 0.09373882 0.6033309 0.52638705 -0.1603219 -0.569577433
V2_s -0.19558222 0.6627687 0.05727038 0.3689553 0.618932422
V3_s 0.34003657 -0.1591396 0.54542166 -0.5214229 0.538222127
V4_s2 0.88467603 0.2340351 -0.39009742 0.1018889 0.004304681
V5_s -0.23384629 0.3415138 -0.51959214 -0.7455908 0.052939735
PC1은 부채비율이 차지하는 수익률이 크므로 안정성으로 네이밍 가능
PC2는 수익성.
PC3는 자본 활용성 (V1,V3,V5가 많이 영향을 끼치므로)
CLSTURING(군집화)
고객을 어떻게 구분 할 것인가?
EX) 성년 남성 시장, 35~45세 시장, 북미 시장과 같은 여러 변수들을 이용해서 기계가 직접 시장을 정해준다.
변수둘의 수치들 값을 알아서 계산해서 군집화 해준다.
군집화의 기준 : 동일한 군집에 속하는 개체는 여러 속성이 비슷하고, 서로 다른 군집에 속한 관찰치는 그렇지 않도록 군집을 구성.
취향(ex, 소비패턴)의 관련한 문제에서는 일반적으로는 인구 통계적 변인은 유의미하게 관계가 있지는 았다.. (취향의 문제.. 일본 소녀랑 미국 백인 아저씨랑 같은 영화 취향 일수도.. ㅎㅎ)
군집화 - 고객 세분화의 예
-인구 통계적 변인
-구매패턴 변인
-생활패턴 변인
숫자들이 범주도 다르고 단위도 다르기 때문에 노멀라이즈 해야 한다.
CLUSTER HIERARCHY
Dendrogram은 그래프로 나오는데,
Agglomerative 방식과 Divisive 방식이 있다.
Agglomerativ 방식은 가장 가까운 애하고 짝 지어주는 것.
그리고 그다음 뭉친 애들에서 가까운 애들끼리 또 묶는다.
(토너먼트 형식의 그래프가 그려지게 된다. , 아래에서 위로 가게 된다.)
Divisive 방식은 반대로 위에서 아래로 내려가게 된다.
Hierarchical Clustering
방법 : 각 object는 개개의 클러스터 임.
반복 : 거리가 가장 가까운 클러스터 들을 반복적으로 merge 시킨다.
끝: 1개의 단일 클러스터가 생성
Measuring Distance Between Records
일반 데이터는 euclidian distance
1,0 데이터는 Jaccard coefficient로 해야 한다.
Cluster Distance Measures
-Single link : 가장 최소 점 사이의 거리를 가지고 군집 간의 거리를 구한다.
-Complete link : 가장 먼 점 사이의 거리를 가지고 군집 간의 거리를 구한다.
-Average : 모든 점들의 거리의 평균을 구한 것이다.
K-Means Clustering
각 집합별(cluster) 중심점(centroid) ~ 집합 내 오브젝트간 거리의 제곱합을 최소로 하는 집합을 찾는 것
KNN 과 K-Mean의 차이는 결과를 넣어주냐 안 넣어주냐의 차이이다.
KNN은 지도학습, K-Mean은 비지도학습.
사전에 결정된 군집수 k에 기초하여 전체 데이터를 상대적으로 유사한 k개의 군집으로 구분.
1.k(군집 수)를 구한다. 몇 개로 나눌 것인가 실제 실무진하고 이야기를 나눠야 한다.(4팀 까지만 있는데 k를 5개로 해서 나누면 안 된다.......)
2.스타트 포인트(데이터 안의 것들의 k 갯수)를 랜덤하게 선택한다. 그런 다음 가장 가까운 center를 찾아서 이하집산을 한다.
3.그 센터를 점으로 선택하고, 다시 그것들의 센터를 찾는다. 반복..
4.편 가르기를 하고 나서 편과 편간의 거리가 가장 짧아지는(더이상 센터를 찾는게 무의미 해질 때까지) 상태가 되면 알고리즘 끝난다.
K-means 군집분석법의 결과는 초기 군집수 k의 결정에 민감하게 반응함. (한 사람의 경우도 다양하게 나눠질 수 있으므로..)
자료의 시각화를 통해 최적 군집수를 결정하게 되는데, 시각화를 위해서는 PCA를 이용해서 차원 줄여주는 것을 통해서 하기도 한다.
Association Rule(연관성 분석)
데이터 안에 존재하는 항목간의 연관규칙을 발견하는 과정. (Basket analysis 라고도 불림)
Support
비율, 두 품목 A와 b의 지지도는 전체 거래항목 중 항목 a와 항목 b가 동시에 포함하는 거래의 비율.
영수증 별로 분석(영수증 안에 여러 구매 품목들이 있다.)
1 -A,B,C
2-B,C,F
3-A,B,G
=> B,C를 같이 사는 비중은 100개 중에 2개가 있다고 표현 가능.
Confidence
1 -A,B,C
2-B,C,F
3-A,B,G
=> B를 삿을때 C를 살 확률. 품목 A가 포함 된 거래수에서 품목 A와 B가 동시에 포함하는 거래수. 즉, B가 잘 팔리면 C도 잘팔리는가를 얘끼 가능.
Lift
나 혼자 있을 때 보다 같이 있을 때 더 잘 팔리는가에 대한 비율.
Lift값이 클수록, 품목 a의 구매여부가 품목 b의 구매 여부에 큰 영향을 미쳤다고 볼 수 있다.
1 보다 큰 경우는 두 품목이 서로 양의 상관관계 더 잘 팔리는것.
1 보다 작은 경우는 혼자 있는게 더 좋은 결과..
음수나 0이 나오면 같이 놓으면 안된다..
음수이면 어떤거를 사면 다른 애는 더욱 안 산다.
More than...
머신러닝 : 부스팅, 배깅, 앙상블
Unsupervised learning : DB Scan, SVM
시계열 : ...
출처
GBSA 경기도경제과학진흥원 2017 SW - tech 전문교육 4주차
'기술 - Data Science > Data Science' 카테고리의 다른 글
Statistics_Introduction 1. Statistics(통계)란 무엇인가? (0) | 2017.08.27 |
---|---|
Data Science 1. 단순선형회귀 (2) (0) | 2017.08.07 |
Data Science 1. 단순선형회귀 (1) (0) | 2017.08.02 |
Neural Network, Decision Tree, KNN (0) | 2017.07.31 |
Regression Model(Linear, Logistic,Naive Bayes) (0) | 2017.07.31 |