NMF
- 비지도학습 중 비음수 행렬 분해
비음수행렬분해(NMF) 정의 및 설명
- 음수가 아닌 값만 가지고 특성을 추출하는 것이다
- 차원축소를 하는 것이다.
- 빠르게 데이터를 수집하고 학습할 수 있다
- 그러나 데이터 손실을 가져올 수밖에 없다.
음수는 과감하게 버리고, 양수만 가지고 분석한다
계수는 특징으로 생각하면 된다
문서분류, 여러 사람의 목소리가 담긴 오디오 트랙의 소스에서 원래 소리가 어떻게 되었는지 파악
행렬 인수분해 알고리즘을 사용한다
열의 개수와 두번째 참여하고 있는 항의 행의 갯수를 곱한다
이를 역으로 인수분해해서 이러한 행렬이 어떻게 형성되었는지 확인하는 방법이다
최종적으로 이전 데이터가 어떻게 되었는지 확인하려면 조합이 무엇이고, 이게 맞는지 확인해야한다
양수의 데이터만 적용할 것이고, 얼굴 데이터 가지고 어떠한 분석 작업을 하는데 있어서 양의데이터와 음의 데이터로 구분되어 있다
우리가 숫자라고 할 때는 0
255이지만, 이게 -11 , 0~1로 줄어들 수 있다어떠한 데이터를 쓰느냐에 따라서 SCALE 조정, 일반화 등을 한다
주성분분석(PCA)방식에서는 양수 음수 중요하지 않고, 절대값을 취한다. 그래서 +인지, -인지 구분 못한다
PCA는 적용할 수 있다. 근데 차원축소까지는 좋은데 이게 원본과 무슨 관계인지 확인하기가 어렵다
근데 NMF는 확인하기 쉽다
핑크에서 음수인지 아닌지 알수 x
핑크가 절대값
근데 오른쪽은 음수인지 양수인지 흑백으로 구분된다!
- 이전 블로그 글 수정하기
topic modeling
tf-idf
- : tf는 문서내 단어가 몇번 ?
- : idf는 못따라갔......
그룹핑을 하게 된다.
데이터를 나눌 때, 주제를 찾을 때 사용하는 방식 중 하나이다.
'먹다'를 음식과 함께 사용된다. 그래서 먹다를 음식 구성요소 벡터로 함께 그룹화되어 각 기사는 '음식' 주제의 특정 가중치를 갖는다.
word vector라고 하는데 deep learning때 할껴
따라서 각 기사는 음식이라는 주제에 가중치를 쌓아준다
원래 문서가 어떻게 구성되었는지 확인하는게 토픽 idf이다
NMF 실습
- sklearn에서 제공하는 fetch_20newsgroups 를 사용할 예정이다
- 아까 잠깐 보았던 word vector를 위해서 TfidVectorizer을 사용한다.
- 문자 구분
- ORIGINAL
- 이렇게 텍스트 데이터를 넣고 싶으나 못함
- 그래서 이렇게 쪼개여 data frame을 만들 예정이다
t-SNE 매니폴드 학습
변환된 데이터를 시각화 할 때, PCA를 적용하는 것은 제한적이다.
- 왜냐하면 회전을 통해 여러개의 방향을 떨어트리기 때문에
- 그래서 1차원으로 줄이면서 위치가 유사해져서 두 군집의 변별력이 떨어진다.
t-SNE매니폴드는 시각화에 유리
훈련 세트에만 적용된다.
그래서 fit_transform()을 사용해야한다
- 단점 : 매번 값이 바뀐다.
- 그치만 데이터 구분은 잘한다!
어떤 데이터가 나한테 더 가까우니 파악하고 배치하는 것이다.
iris 데이터를 이용한 t-SNE 적용하기
- DATA PART가 들어가 있는 DATAFRAME 을 생성한다
- COLUMNS를 정한다
- TARGET은 LABEL로 설정(Y) 종속변수
- FEATURE에 아까 SEPAL LENGTH ~ PETAL WIDTH까지 가지고 온다
군집(clustering)
같은 그룹에 속한 data points는 특징과 비슷한 속성을 가져야 하며, 다른 그룹에 속하는 data points는 특징과 비슷하지 않은 속성을 가져야한다!
정답을 갖지 않는 비지도!
분류 알고리즘과 유사하다
종류
k-평균 군집
- 몇개의 클러스터로 나눌 것인지 정하고 시작
- 그룹 내 데이터들이 모일 수 있도록 center을 잡는다.
- center point는 랜덤하게 시작할 수 있고, 학습을 할 수록 중심이 재조정된다.
- 새로운 데이터가 발견되면서, 기존과 같이 계산하면서 중심점이 이동한다.
- 어느 한 순간 중심점이 움직이지 않으면 더이상 계산을 하지 않고, 해당 중심점이 적절한 중심이라고 판단한다
중심점 이동 하는 것 보여주는 그림
이를 가지고 boundary 영역을 그리게 되면 아래와 같다.
DATA는 정해져 있지만 군집수는 우리가 바꿀 수 있다.(정해질 수 있다)
병합군집
DBSCN Clustering
'개발 > sk infosec cloud ai 전문가 양성과정' 카테고리의 다른 글
[파이썬 라이브러리를 활용한 머신러닝 #1] (0) | 2020.09.13 |
---|---|
[MNF 비지도학습] SK infosec 클라우드 AI전문가 양성과정 실습파일 (0) | 2020.09.11 |
[CNN&비지도학습]SK infosec 클라우드 AI 전문가 양성과정 실습 (0) | 2020.09.08 |
[CNN&비지도학습]SK infosec 클라우드 AI 전문가 양성과정 수업필기본 (0) | 2020.09.08 |
[pandas를 활용한 데이터분석]SK infosec 클라우드 AI 전문가 양성과정 실습과제 (0) | 2020.09.08 |