์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ์ฃผ์ฑ๋ถ๋ถ์
- dataframe
- ADP
- ADsP
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ์ธ๋์ํ๋ง
- t-test
- ๋ ๋ฆฝํ๋ณธ
- opencv
- ๋ฐ์ดํฐ๋ถ์
- Python
- pandas
- ํ ์คํธ๋ถ์
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ๋น ๋ฐ์ดํฐ
- ํ์ด์ฌ
- datascience
- PCA
- LDA
- iloc
- ์๋ํด๋ผ์ฐ๋
- Lambda
- ์ค๋ฒ์ํ๋ง
- ํฌ๋กค๋ง
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- ๊ตฐ์งํ
- numpy
- DBSCAN
- ๋์ํ๋ณธ
Data Science LAB
[Python]NMF ๋ณธ๋ฌธ
NMF ๊ฐ์
NMF๋ Truncated SVD์ ๊ฐ์ด ๋ฎ์ ๋ญํฌ๋ฅผ ํตํ ํ๋ ฌ ๊ทผ์ฌ ๋ฐฉ์์ ๋ณํ์ด๋ค. NMF๋ ์๋ณธ ํ๋ ฌ ๋ด์ ๋ชจ๋ ์์ ๊ฐ์ด ๋ชจ๋ 0 ์ด์์ด๋ผ๋๊ฒ ๋ณด์ฅ๋๋ฉด ์ข ๋ ๊ฐ๋จํ๊ฒ ๋ ๊ฐ์ ์์ ํ๋ ฌ๋ก ๋ถํด๋ ์ ์๋ ๊ธฐ๋ฒ์ ์ง์นญํ๋ค.
4×6 ์๋ณธ ํ๋ ฌ V๋ 4×2 ํ๋ ฌ W์ 2×6ํ๋ ฌ H๋ก ๊ทผ์ฌํด ๋ถํด๋ ์ ์๋ค. ํ๋ ฌ ๋ถํด(Matrix Factorization)๋ ์ผ๋ฐ์ ์ผ๋ก SVD์ ๊ฐ์ ํ๋ ฌ ๋ถํด ๊ธฐ๋ฒ์ ํต์นญํ๋ค. ์ด์ฒ๋ผ ํ๋ ฌ ๋ถํด๋ฅผ ํ๊ฒ ๋๋ฉด W์ Hํ๋ ฌ์ ๊ธธ๊ณ ๊ฐ๋ ํ๋ ฌW์ ์๊ณ ๋์ ํ๋ ฌ H๋ก ๋ถํด๋๋ค. ๋ถํด๋ ํ๋ ฌ์ ์ ์ฌ ์์๋ฅผ ํน์ฑ์ผ๋ก ๊ฐ์ง๊ฒ ๋๋๋ฐ, ๋ถํด ํ๋ ฌ W๋ ์๋ณธ ํ์ ๋ํด ์ด ์ ์ฌ ์์์ ๊ฐ์ด ์ผ๋ง๋ ๋๋์ง์ ๋์ํ๋ฉฐ, ๋ถํด ํ๋ ฌ H๋ ์ด ์ ์ฌ ์์๊ฐ ์๋ณธ ์ด๋ก ์ด๋ป๊ฒ ๊ตฌ์ฑ ๋๋์ง๋ฅผ ๋ํ๋ธ๋ค.
NMF๋ SVD์ ์ ์ฌํ๊ฒ ์ฐจ์ ์ถ์๋ฅผ ํตํด ์ด๋ฏธ์ง ๋ณํ ๋ฐ ์์ถ, ํ ์คํธ์ ํฌํฑ ๋์ถ ๋ฑ์ ์์ญ์์ ์ฌ์ฉ๋๋ค.
iris data์ ์ ์ฉ
from sklearn.decomposition import NMF
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
%matplotlib inline
iris = load_iris()
iris_ftrs = iris.data
nmf = NMF(n_components=2)
nmf.fit(iris_ftrs)
iris_nmf = nmf.transform(iris_ftrs)
plt.scatter(x=iris_nmf[:,0],y=iris_nmf[:,1],c=iris.target)
plt.xlabel("NMF Component 1")
plt.ylabel("NMF Component 2")
iris ๋ฐ์ดํฐ๋ฅผ NMF๋ฅผ ํตํด 2๊ฐ์ ์ปดํฌ๋ํธ๋ก ๋ณํํ๊ณ ์๊ฐํ ํ ๊ฒฐ๊ณผ์ด๋ค.
'๐ Machine Learning > ์ฐจ์ ์ถ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] SVD(Singular Value Decomposition) (0) | 2022.03.07 |
---|---|
[Python] LDA(Linear Discriminant Analysis) (0) | 2022.03.07 |
[Python] PCA ์์ (0) | 2022.03.06 |
[Python] PCA(Principal Component Analysis) (0) | 2022.03.05 |