250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ›  Machine Learning/์ฐจ์› ์ถ•์†Œ (5)

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๋Š” ์ด ์ž ์žฌ ์š”์†Œ๊ฐ€ ์›๋ณธ ์—ด๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌ..

[Python] SVD(Singular Value Decomposition)

SVD ๊ฐœ์š” SVD๋Š” PCA์™€ ๋น„์Šทํ•˜๊ฒŒ ํ–‰๋ ฌ ๋ถ„ํ•ด ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜์ง€๋งŒ, PCA๋Š” ์ •๋ฐฉํ–‰๋ ฌ๋งŒ์„ ๊ณ ์œ  ๋ฒกํ„ฐ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐ˜๋ฉด, SVD๋Š” ํ–‰๊ณผ ์—ด์ด ๋‹ค๋ฅธ ๋ชจ๋“  ํ–‰๋ ฌ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ, SVD๋Š” m×n ํฌ๊ธฐ์˜ ํ–‰๋ ฌ A๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. SVD๋Š” ํŠน์ด๊ฐ’ ๋ถ„ํ•ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ํ–‰๋ ฌ U์™€ V์— ์†ํ•˜๋Š” ๋ฒกํ„ฐ๋Š” ํŠน์ด๋ฒกํ„ฐ์ด๋‹ค. ๋ชจ๋“  ํŠน์ด๋ฒกํ„ฐ๋Š” ์„œ๋กœํ•˜๋Š” ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค. U : m×m ํฌ๊ธฐ์˜ ํ–‰๋ ฌ, ์—ญํ–‰๋ ฌ์ด ๋Œ€์นญ ํ–‰๋ ฌ ∑ : m×n ํฌ๊ธฐ์˜ ํ–‰๋ ฌ, ๋น„๋Œ€๊ฐ ์„ฑ๋ถ„์ด 0 V : n×nํฌ๊ธฐ์˜ ํ–‰๋ ฌ, ์—ญํ–‰๋ ฌ์ด ๋Œ€์นญ V,U๋Š” ์ง๊ตํ–‰๋ ฌ ๋žœ๋คํ–‰๋ ฌ ์ƒ์„ฑ import numpy as np from numpy.linalg import svd np.random.seed(121) a = np.random.randn(4,4..

[Python] LDA(Linear Discriminant Analysis)

LDA ๊ฐœ์š” LDA๋Š” ์„ ํ˜• ํŒ๋ณ„ ๋ถ„์„๋ฒ•์œผ๋กœ, PCA์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์…‹์„ ์ €์ฐจ์› ๊ณต๊ฐ„์— ํˆฌ์—ฌํ•ด ์ฐจ์›์„ ์ถ•์†Œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. PCA์™€์˜ ์ฐจ์ด๋Š” LDA๋Š” ์ง€๋„ํ•™์Šต์˜ ๋ถ„๋ฅ˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋„๋ก ๊ฐœ๋ณ„ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€์„ ์ตœ๋Œ€ํ•œ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฐจ์›์„ ์ถ•์†Œํ•œ๋‹ค. ๋ฐ˜๋ฉด PCA๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๋™์„ฑ์˜ ๊ฐ€์žฅ ํฐ ์ถ•์„ ์ฐพ์•˜์ง€๋งŒ, LDA๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๊ฒฐ์ • ๊ฐ’ ํด๋ž˜์Šค๋ฅผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ถ•์„ ์ฐพ๋Š”๋‹ค. #์ฐธ๊ณ  2022.03.05 - [Python] PCA(Principal Component Analysis) [Python] PCA(Principal Component Analysis) PCA ๊ฐœ์š” PCA(Principal Component Analysis)๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ฐจ์› ์ถ•์†Œ ๊ธฐ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ..

[Python] PCA(Principal Component Analysis)

PCA ๊ฐœ์š” PCA(Principal Component Analysis)๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ฐจ์› ์ถ•์†Œ ๊ธฐ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜ ๊ฐ„์— ์กด์žฌํ•˜๋Š” ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ์ด์šฉํ•ด ์ด๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ์ฃผ์„ฑ๋ถ„(Principal Component)๋ฅผ ์ถ”์ถœํ•ด ์ฐจ์›์„ ์ถ•์†Œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. PCA ์ฐจ์› ์ถ•์†Œ๋กœ ์ธํ•œ ์ •๋ณด ์œ ์‹ค์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๋†’์€ ๋ถ„์‚ฐ์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ์˜ ์ถ•์„ ์ฐพ์•„ ์ด ์ถ•์œผ๋กœ ์ฐจ์›์„ ์ถ•์†Œํ•œ๋‹ค. ์ด๊ฒƒ์ด PCA์˜ ์ฃผ์„ฑ๋ถ„์ด ๋˜๋Š”๋ฐ, ๋ถ„์‚ฐ์ด ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์„ ๊ฐ€์žฅ ์ž˜ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ดˆํ‰๋ฉด์„ ์ •์˜ํ•˜๊ณ , ์ด ์ดˆํ‰๋ฉด์— ๋ฐ์ดํ„ฐ๋ฅผ ํˆฌ์˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ํˆฌ์˜์‹œ์ผฐ์„ ๋•Œ ๋ฐ์ดํ„ฐ์…‹๊ณผ์˜ ํ‰๊ท  ์ œ๊ณฑ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ดˆํ‰๋ฉด์„ ์ฐพ๊ณ  ํˆฌ์˜ ์‹œํ‚ค๋Š” ๊ณผ์ •์„ ๊ทธ๋ฆผ์— ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค. PCA๋Š” ์ œ์ผ ๋จผ์ € ๊ฐ€์žฅ ๋ฐ์ดํ„ฐ ๋ณ€๋™์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒซ ๋ฒˆ..