3.unsupervised learing

72
Machine Learning with Python Unsupervised Learning 1

Transcript of 3.unsupervised learing

Page 1: 3.unsupervised learing

Machine Learningwith Python

Unsupervised Learning

1

Page 2: 3.unsupervised learing

ContactsHaesun Park

Email : [email protected]

Meetup: https://www.meetup.com/Hongdae-Machine-Learning-Study/

Facebook : https://facebook.com/haesunrpark

Blog : https://tensorflow.blog

2

Page 3: 3.unsupervised learing

Book파이썬라이브러리를활용한머신러닝, 박해선.

(Introduction to Machine Learning with Python, Andreas Muller & Sarah Guido의번역서입니다.)

번역서의 1장과 2장은블로그에서무료로읽을수있습니다.

원서에대한프리뷰를온라인에서볼수있습니다.

Github: https://github.com/rickiepark/introduction_to_ml_with_python/

3

Page 4: 3.unsupervised learing

비지도학습

4

Page 5: 3.unsupervised learing

종류

비지도변환unsupervised transformation

사람이나머신러닝알고리즘을위해새로운데이터표현을만듦차원축소: PCA, NMF, t-SNE, 오토인코더autoencoder

토픽모델링: LDA (e.g. 소셜미디어토론그룹핑)

군집clustering

비슷한데이터샘플을모으는것 (e.g. 사진어플리케이션)k-평균, 병합, DBSCAN

데이터스케일링scaling

이상치탐지anomaly detection, GANgenerative adversarial networks

5

Page 6: 3.unsupervised learing

비지도학습의어려움

레이블이없기때문에올바르게학습되었는지알고리즘을평가하기가어려움

사진애플리케이션에서옆모습, 앞모습으로군집되었다해도직접눈으로확인하기전에는결과를평가하기가어려움

비지도학습은데이터를잘이해하기위해서(탐색적분석) 사용되거나,

지도학습알고리즘의정확도향상과메모리/시간절약을위해전처리단계로활용

6

Page 7: 3.unsupervised learing

데이터스케일조정

7

Page 8: 3.unsupervised learing

네가지스케일링

8

인위적으로만든이진분류데이터(특성 2개)

10~15

1~10

표준점수, z-점수: 평균 0, 분산 1𝑥 − �̅�𝜎

사분위값사용, 이상치에덜민감𝑥 − 𝑞&𝑞' − 𝑞(

𝑥 − 𝑥)*+𝑥),- − 𝑥)*+

모든특성이0과 1사이에위치

Normalizer(norm=‘l2’)다른방법과달리행(포인트) 별로적용

Page 9: 3.unsupervised learing

cancer + MinMaxScaler

9

y_train은사용하지않음

Page 10: 3.unsupervised learing

MinMaxScaler.transform

10

fit à transform

numpy 배열의min, max 메서드

최소와최댓값이0, 1로바뀜

Page 11: 3.unsupervised learing

transform(X_test)

11

훈련세트로학습시킨 scaler를사용해 X_test를변환

테스트세트의최소, 최댓값이 0~1 사이를벗어남

𝑥./0. − 𝑥.1,*+_)*+𝑥.1,*+_),- − 𝑥.1,*+_)*+

Page 12: 3.unsupervised learing

train과 test의스케일조정

12

Page 13: 3.unsupervised learing

<단축메서드>

13

transform 메서드를가진변환기클래스는모두 fit_transform 메서드를가지고있음

TransformerMixIn 클래스를상속하는대부분의경우 fit_transform은단순히scaler.fit().transform()처럼연이어호출

일부의경우 fit_transform 메서드가효율적인경우가있음(PCA)

Page 14: 3.unsupervised learing

scaler + SVC

14

Page 15: 3.unsupervised learing

PCA

15

Page 16: 3.unsupervised learing

주성분분석Principal component analysis

상관관계가없는특성으로데이터셋을변환(회전)하고일부특성을선택하는기술

16분산이가장큰방향(화살표방향은의미없음)

첫번째와직각이면서가장분산이큰방향

성분1, 2로데이터를변환(특성의수 == 성분의수)

두번째성분제거

다시원래특성차원으로변환

Page 17: 3.unsupervised learing

PCA와특이값분해

17

C𝑜𝑣 𝑋*, 𝑋8 =1

𝑛 − 1 [(𝑋* − 𝑋>*)(𝑋8 − 𝑋>8)]

행렬 X의공분산

평균을뺀행렬로표현하면

C𝑜𝑣 𝑋, 𝑋 =1

𝑛 − 1𝑋B𝑋

특이값분해(SVD) 𝑋 = 𝑈𝑆𝑉B로부터

C𝑜𝑣 𝑋, 𝑋 =1

𝑛 − 1𝑋B𝑋 =

1𝑛 − 1 𝑉𝑆𝑈B 𝑈𝑆𝑉B = 𝑉

𝑆&

𝑛 − 1VG

𝑉( 𝐶(,& 𝐶(,'𝐶(,& 𝑉& 𝐶&,'𝐶(,' 𝐶&,' 𝑉'

대칭행렬의고유벡터인 V가주성분의방향

𝑋IJ, = 𝑋𝑉 = 𝑈𝑆𝑉B𝑉 = 𝑈𝑆

행렬의고유벡터à크기만바뀌고방향은바뀌지않음

𝑦 = 𝐴𝑥 = 𝜆𝑥

공분산행렬의고유벡터à분산의주방향

Page 18: 3.unsupervised learing

PCA + cancer

18

특성의스케일을맞추기위해분산이 1이되도록변경

fitàtransform

Page 19: 3.unsupervised learing

pca.components_components_ 속성에주성분방향principal axis VT가저장되어있음

components_ 크기 (n_components, n_features)

19

𝑋 = 𝑈𝑆𝑉B𝑋IJ, = 𝑋𝑉 = 𝑈𝑆

[n_samples, n_features]∙[n_features, n_components]=[n_samples, n_components]

주성분방향을직관적으로설명하기어려움

Page 20: 3.unsupervised learing

LFW dataset메사추세츠애머스트주립대의비전랩에서만든 LFWLabeled Faces in the Wild 데이터셋

인터넷에서모은 2000년대초반유명인사의얼굴이미지

20

총 62명의얼굴3,023개à2,063개이미지각이미지는 87x65 사이즈à5,655 개의특성

Page 21: 3.unsupervised learing

k-NN + lfw(지도학습) 1-최근접이웃을적용

87x65 픽셀값의거리를계산하므로위치에매우민감해짐

21

무작위로분류할경우 1/62=1.6%

Page 22: 3.unsupervised learing

화이트닝whitening

백색소음에서이름이유래됨, 특성간의 (대각행렬을제외한) 공분산이모두 0이되고(PCA) 특성의분산이 1로되는변환

22

Page 23: 3.unsupervised learing

k-NN + whitening

23

주성분의갯수

픽셀수==특성의수==주성분의벡터방향

Page 24: 3.unsupervised learing

PCA as weighted sum

주성분방향으로변환한데이터(x)에주성분방향을곱하여원본샘플복원

[1 x 100] ∙ [100 x 5655] = [1 x 5655]

원본샘플을주성분의가중치합으로표현

24

Page 25: 3.unsupervised learing

비음수행렬분해(NMF)

25

Page 26: 3.unsupervised learing

NMFPCA와비슷하고차원축소에사용할수있음

원본 = 뽑아낸성분의가중치의합

음수가아닌성분과계수를만드므로양수로이루어진데이터에적용가능

예) 여러악기나목소리가섞인오디오트랙

26

Page 27: 3.unsupervised learing

NMF + 인공데이터셋

27

성분이특성개수만큼많다면데이터의끝부분을가리킴

하나일경우에는평균방향을가리킴

성분의개수를변경하면전체성분이모두바뀌고성분의순서가없음

Page 28: 3.unsupervised learing

NMF < PCANMF는주로데이터에있는패턴을분할하는데주로사용함

NMF + lfw

28

Page 29: 3.unsupervised learing

NMF - lfw의성분

NMF PCA성분이모두양수이므로얼굴이미지와가까운형태를띰

29

Page 30: 3.unsupervised learing

NMF + signal data

30

Page 31: 3.unsupervised learing

t-SNE

31

Page 32: 3.unsupervised learing

t-SNEt-Distributed Stochastic Neighbor Embedding

매니폴드학습manifold learning은비선형차원축소의기법

PCA는저차원의평면에투영하는효과를낸다고말할수있음

매니폴드학습은시각화에뛰어난성능을발휘함

탐색적데이터분석에사용(no transform 메서드)

2차원평면에데이터를퍼뜨린후원본특성에서의거리를유지하도록학습

32

Page 33: 3.unsupervised learing

load_digits8x8 흑백이미지의손글씨숫자데이터셋(MNIST 데이터셋아님)

33

Page 34: 3.unsupervised learing

PCA + load_digits2개의주성분으로데이터변환

34

Page 35: 3.unsupervised learing

TSNE + load_digitsv0.19에서버그수정됨

뛰어난클래스시각화능력

perplexity(5~50, default 30)가크면이웃을많이포함시킴(큰데이터셋)

early_exaggeration(default 1)에서초기과장단계의정도를지정함

35

Page 36: 3.unsupervised learing

k-평균군집

36

Page 37: 3.unsupervised learing

군집

데이터셋을클러스터cluster라는그룹으로나누는작업

한클러스터안의데이터는매우비슷하고다른클러스터와는구분되도록만듬

분류알고리즘처럼테스트데이터에대해서어느클러스터에속할지예측을만들수있음

• k-평균군집

• 병합군집

• DBSCAN

37

Page 38: 3.unsupervised learing

k-평균means 군집

가장간단하고널리사용됨

임의의클러스터중심에데이터포인트를할당하고평균을내어다시클러스터중심을계산함

클러스터에할당되는데이터포인트의변화가없으면알고리즘종료됨

38

Page 39: 3.unsupervised learing

k-평균 example

39

Page 40: 3.unsupervised learing

KMeans

40

레이블에어떤의미가없으며순서가무작위임(분류와다른점)

Page 41: 3.unsupervised learing

n_clusters=2 or 5n_clusters 매개변수에따라군집이크게좌우됨

41

Page 42: 3.unsupervised learing

k-평균의단점

클러스터가원형이고반경이동일하다고간주함

42

Page 43: 3.unsupervised learing

벡터양자화

PCA, NMF가데이터포인트를성분의합으로표현할수있는것처럼 k-평균은데이터포인트를하나의성분으로나타내는것으로볼수있음(벡터양자화)

43

클러스터평균

Page 44: 3.unsupervised learing

차원확대

44

두개의특성에서10개의특성으로늘어남e.g. [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]

Page 45: 3.unsupervised learing

KMeans.transform()각데이터포인트에서모든클러스터까지의거리를반환

10개의새로운특성으로활용가능

45

Page 46: 3.unsupervised learing

장단점

장점

이해와구현이쉬움비교적빠르고인기가높음대규모데이터셋에적용가능(MiniBatchKMeans)

단점

무작위로초기화하므로난수에따라결과가달라짐n_init(default 10) 매개변수만큼반복하여클러스터분산이작은결과를선택함클러스터모양에제한적임클러스터개수를해야함(실제로는알수없음)

46

Page 47: 3.unsupervised learing

병합군집

47

Page 48: 3.unsupervised learing

병합군집agglomerative clustering

데이터포인트를하나의클러스터로지정해지정된클러스터개수가될때까지두클러스터를합쳐나감

비슷한클러스터를선택하는방법을 linkage 매개변수에지정함

• ward: 기본값, 클러스터내의분산을가장작게만드는두클러스터를병합(클러스터의크기가비슷해짐)

• average: 클러스터포인트사이의평균거리가가장작은두클러스터를병합

• complete: 클러스터포인트사이의최대거리가가장짧은두클러스터를병합

48

Page 49: 3.unsupervised learing

병합군집 example

49n_clusters=3

Page 50: 3.unsupervised learing

AgglomerativeClustering새로운데이터에적용할수없음(fit_predict 만있음)

50

Page 51: 3.unsupervised learing

계층적군집

병합군집을사용하려면클러스터의개수를지정해야함

병합군집은계층적군집이므로클러스터가병합되는과정을살피면클러스터개수를선택하는데도움이됨

51

Page 52: 3.unsupervised learing

덴드로그램dendrogram

2차원이상의계층적군집을표현하기위한도구

scipy의연결linkage 함수와덴드로그램함수를사용

52

두클러스터가합쳐질때의거리

Page 53: 3.unsupervised learing

DBSCAN

53

Page 54: 3.unsupervised learing

DBSCAN 특징

클러스터개수를미리지정할필요없음

복잡한형상에적용가능, 노이즈포인트구분

k-평균이나병합군집보다는느림

데이터가많은밀집지역을찾아다른지역과구분하는클러스터를구성함

밀집지역의포인트를핵심샘플이라고부름

한데이터포인트에서 eps 안의거리에 min_samples 개수만큼데이터가있으면이포인트를핵심샘플로분류함. à클러스터가됨

54

Page 55: 3.unsupervised learing

DBSCAN 알고리즘

처음무작위로포인트를선택하고 eps 거리안의포인트를찾음

eps 거리안의포인트 < min_samples 이면잡음포인트(-1)로분류

eps 거리안의포인트 > min_samples 이면핵심포인트로분류, 새클러스터할당

핵심포인트안의 eps 안의포인트를확인하여클러스터할당이없으면핵심샘플의클러스터를할당함(경계포인트)

eps 안의포인트가이미핵심샘플이면그포인트의이웃을또차례로방문하여클러스터가자라남

아직방문하지못한포인트를다시선택해동일한과정을반복함

55

Page 56: 3.unsupervised learing

DBSCAN + 인공데이터셋

56

min_samples=5eps=0.5

잡음포인트

핵심포인트

경계포인트

클러스터증가

잡음포인트증가

Page 57: 3.unsupervised learing

eps, min_sampleseps가가까운포인트의범위를정하기때문에더중요함

eps가아주작으면핵심포인트가생성되지않고모두잡음으로분류됨

eps를아주크게하면모든포인트가하나의클러스터가됨

eps로클러스터의개수를간접적으로조정할수있음

StandardScaler나 MinMaxScaler로특성의스케일을조정할필요있음

min_samples는덜조밀한지역이잡음포인트가될지를결정함

min_samples 보다작은개수가모여있는지역은 잡음포인트가됨

57

Page 58: 3.unsupervised learing

DBSCAN + Two Moons

58

Page 59: 3.unsupervised learing

군집알고리즘비교, 평가

59

Page 60: 3.unsupervised learing

ARI, NMI0(무작위)~1(최적) 사이의값, ARI의최저값은 -0.5 혹은 -1 임

60

normalized_mutual_info_score

Page 61: 3.unsupervised learing

accuracy?군집의클래스레이블은의미가없음에도정확도는클래스레이블이같은지를확인함

61

Page 62: 3.unsupervised learing

실루엣silhouette 계수

ARI, NMI는타깃값이있어야가능, 애플리케이션보다알고리즘을개발할때도움이됨

타깃값필요없이클러스터의밀집정도를평가

-1: 잘못된군집, 0: 중첩된군집, 1: 가장좋은군집

모양이복잡할때는밀집정도를평가하는것이잘맞지않음

원형클러스터의실루엣점수가높게나옴

62

Page 63: 3.unsupervised learing

silhouette_score

63

Page 64: 3.unsupervised learing

군집평가의어려움

실루엣점수가높다하더라도찾아낸군집이흥미로운것인지는알수없음

사진애플리케이션이두개의클러스터를만들었다면

앞모습 vs 옆모습

밤사진 vs 낯사진

아이폰 vs 안드로이드

클러스터가기대한대로인지는직접확인해야만알수있습니다.

64

Page 65: 3.unsupervised learing

군집 + LFW

65

Page 66: 3.unsupervised learing

DBSCAN

66

2063x100

min_samples=5

잡음포인트

클러스터범위증가

Page 67: 3.unsupervised learing

DBSCAN 잡음포인트

67

Page 68: 3.unsupervised learing

LWF의클러스터

68

대다수의얼굴이미지는비슷하거나비슷하지않음

Page 69: 3.unsupervised learing

k-평균 + LWF

69

2063x100

pca.inverse_transfom(km.cluster_centers_)

10x100100x5655

Page 70: 3.unsupervised learing

k-평균의중심에서가깝고먼이미지

70

Page 71: 3.unsupervised learing

병합군집 + LWF

71

Page 72: 3.unsupervised learing

장단점

군집알고리즘은정성적분석과정이나탐색적분석단계에유용

k-평균, 병합군집: 클러스터개수지정

k-평균: 클러스터의중심을데이터포인트의분해방법으로볼수있음

DBSCAN: eps 매개변수로간접적으로클러스터크기를조정, 잡음포인트인식,클러스터개수자동인식, 복잡한형상파악가능

병합군집: 계층적군집으로덴드로그램을사용해표현할수있음

72