์ง๋ ํฌ์คํ ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ค.
์ด๋ฒ์๋ ์ด์์น๋ฅผ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ค์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ค๋ณผ ๊ฒ์ด๋ค.
๋ฐ์ดํฐ๋ฅผ feature ๋ฐ์ดํฐ์ label ๋ฐ์ดํฐ๋ก ๋ถ๋ฆฌ ํ ๋ค์
ํ์ต์ฉ, ํ๊ฐ์ฉ ๋ฐ์ดํฐ๋ก ๋ถ๋ฆฌํด์ ๋ถ์ํ๋ ๊ณผ์ ์ ๊ฑฐ์น ๊ฑฐ๋ค.
'sklearn' ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ๋ฌ ํจ์๋ค์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํด ๋ณผ ๊ฒ์ด๋ค.
Scikit-learn์ ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ฉ ์์ ์ํํธ์จ์ด ๊ธฐ๊ณ ํ์ต ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
titanic_3 = titanic_2[titanic_2['Age']-np.floor(titanic_2['Age']) == 0 ]

์ฐ๋ฆฌ๋ titanic dataframe์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌ ํ์ฌ titanic_3์ ์ ์ฅํด์คฌ์๋ค.
X = titanic_3.drop(columns=['Survived'])
y = titanic_3['Survived']
print('X ๋ฐ์ดํฐ ๊ฐ์: %d' %(len(X)))
print('y ๋ฐ์ดํฐ ๊ฐ์: %d' %(len(y)))
X ๋ณ์์๋ label ๊ฐ์ธ 'Survied'๋ฅผ ์ ์ธํ ๋๋จธ์ง column๋ค์ ์ํ๋ค์ ๋ชจ๋ ์ ์ฅํ๊ณ ,
y ๋ณ์์๋ label ๊ฐ์ธ 'Survied' column์ ์ํ ๊ฐ๋ค๋ง ๋จ๊ธด๋ค.
์ ์ฒด ์ํ์ ์ ๋ฐ X, y ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ํ์ธํด๋ณด๋ ๊ฐ 687๊ฐ์ฉ์ผ๋ก ๋์๋ค. (์ด ์ํ ์๋ 687๊ฐ!)

687๊ฐ์ X์ y๊ฐ๋ค ์ค์ ์ผ๋ถ๋ ๋จธ์ ๋ฌ๋์ ํ์ต์ ์ํด ์ฌ์ฉํ๊ณ (train) ๋๋จธ์ง ๊ฐ๋ค์ ๋ง๋ค์ด์ง ์ธ๊ณต์ง๋ฅ์ ์ ํ๋๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํ ๊ฒ์ด๋ค(test).
from sklearn.model_selection import train_test_split
train_test_split(arrays, test_size, train_size, random_state, shuffle, stratify)
[์ถ์ฒ] [Python] https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
๋ค์์ sklearn์์ ์ ๊ณตํ๋ train_test_split ํจ์์ด๋ค.
arrays : np array, dataframe ๋ฑ์ ์ ๋ ฅ
test_size : ํ ์คํธ ๋ฐ์ดํฐ ์ธํธ์ ๋น์จ์ ์ ์(float : ๋น์จ, int : ๊ฐ์)
train_size : ํ์ต ๋ฐ์ดํฐ ์ธํธ์ ๋น์จ์ ์ ์(float : ๋น์จ, int : ๊ฐ์)
random_state : ๋ฐ์ดํฐ ๋ถํ ์ ์ ํ์ด ์ด๋ฃจ์ด์ง๋๋ฐ ์ด๋ฅผ ์ํ ์๋๊ฐ
โ๏ธ ์ ํด์ฃผ๋ฉด ๋งค๋ฒ ์ฝ๋๋ฅผ ์ํํ ๋๋ง๋ค ์ปดํจํฐ๊ฐ ๋์ผํ๊ฒ ํ์ตํ๋ค.
โ๏ธ ๊ณต๋ ์์ ์ ํ ๋ ์ ๋ฆฌํ๊ฒ ์์ฉํ ์ ์๋ค.
shuffle : ์ ํ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด์ฃผ๋๋ฐ, default = True ์ด๊ธฐ์ ์ ํ์ ์ํ๋ค๋ฉด ๋ฐ๋ก ์ ์ด์ฃผ์ง ์์๋ ๋๋ค.
โ๏ธ shuffle์ ์ํ๋ฉด shuffle = False ๋ฅผ ์จ์ฃผ๋ฉด ๋๋ค!
stratify : ์ง์ ํ Data์ ๋น์จ์ ์ ์งํ๋ค. ์๋ฅผ ๋ค์ด, Label Set์ธ Y๊ฐ 25%์ 0๊ณผ 75%์ 1๋ก ์ด๋ฃจ์ด์ง Binary Set์ผ ๋, stratify=Y๋ก ์ค์ ํ๋ฉด ๋๋์ด์ง ๋ฐ์ดํฐ์ ๋ค๋ 0๊ณผ 1์ ๊ฐ๊ฐ 25%, 75%๋ก ์ ์งํ ์ฑ ๋ถํ ๋๋ค.
[์ถ์ฒ] [Python] sklearn์ train_test_split() ์ฌ์ฉ๋ฒ| ์์ฑ์ Paris Lee
How Deep is the Learning : ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
- Deep Learning - Computer Vision - Medical Imaging - Backend - Daily
blog.naver.com
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
๋๋ X, y ๊ฐ์ ๋์์ ๊ฐ์ ธ์จ ๋ค์, test ๋น์จ์ ์ ์ฒด ๋ฐ์ดํฐ ์ค์ 30%๋ก ๋ง์ถฐ์ค ํ์ random_state ๊ฐ์ 42๋ก ์ค์ ํ๋ค.
๊ทธ๋ฌ๋ฉด ํ์ต์ฉ ๋ฐ์ดํฐ ์๋ ์ ์ฒด ์ค์ 70%๊ฐ ๋๋ฏ๋ก 687 * 0.7 = 480.9 (480๊ฐ)๊ฐ ๋๊ณ ,
ํ ์คํธ ๋ฐ์ดํฐ ์๋ ์ ์ฒด ์ค์ 30%๊ฐ ๋๋ฏ๋ก 687 * 0.3 = 206.1(206๊ฐ)๋ก ์ ํด์ง๋ค.

๋ค์ ํฌ์คํ ์์๋ ํ์ต์ฉ๊ณผ ํ ์คํธ์ฉ์ผ๋ก ๋ถ๋ฆฌํ ๋ฐ์ดํฐ๋ค์ ์ด์ฉํ์ฌ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณผ ๊ฒ์ด๋ค.
'๐ ์ธ๊ณต์ง๋ฅ, ๋จธ์ ๋ฌ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋จธ์ ๋ฌ๋ ๊ธฐ์ด] ์ง๋ํ์ต - ํ๊ท (2) | 2022.09.07 |
|---|---|
| [๋จธ์ ๋ฌ๋ ๊ธฐ์ด] ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌํ๊ธฐ (0) | 2022.08.30 |
| [๋จธ์ ๋ฌ๋ ๊ธฐ์ด] ์์นํ ์๋ฃ์ ์์ฝ (0) | 2022.08.17 |
| [๋จธ์ ๋ฌ๋ ๊ธฐ์ด] ์๋ฃ ํํ์ ์ดํด(๋ฒ์ฃผํ ์๋ฃ_๋์๋ถํฌํ) (0) | 2022.08.05 |