kaggle(www.kaggle.com/)์ Intro to Machine Learning ์ฝ์ค๋ฅผ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์์ฒด ๋ฒ์ญ์ผ๋ก ๊ณต๋ถํ๋ค๋ณด๋ ์๋ฏธ๊ฐ ์ ๋๋ก ์ ๋ฌ๋์ง ์์ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค.
์๋ชป๋ ๋ด์ฉ, ์๊ฒฌ์ ๋๋ ๋ณด๊ณ ์ถ์ ๋ด์ฉ, ์คํ ๋ฑ์ด ์๋ค๋ฉด ํธํ๊ฒ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ =)
1. How Models Work
'์นจ์ค์ด 2๊ฐ์ธ๊ฐ?' ๋ผ๋ ์ง๋ฌธ์ ๋ต์ ๋ฐ๋ผ ์ง์ ์์ธก ๊ฐ๊ฒฉ์ ๋ ๊ฐ๋๋ก ๋๋ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ค๋ฉด, ๊ฐ ๊ฐ๋์ ์ด๋ค ์ง์ ๋ฃ์ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์ง ๊ทธ๋ฃน ์์์ ํจํด(์นจ์ค ๊ฐ์์ ๊ฐ์ ์กฐ๊ฑด๋ค)์ ๋ฐ๋ผ ๋๋ค์ ์์ธก ๊ฐ๊ฒฉ์ ๊ฒฐ์ ํ๊ฒ ๋ ๊ฒ์ด๋ค.
๋ฐ์ดํฐ๋ก๋ถํฐ ํจํด์ ์ฐพ์๋ด๋ ๊ณผ์ ์ ๋ชจ๋ธ์ fitting ํน์ training, ์ด ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ training data๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Improving the Decision Tree
๋ ๊ฒฐ์ ํธ๋ฆฌ ์ค์์ ํ์ค์ฑ์ด ์๋ ๊ฒ์ ์ผ์ชฝ์ด์ง๋ง ์นจ์ค์ ๊ฐ์๋ง์ด ์ง ๊ฐ๊ฒฉ์ ์ํฅ์ ๋ฏธ์น๋ ์์๋ ์๋๊ธฐ ๋๋ฌธ์ split(์ชผ๊ฐ์ง, ๊ฐ๋ผ์ง, ๋ถํด)์ ํตํด ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ข ๋ ๊น์ ํํ์ ํธ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์๋ค.
2. Basic Data Exploration
๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ์ ๊ผญ ํ์ํ ํด์ธ Pandas์์๋ DataFrame์ ์ ๊ณตํด์ค๋ค.
(Pandas.DataFrame์ ๊ดํ ์์ธํ ์ ๋ณด๋ → โญ)
์๋์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๊ณ describe() ๋ฉ์๋๋ ์์ฑํ DF์ ๊ฐ๋จํ ํต๊ณ๋ฅผ ๋ณด์ฌ์ค๋ค.
# save filepath to variable for easier access
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
# read the data and store data in DataFrame titled melbourne_data
melbourne_data = pd.read_csv(melbourne_file_path)
# print a summary of the data in Melbourne data
melbourne_data.describe()
3. Your First Machine Learning Model
Selecting Data for Modeling
๋ฐ์ดํฐ์ ์ ๋๋ฌด ๋ง์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํ์ํ ์ ๋ณด๋ง์ ๊ณจ๋ผ์ ์ฌ์ฉํ๋ ๊ฒ ํ์ํ๋ค.
์ ์ด๋ฏธ์ง๋ melbourne_data๋ผ๋ ๋ฐ์ดํฐ์ ์์ column(์ด) ํญ๋ชฉ๋ง์ ๋ณด์ฌ์ฃผ๋ ์ฝ๋์ ๊ทธ ๊ฒฐ๊ณผ์ด๋ค.
Selecting The Prediction Target
์ฐ๋ฆฌ๊ฐ ์์ธกํ๊ณ ์ ํ๋ ์ด ์ ํ์ ์ํด dot-notation์ ์ด์ฉํด ์ ๊ทผํ ๊ฒ์ด๊ณ ์๋ก์ด ๋ณ์ y๋ ์์ธก ํ๊ฒ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Choosing "Features"
๋ชจ๋ธ์ ์ ๋ ฅ๋์ด ์์ธก์ ์์ฑํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ ์ด์ Features๋ผ๊ณ ํ๋ค. Features๋ ๋ฆฌ์คํธ์ ํํ๋ก ์ฌ๋ฌ ๊ฐ๋ฅผ ์ ํํ ์๋ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ์๋ ๊ฐ๊ฐ์ ์์ดํ ๋ค์ด string ํํ์ฌ์ผ๋ง ํ๋ค.
Building Your Model - ๋ชจ๋ธ์ ์์ฑ๊ณผ ์ฌ์ฉ์ ์ํด ๊ฑฐ์น๋ ๋จ๊ณ
- Define : ๋ชจ๋ธ ํ์ ์ง์
- Fit : ์์ฌ๊ฒฐ์ ํธ๋ฆฌ ๋ชจ๋ธ ์์ฑ
- Predict : ์์ธก
- Evaluate : ๋ชจ๋ธ์ ์์ธก ์ ํ๋ ํ๊ฐ
4. Model Validation
What is Model Validation
๋ชจ๋ธ ํ๋ฆฌํฐ ํ๊ฐ๋ฅผ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ ์ฒ๋๋ MAE(Mean Absolute Error)๋ก error๋ ์ค์ ๊ฐ๊ณผ ์์ธก๊ฐ์ ์ฐจ์ด๋ก ๊ตฌํ๋ค. MAE๋ฅผ ๊ตฌํ๋ ค๋ฉด ๋ชจ๋ธ์ด ์์ฑ๋์ด์ผ ํ๊ณ ์ฌ์ดํท๋ฐ์์ ์ ๊ณตํ๋ mean_absolute_error๋ฅผ ์ด์ฉํด ๊ณ์ฐํ ์ ์๋ค.
์ค์ฐจ๊ฐ ๊ต์ฅํ ์์๋ณด์ด์ง๋ง ์ฌ๊ธฐ์๋ ํ๊ฐ์ง ํฐ ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค.
์ด ์ฝ๋์์ predicted_home_prices๋ฅผ ๋ง๋๋ ๋ฐ์ ์ฌ์ฉ๋ X๋ ๋ชจ๋ธ ํ์ต์ ์ฌ์ฉ๋ ๊ฐ์ด๋ค. ์ฆ ์ด๋ฏธ ํ์ต๋ ๊ฐ์ ๋ค์ ๋ชจ๋ธ์ ๋ฃ์๊ธฐ ๋๋ฌธ์ ์ค์ฐจ๊ฐ ๋ฎ๊ฒ ๋์จ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ชจ๋ธ ์์ฑ์ ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ ๊ฒ์ด๊ณ ์ด ๋ฐ์ดํฐ๋ validation data๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฌ์ดํท๋ฐ์์ ์ ๊ณตํ๋ train_test_split ํจ์๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ training/validation ๋ ๊ฐ์ง ํํ๋ก ๋๋์ด์ค๋ค.
train ๋ฐ์ดํฐ๋ก ํ์ต์ ๋๋ธ ๋ชจ๋ธ์ ์ฑ๋ฅ ์ค๊ฐ ์ ๊ฒ์ validation ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. ๋ชจ๋ธ์ ์ต์ข ์ฑ๋ฅ ํ๊ฐ๋ test ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ๋๋ฐ train, validation, test ์ด ์ธ๊ฐ์ง ๋ฐ์ดํฐ์ ๋ํ ๋ด์ฉ์ ๊ธ ํ๋๋ฅผ ๋ฐ๋ก ์ฐ๋๋ก ํ๊ฒ ๋ค.
5. Underfitting and Overfitting
Underfitting | Overfitting |
train ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ํ์ตํ์ง ๋ชปํด์ train ๋ฐ์ดํฐ์ ๋ํ ์ฑ๋ฅ์กฐ์ฐจ ๋จ์ด์ง๋ ๋ฌธ์ | train ๋ฐ์ดํฐ์ ๋ํด์๋ ๋งค์ฐ ๋์ ์ ํ๋๋ฅผ ๊ฐ์ง๋ง ์์ ํ ์๋ก์ด ๋ฐ์ดํฐ๋ ์ ํ๋๊ฐ ๋จ์ด์ง๋ ๋ฌธ์ |
6. Random Forests
๋๋ค ํฌ๋ ์คํธ์ ๋ํด์๋ ์์ ํ๋์ ๊ธ๋ก ์ฐ๊ณ ์์ด์ ๋ค ์์ฑํ๋ฉด ๋งํฌ๋ฅผ ์ถ๊ฐํด๋๋๊ฑธ๋ก!
'๐ฉโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ART] adversarial_training_mnist.ipynb ์ฝ๋ ๋ถ์ (0) | 2022.01.12 |
---|---|
[ART] ART for TensorFlow v2 - Callable ์ฝ๋ ๋ถ์ (0) | 2022.01.03 |
[ART] ART for TensorFlow v2 - Keras API ์ฝ๋ ๋ถ์ (0) | 2021.12.31 |
[DACON] ์ฝ๋ ๋ถ์ - MNIST : ์ซ์ ์ด๋ฏธ์ง ๋ถ๋ฅ (0) | 2021.05.25 |
[kaggle] Intermediate Machine Learning (0) | 2021.04.28 |