๐น๏ธ ํผ๊ณต๋จธ์
Target์ ๋ชจ๋ฅด๋ Unsupervised Learning(๋น์ง๋ ํ์ต)Target์ ๋ชจ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ข
๋ฅ๋ณ๋ก ๋ถ๋ฅํ๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ ML ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค.๋ฐ๋ก Unsuperivsed Learning (๋น์ง๋ ํ์ต) ์
๋๋ค. ์ฌ๋์ด ์๋ ค์ฃผ์ง ์์๋, ๋ฐ์ดํฐ์ ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ํ์ตํ๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ํธํฉ๋๋ค.๊ทธ๋ฌ๋ฉด ํ๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํด ๋ณด๊ฒ ์ต๋๋ค.Data ์ค๋นํ๊ธฐ์ฌ๊ณผ, ๋ฐ๋๋, ํ์ธ์ ํ๋ก ๊ตฌ์ฑ๋ ํ์ ์ฌ์ง์ ๊ณผ์ผ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํด๋ณด๊ฒ ์ต๋๋ค.!wget https://bit.ly/fruits_300_data -O fruits_300.npy--2023-07-16 14:21:20-- https://bit.ly/fruits_300_dataResolving bit.ly (bit.ly)... 67.199...
๐น๏ธ ํผ๊ณต๋จธ์
Gradient Boosting (๊ทธ๋ ์ด์ธํธ ๋ถ์คํ
)๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ
(Gradient Boosting)์ ์์ ๊ฒฐ์ ํธ๋ฆฌ๋ค์ ์ฌ์ฉํ์ฌ ์ด์ ํธ๋ฆฌ์ ์ค์ฐจ๋ฅผ ๋ณด์ํ๋ ๋ฐฉ์์ผ๋ก ์์๋ธ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฒ์
๋๋ค.์ฌ์ดํท๋ฐ์ GradientBoostingClassifier๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊น์ด๊ฐ 3์ธ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ 100๊ฐ ์ฌ์ฉํฉ๋๋ค. ์์ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ณผ๋์ ํฉ์ ๊ฐํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก ๋์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.'๊ทธ๋ ์ด๋์ธํธ'๋ผ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด, ์ด ๋ฐฉ๋ฒ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ๋ฅผ ์์๋ธ์ ์ถ๊ฐํฉ๋๋ค. ๋ถ๋ฅ ๋ฌธ์ ์์๋ ๋ก์ง์คํฑ ์์ค ํจ์๋ฅผ ์ฌ์ฉํ๊ณ , ํ๊ท ๋ฌธ์ ์์๋ ํ๊ท ์ ๊ณฑ ์ค์ฐจ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์๋ฆฌ์ฒ๋ผ, ๊ทธ๋ ์ด๋์ธํธ ๋ถ์คํ
์ ์์ค ํจ์์ ์ต์์ ์ ์ฐพ๊ธฐ ์ํด ๋ชจ๋ธ..
๐น๏ธ ํผ๊ณต๋จธ์
Extra Trees (์์คํธ๋ผ ํธ๋ฆฌ)์์คํธ๋ผ ํธ๋ฆฌ(Extra Trees)๋ ๋๋ค ํฌ๋ ์คํธ์ ๋งค์ฐ ์ ์ฌํ๊ฒ ๋์ํ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก 100๊ฐ์ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ํ๋ จํฉ๋๋ค.์ด ๋ชจ๋ธ์ ๋๋ค ํฌ๋ ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋๋ถ๋ถ์ ๊ฒฐ์ ํธ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ํ๊ณ , ์ผ๋ถ ํน์ฑ์ ๋๋คํ๊ฒ ์ ํํ์ฌ ๋
ธ๋๋ฅผ ๋ถํ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.๋๋ค ํฌ๋ ์คํธ์ ์์คํธ๋ผ ํธ๋ฆฌ์ ์ฃผ์ ์ฐจ์ด์ ์ ๋ถํธ์คํธ๋ฉ ์ํ์ ์ฌ์ฉํ์ง ์๋๋ค๋ ์ ์
๋๋ค.์ฆ, ๊ฐ ๊ฒฐ์ ํธ๋ฆฌ๋ฅผ ๋ง๋ค ๋ ์ ์ฒด ํ๋ จ ์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ , ๋
ธ๋๋ฅผ ๋ถํ ํ ๋ ๊ฐ์ฅ ์ข์ ๋ถํ ์ ์ฐพ์ง ์๊ณ ๋ฌด์์๋ก ๋ถํ ํฉ๋๋ค.์ฌ์ค, ์ด์ ์ DecisionTreeClassifier์ spliter ๋งค๊ฐ๋ณ์๋ฅผ 'random'์ผ๋ก ์ค์ ํ ๊ฒ์ด ๋ฐ๋ก ์์คํธ๋ผ ํธ๋ฆฌ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์
๋๋ค.๊ฐ ๊ฒฐ์ ํธ๋ฆฌ์์ ํน์ฑ์ ๋ฌด..
๐น๏ธ ํผ๊ณต๋จธ์
์ ํ ๋ฐ์ดํฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋๋ค ํฌ๋ ์คํธ์ ๋ํด ๋ฐฐ์ฐ๊ธฐ ์ ์ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ์๋ ๋ฐ์ดํฐ๋ฅผ ๋๋์๋ณด๊ฒ ์ต๋๋ค.๊ธธ์ด, ๋์ด, ๋ฌด๊ฒ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ CSV ํ์ผ์ ๊ฐ์ง๋ฐํ ์ ๋ฆฌ๋์ด ์์์ฃ .์ด๋ฒ์๋ ์ฌ์ฉํ ์์ธ ๋ฐ์ดํฐ๋ CSV ํ์ผ์ด์์ต๋๋ค.# CSV ํ์ผ ์์length, height, width8.4, 2.11, 1.4113.7, 3.53, 2.0์ด๋ฐ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ํ ๋ฐ์ดํฐ(structured data)๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ์ฝ๊ฒ ๋งํด, ์ด๋ค ๊ตฌ์กฐ๋ก ๋์ด์๋ค๋ ๋ป์ด์ฃ .์ด๋ฐ ๋ฐ์ดํฐ๋ CSV๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DataBase), ํน์ ์์
(Excel)์ ์ ์ฅํ๊ธฐ ์ฝ์ต๋๋ค.์จ๋ผ์ธ ์ผํ๋ชฐ์ ์ง์ด๋ ์ํ๊ณผ ์ฐ๋ฆฌ๊ฐ ๊ตฌ๋งคํ ์ผํ ์ ๋ณด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ์ ํ ๋ฐ์ดํฐ์ ์ํฉ๋๋ค.์ฌ์ค ํ๋ก๊ทธ๋๋จธ๊ฐ ..
๐น๏ธ ํผ๊ณต๋จธ์
Validation Set (๊ฒ์ฆ ์ธํธ)Test Dataset์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ชจ๋ธ์ด ๊ณผ๋์ ํฉ์ธ์ง ๊ณผ์์ ํฉ์ธ์ง ํ๋จํ๊ธฐ ์ด๋ ต์ต๋๋ค.ํ
์คํธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ด๋ฅผ ์ธก์ ํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ Training Dataset์ ๋๋๋ ๋ฐฉ๋ฒ์
๋๋ค.์ด ๋๋ Dataset๋ฅผ Validation Set (๊ฒ์ฆ ์ธํธ)๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.์ ์ฒด ๋ฐ์ดํฐ์
์ด 100%๋ผ๊ณ ํ๋ฉด ์ ์ฒด ๋ฐ์ดํฐ์
์ค์์ 20%๋ง Test Dataset์ผ๋ก ๋ง๋ค๊ณ , 80%๋ฅผ Train Dataset์ผ๋ก ๊ตฌ์ฑํ์ผ๋ฉด, ์ด Training Dataset์ค 20%๋ฅผ ๋ผ์ด ๋ด์ด์ Validation Dataset์ผ๋ก ๋๋๋๋ค.Training Dataset์์ Model์ Trainingํ๊ณ Validation Set๋ก ๋ชจ๋ธ์ ํ๊ฐํฉ๋๋ค.์ด๋ฐ์์ผ๋ก Test ํ๊ณ ์ถ..
๐น๏ธ ํผ๊ณต๋จธ์
Logistic Regression (๋ก์ง์คํฑ ํ๊ท) ๋ก ์์ธ ๋ถ๋ฅํ๊ธฐ์์ธ์ ๋ถ๋ฅ ํ๊ธฐ ์ํด์ ์ผ๋จ ๋ฐ์ดํฐ์
์ ๋ถ๋ฌ์ค๊ฒ ์ต๋๋ค.import pandas as pdwine = pd.read_csv('https://bit.ly/wine_csv_data')wine.head()์ด๋ ๊ฒ ๋ฐ์ดํฐ์
์ Pandas DataFrame์ผ๋ก ์ ๋ถ๋ฌ ์๋์ง head() Method๋ก ํ๋ฒ ๋ถ๋ฌ์์ต๋๋ค.์ฒ์ 3๊ฐ์ ์ด(alcohol, suger, pH)๋ ์์ฝ์ฌ ๋์, ๋น๋, pH(์ฐ๋)๋ฅผ ๋ํ๋
๋๋ค.class๋ ํ๊น๊ฐ์ด 0์ด๋ฉด ๋ ๋์์ธ, 1์ด๋ฉด ํ์ดํธ ์์ธ ์ด๋ผ๊ณ ํฉ๋๋ค.์ด๊ฑด ๋ ๋ & ํ์ดํธ ์์ธ์ ๊ตฌ๋ถํ๋ Binary Classification(์ด์ง ๋ถ๋ฅ)๋ฌธ์ ์ธ๊ฑฐ ๊ฐ์ต๋๋ค. ์ฆ, ์ ์ฒด ์์ธ์ ๋ฐ์ดํฐ์์ ํ์ดํธ ์์ธ์ ๊ณจ๋ผ๋ด..
๐น๏ธ ํผ๊ณต๋จธ์
ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ(Stochastic Gradient Descent)์ ์ ์ง์ ํ์ต ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์
๋๋ค. ๊ทธ ์ ์ ์ ์ง์ ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ฌ ์ค๋ช
์ ๋๋ฆฌ๋ฉด, ์ด์ ์ ํ๋ จํ ๋ชจ๋ธ์ ๋ฒ๋ฆฌ๊ณ ์๋ก์ด ๋ชจ๋ธ์ ํ๋ จํ๋ ๊ฒ์ด ์๋, ๊ธฐ์กด์ ํ๋ จํ ๋ชจ๋ธ์ ๊ทธ๋๋ก ๋๊ณ , ์๋ก์ด ๋ฐ์ดํฐ์ ๋ฐํ ํ๋ จ์ ๊ธฐ์กด์ ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ํ์ต ํ๋ ์๊ณ ๋ฆฌ์ฆ ์
๋๋ค.๊ทธ๋์ ๋ณธ๋ก ์ผ๋ก ๋์์ค๋ฉด, ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์์ ํ๋ฅ ์ ์ด๋ ๋ง์ '๋ฌด์์ํ๊ฒ' ํน์ '๋๋คํ๊ฒ' ์ ๊ธฐ์ ์ ์ธ ํํ์
๋๋ค.๊ทธ๋ฆฌ๊ณ ๊ฒฝ์ฌ๋, ๊ธฐ์ธ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฆ, ๊ทธ๋ฌ๋ฉด ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๊ฒฝ์ฌ๋ฅผ ๋ฐ๋ผ ๋ด๋ ค๊ฐ๋ ๋ฐฉ๋ฒ์
๋๋ค.๊ฒฝ์ฌํ๊ฐ๋ฒ์ ํน์ง์ ๊ฐ์ฅ ๊ฐํ๋ฅธ ๊ฒฝ์ฌ๋ฅผ ๋ฐ๋ผ ์ํ๋ ์ง์ ์ ๋๋ฌํ๋๊ฒ์ ๋ชฉํ๋ก ์ผ๊ณ ์์ต๋๋ค. ๋ค๋ง, ๊ฐํ๋ฅธ ๊ฒฝ์ฌ๋ฅผ ๋ด๋ ค๊ฐ๋์..
๐น๏ธ ํผ๊ณต๋จธ์
๋ก์ง์คํฑ ํ๊ท๋ญํค๋ฐฑ์ ํ๋ฅ K-์ต๊ทผ์ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ณ ์ด์์ ์ฐพ์์ฃผ๋๊น ์ด์์ ํด๋์ค ๋น์จ์ ํ๋ฅ ์ด๋ผ๊ณ ์ถ๋ ฅํ๋ฉด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.๋ณด๋ฉด ์ํ X ์ฃผ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ด์ ์ํ 10๊ฐ๋ฅผ ํ์ํ์ต๋๋ค. ์ผ๊ฐํ์ด 5๊ฐ, ์ฌ๊ฐํ์ด 3๊ฐ, ์ 2๊ฐ๊ฐ ์์ต๋๋ค.์ด์ํ ์ํ์ ํด๋์ค๋ฅผ ํ๋ฅ ๋ก ์ผ๋๋ค๋ฉด ์ํ X๊ฐ ์ฌ๊ฐํ์ด ํ๋ฅ ์ 30%, ์ผ๊ฐํ์ผ ํ๋ฅ ์ 50%, ์์ธ ํ๋ฅ ์ 20%์
๋๋ค.Scikit-learn์ K-์ต๊ทผ์ ์ด์ ๋ถ๋ฅ๊ธฐ๋ ์ด์ ๋์ผํ ๋ฐฉ์์ผ๋ก Class ํ๋ฅ ์ ๊ณ์ฐํ์ฌ ์ ๊ณตํฉ๋๋ค. ํ๋ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์ ํด๋ณด๊ฒ ์ต๋๋ค.๋ฐ์ดํฐ ์ค๋นimport pandas as pdfish = pd.read_csv('https://bit.ly/fish_csv_data')fish.head()# Species(7๊ฐ์ ์..
๐น๏ธ ํผ๊ณต๋จธ์
๋ค์ค ํ๊ท(Characteristic Engineering and Regulation)๋ค์ค ํ๊ท์ฌ๋ฌ๊ฐ์ ํน์ฑ์ ์ฌ์ฉํ ์ ํ ํ๊ท(Linear Regression)๋ฅผ ๋ค์ค ํ๊ท(Multiple Regression)์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.1๊ฐ์ ํน์ฑ์ ์ฌ์ฉํ์๋, ์ ํ ํ๊ท ๋ชจ๋ธ์ด ํ์ต ํ๋๊ฒ์ ์ง์ ์
๋๋ค. 2๊ฐ์ ํน์ฑ์ ์ฌ์ฉํ๋ฉด ์ ํ ํ๊ท๋ ํ๋ฉด์ ํ์ตํฉ๋๋ค.์ผ์ชฝ ๊ทธ๋ฆผ์ด 1๊ฐ์ ํน์ฑ์ ์ฌ์ฉํ ์ ํ ํ๊ท ๋ชจ๋ธ์ด ํ์ต ํ๋ ๋ชจ๋ธ, ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ด 2๊ฐ์ ํน์ฑ์ ์ฌ์ฉํ ์ ํ ํ๊ท ๋ชจ๋ธ์
๋๋ค.์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ฒ๋ผ ํน์ฑ์ด 2๊ฐ๋ฉด Target๊ฐ๊ณผ ํจ๊ป 3์ฐจ์ ๊ณต๊ฐ์ ํ์ฑํ๊ณ ์ ํ ํ๊ท ๋ฐฉ์ ์์ ํ๋ฉด์ด ๋ฉ๋๋ค.Target = a x ํน์ฑ1 + b x ํน์ฑ2 + ์ ํธ๊ทธ๋ฌ๋ฉด ํน์ฑ์ด 3๊ฐ์ผ ๊ฒฝ์ฐ์๋? ์ฐ๋ฆฌ๋ 3์ฐจ์ ๊ณต๊ฐ์ ๊ทธ๋ฆฌ๊ฑฐ๋ ์์ํ ..
๐น๏ธ ํผ๊ณต๋จธ์
K-์ต๊ทผ์ ์ด์์ ํ๊ณK-์ต๊ทผ์ ์ด์ ๋ชจ๋ธ์ ํ๊ณ๋ ๋ง์ฝ ์๋ก์ด ์ํ์ ๊ฐ์ด Training_set์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ์๋ฑํ ๊ฐ์ ์์ธกํ ์ ์์ต๋๋ค.ํ๋ฒ ์์๋ณด๊ธฐ ์ํ์ฌ ์ ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ ๋ชจ๋ธ์ ์ค๋นํด์ ํ๋ฒ ๋๋ ค๋ณด๊ฒ ์ต๋๋ค.import numpy as npperch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 2..