์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๊ทธ๋ฆฌ๋
- ์๊ณ ๋ฆฌ์ฆ
- LIS
- ์์ํ์
- ํ๋ก๊ทธ๋๋จธ์ค
- skala
- ๊ทธ๋ํ
- db
- ์ค๋ธ์
- ๋ณํฉ์ ๋ ฌ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋์ ๊ณํ๋ฒ
- ๋จธ์ง์ํธ
- SK
- DFS
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋๋น์ฐ์ ํ์
- ๊ทธ๋ํํ์
- ์ ๋ ฌ
- ์ํ
- skala1๊ธฐ
- DP
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- SQL
- ๋ฐฑ์ค
- ๋์ ํฉ
- ๊ตฌํ
- BFS
- ํ์ด์ฌ
- ๊น์ด์ฐ์ ํ์
- Today
- Total
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
๋ฐ์ดํฐ๋ถ์ ๊ณผ์ ํ ์คํธ ๋ฒผ๋ฝ์น๊ธฐ๋ก ์ค๋นํ๊ธฐ ๋ณธ๋ฌธ
๋ฐ์ดํฐ ๋ถ์ ๊ณผ์ ํ ์คํธ๋?
๐ก ๋ถ์ → ์ ์ฒ๋ฆฌ → ๋ชจ๋ธ๋ง → ์ฑ๋ฅํ๊ฐ
> ์ ํ์๊ฐ ๋ด ์ผ๋ จ์ ๊ณผ์ ์ ๋ชจ๋ ์๋ฃํ ๋ค ์์ฑ๋ ๋ชจ๋ธ์ ํตํด ์์ธกํ ๊ฐ์ ์ ์ถํ๋ ๊ฒ.
์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ถ์ ๊ณผ์ ๋ผ๋ฉด
๋์๋ EDA ๊ณผ์ ์ ๊ฒช์ผ๋ฉฐ feature engineering์ ๊ฑฐ๋ญํ๊ณ ๊ฑฐ๋ญํ๊ณ .. ๊ฑฐ๋ญํด์
์ ์ ํ ML/DL ๋ชจ๋ธ์ ๊ณ ๋ฅด๊ณ ๊ณ ๋ฅด๊ณ .. ๊ณจ๋ผ์
ํ์ต ๋ชจ๋ธ์ parameter tuning๊น์ง ์๋ฃํ ๋ค
์ต์์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๊ฒ์ด ๋ง์ง๋ง,
ํ ๋ฌธ์ ๋น ํ ์๊ฐ, ๋ง์์ผ ๋ ์๊ฐ ์ฃผ๋ ์ํ์์๋ ์ํ์ฐฉ์ค์ ๊ณผ์ ์ ์ผ์ผํ ๊ฑฐ์น๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ถํ๋ ๊ฒ์ด ์ฐ์ ์ธ์ง๋ผ,
๋น ๋ฅด๊ฒ ๋ชจ๋ธ๋ง ๋จ๊ณ๋ก ์ง์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ๋๋น๋ฅผ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์ผ๋ฐ์ ์ธ ๊ธฐ์ ์ํ์์ ๋ด๋ ๋ฌธ์ ๋
ํฌ๊ฒ DataFrame ํ์ฉ ๋ฌธ์ , ์์ธก/ํ๊ท ๋ฌธ์ ์ด๋ ๊ฒ ๋ ์ ํ์ผ๋ก ๋๋๋ค.
Pandas ์ผ๋ง๋ ์์ฐ๋์ง ๋ฌผ์ด๋ณด๋ ๋ฌธ์ ๋ ํ๋ค์ค ํจ์ ์ผ๋ง๋ ์ ์๊ณ ์๋์ง ๋ณด๋๊ฑฐ๋ผ ์ฌ์ค ํ๋ค์ค๋ฅผ ๋ง์ด ๋ค๋ค๋ดค์ด์ผ ๋น ๋ฅธ ์๊ฐ ๋ด ํธ๋๊ฒ ๊ฐ๋ฅํ์ง๋ง
๋ถ๋ฅ/ํ๊ท์ ๊ฒฝ์ฐ ์์ง ๋ฌธ์ ๊ฐ ํฌ๊ฒ ์ด๋ ค์์ง์ง ์์ ์ง๊ธ ์ ์์๋ ๊ฐ๋ค ์ฐ๋ ์ฝ๋ ๋ช๊ฐ๋ง ์ธ์ฐ๋ฉด ์ด๋์ ๋ ์ปค๋ฒ๊ฐ ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋๋ผ
๊ทธ๋์ ์ ๋ฆฌํด๋ณด๋ ํ์ํ ์ฝ๋ ์์ฝ๊ธ์ด๋ค.
์ํ ๊ณผ์ ์์ฝ
โ๏ธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ถํ๋ ๊ฒ์ด ์ฐ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์ดํ ๋ฐ๋ก ๋ชจ๋ธ๋ง ์งํ
- ๋ณ์ ๋ณ ๋ถํฌ ํ์
- ๊ฒฐ์ธก์น ์กด์ฌํ๋ ๋ฐ์ดํฐ ๋ฒ๋ฆฌ๊ธฐ or ๊ฒฐ์ธก์น ์ฑ์ฐ๊ธฐ
- ์ด์์น ๋ณด์
- Scale ๋ณด์ /์ ๊ทํ
- objectํ ๋ณ์ categoryํ ํ๊ธฐ
- ์ฃผ์ํ ์ : ์ ์ฒ๋ฆฌ ์งํ ์ test dataset์๋ ๋ฐ๋์ ๋์ผํ๊ฒ ์ ์ฉํด์ค์ผ๋จ
โ๏ธ ๋ชจ๋ธ๋ง ๋ฐ ๊ฐ๋จํ ์ฑ๋ฅ ํ๊ฐ
- cross_validate ํตํ ์ต์ ์ ๋ชจ๋ธ ์ ํ
- ๊ฐ๋จํ parameter tuning
โ๏ธ ์ฑ๋ฅ ๊ณ ๋ํ ์ํ EDA ์งํ
- ๋ณ์ ๋ณ ๊ด๊ณ ํ์
- ๋ฐ์ดํฐ / ๋ฐ์ดํฐ ๊ฐ ๊ด๊ณ ์๊ฐํ
- ๊ฒฐ๊ณผ์ ์ํฅ ์ฃผ๋ ๋ณ์ ํ์ธ
- Feature engineering
- ...
โ๏ธ ๋ค์ ML ๋ชจ๋ธ๋ง → ๊ฒฐ๊ณผ ์ ์ถ
To-do List
1. ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋
import warnings
warnings.filterwarnings("ignore") # ๊ฒฝ๊ณ ๋ฌด์
import seaborn as sns # ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ(์๊ฐ ์ข ๋ ์ฌ์)
import numpy as np # ๋ฐฐ์ด ์ฌ์ฉ(์ ์์ฐ๋๋ฐ ๋ฐฐ์ดํํ ์ธ์ ์ธ์ค๋ชจ๋ฅด๋ ์ผ๋จ ๊ทธ๋ฅ load)
import matplotlib.pyplot as plt # ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ2
# ํ๋ก๊ทธ๋๋จธ์ค ์ํ ๊ธฐ์ค
# ์ผ๋ฐ์ ์ผ๋ก ํ์ผ ๋ก๋ํ๋ ์ฝ๋๋ ๊ทธ๋ฅ ์ฃผ๊ธฐ ๋๋ฌธ์ pandas๋ ๊ตณ์ด import ์ํด๋ ๋๊ธด ํจ
import pandas as pd
2. ๋ฐ์ดํฐ ๋ก๋
์ผ๋ฐ์ ์ผ๋ก ์ ์ผ ์ฒ์์ ์คํ๋ง ํด๋ ๋๋ ํํ๋ก ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์ ์ฌ์ค ์ํ๋ณผ๋ ์๋ฏธ๋ X
train = read_csv("๊ฒฝ๋ก/train_file.csv")
test = read_csv("๊ฒฝ๋ก/test_file.csv")
3. ๋ฐ์ดํฐ ํ์ด๋ณด๊ธฐ
train.head() # ์์ 5๊ฐ ๋ฐ์ดํฐ ๋ก๋
train.columns.values # ๋ฐ์ดํฐ columns array๋ก ๋ฐํ
# train.columns.to_list() ์ฐ๋ฉด ๋ฆฌ์คํธํํ๋ก ๋ฐํ
train.info() # ๋ฐ์ดํฐ์ column, non-null์ธ ๋ฐ์ดํฐ ๊ฐ์, column์ data type
train.describe() # object๊ฐ ์๋ ํํ์ ๋ฐ์ดํฐ ์์น๊ฐ ๋ฐํ
train.describe(incude="O") # object ํํ์ ๋ฐ์ดํฐ ์์น๊ฐ(count, unique, top, freq)
columns ์ ์ธ ๊ฐ๊ฐ ์ฝ๋ ์คํ ๊ฒฐ๊ณผ(bike-sharing-demand.csv ์์)
train.head() # ์์ 5๊ฐ ๋ฐ์ดํฐ ๋ก๋
train.info() # ๋ฐ์ดํฐ์ column, non-null์ธ ๋ฐ์ดํฐ ๊ฐ์, column์ data type
train.describe() # object๊ฐ ์๋ ํํ์ ๋ฐ์ดํฐ ์์น๊ฐ ๋ฐํ
train.describe(incude="O") # object ํํ์ ๋ฐ์ดํฐ ์์น๊ฐ(count, unique, top, freq)
4. ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
๊ฒฐ์ธก์น / ์ด์์น ์ฒ๋ฆฌ
# ๊ฒฐ์ธก์น ์ฒ๋ฆฌ ๋ฐฉ์
train['col1'] = train['col1'].fillna(0) # 1. ํน์ ๊ฐ(0)
train['col2'] = train['col2'].fillna(train['col2'].mean()) # 2. ํ๊ท ๊ฐ
train['col3'] = train['col3'].fillna(train['col3'].median()) # 3. ์ค์๊ฐ
train['col4'] = train['col4'].fillna(train['col4'].mode()[0])# 4. ์ต๋น๊ฐ
๋ฐ์ดํฐ ๋ณํ
# ๋ฐ์ดํฐ์ ํ์ ๋ณํ
pd.to_numeric(column, errors='coerce') # ์ซ์๋ก ๋ณํ
pd.to_datetime(column, format='%m/%d/%Y') # m/d/YYYY ํ์ -> YYYY-d-m ํ์
# objectํ ๋ณ์ -> categoryํ
train.obj_col = train.obj_col.astype('category')
# dictionary ๋ง๋ค์ด์ map ํจ์ ์ฌ์ฉํ์ฌ ๋ณํ.. ์ด๊ฑฐ ์ฌ์ฉํ ๋ ์กฐ์ฌํ ๊ฒ
# ์ ์ ์ํ๋ณผ๋ ์๋ชปํด์ ๊ฐ๊ณ ์ํ๋ ๊ธฐ์ต์ด ์์ใ
ใ
obj_dict = {'col1':1, 'col2':2, ... }
train.obj_col = train.obj_col.map(obj_dict)
๋ฐ์ดํฐ ์ ๊ทํ
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# ์ฃผ์ !! array ํํ๋ก ๋ฐํํจ
scaler = StandardScaler
train_scaled = scaler.fit_transform(train)
df_train_scaled = pd.DataFrame(train_scaled, columns=train.columns)
# test๋ ๋๊ฐ์ด ์งํ
test['col'] = scaler.transform(test['col'])
* ์ฃผ์! Scaling ์ ํ๋ จ ๋ชจ๋ธ์ ๋ํด์๋ fit์ ์งํํ๊ณ , test ๋ฐ์ดํฐ์ ๋ํด์๋ ์งํํ์ง ์๊ณ ๋ฐ๋ก transform ์งํํ ๊ฒ
+ ์ธ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ๋ค
Data Transformation
- Positive skewed
np.log(df['ํด๋น ๋ณ์'])
0 ํฌํจํ๋ ๋ฐ์ดํฐ์ผ ๊ฒฝ์ฐ np.log1p ๋๋ 1 ๋ํด์ ์ค๋ฅ ๋ฐฉ์ง
- Negative skewed
np.sqrt(df['ํด๋น ๋ณ์'])
5. Plot ํตํด ๋ฐ์ดํฐ / ๋ฐ์ดํฐ ๊ฐ ๊ด๊ณ ํํ (seaborn)
์์ฃผ ์ฌ์ฉํ๋ plot ์ ๋ฆฌ
์ฐ์ํ ๋ฐ์ดํฐ ๋ถํฌ: distplot
sns.distplot(data.column, bins=range(min, max), ax)
- deprecated๋ ํจ์๋ผ ๋จ๋๋ฐ, kdeplot(์ ) or histplot(๋ง๋๊ทธ๋ํ) ์ฌ์ฉ ๊ฐ๋ฅ
- displot์ subplots ๋ง๊ณ ๋จ๋ ์ฌ์ฉ๋ง ๊ฐ๋ฅ
+ DataFrame.hist
histogram ๊ฐ์๊ฑฐ ์ด๋ ์ธ์์ column ๊ณจ๋ผ์ ์ ๊ฑฐ ๋ค ๊ทธ๋ฆฌ๊ณ ์์?? ํ ๋ ์ด๊ฑฐ ์จ๋ ๊ด์ฐฎ
df.hist(figsize=(12, 10))
๋ณ์๋ค์ ์ด์์น ๋ถํฌ ํ์ธ: boxplot
sns.boxplot(data.column, data, ax)
์ด์ฐํ ๋ฐ์ดํฐ ๊ฐ์ ์ธ๊ธฐ: countplot
sns.countplot(data.column, data)
์ด์ฐํ-์ด์ฐํ ๊ด๊ณ ํํ: barplot
sns.barplot(x, y, data, ax)
์ด์ฐํ-์ฐ์ํ / ์ด์ฐํ-(๋ฒ์ฃผ์ ๊ฐ์๊ฐ๋ง์)์ด์ฐํ ๊ด๊ณ ํํ: lineplot, pointplot
sns.pointplot(x, y, data, ax)
sns.lineplot(x, y, data, ax)
์ฐ์ํ-์ฐ์ํ ๋ฐ์ดํฐ ๊ด๊ณ ํํ: scatterplot, regplot
sns.scatterplot(x, y, data, ax)
sns.regplot(x, y, data, ax, line_kws, scatter_kws)
+ df ์์ฒด์๋ plot ๊ธฐ๋ฅ์ด ์์ (ex. df.plot.bar(), df.plot.density(), df.plot.pie() )
๊ธํ๊ฒ๋ ์ฐ์ ์ ๋ ๊ฒ๋ง ํด๋ ๊ด์ฐฎ, ์๊ฐ์ด ๋๋ฉด ์ฌ๋ฌ๋ฒ ๋ค์ํ๊ฒ ๊ทธ๋ฆฌ๋ ์ฐ์ต ํด๋ณด๊ธฐ
์๊ด๊ด๊ณ plot - heatmap (๊พธ๋ฏธ๋ ์ฝ๋๋ ๊ทธ๋ฅ ์ธ์์ผ๋จ..๋ณ์์์..)
corr = train.corr() # ๋ณ์๋ณ ์๊ด๊ด๊ณ ์ ์ฅ
mask = np.triu(np.ones_like(corr, dtype=np.bool))
cmap = sns.diverging_palette(220, 10, as_cmap=True)
fig, ax = plt.subplots(figsize=(20, 15))
sns.heatmap(corr, mask=mask, cmap=cmap, center=0, linewidth=.5, annot=True, fmt='.3f')
6. Cross validation์ผ๋ก ๋ชจ๋ธ ์ ํ
# regression ์์
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.model_selection import cross_validate, KFold
# ๋ถ๋ฅ๋ฌธ์ ์๋ StratifiedKFold๋ ๋ ๋ฏ
rf = RandomForestRegressor()
score = cross_validate(rf, X_train, Y_train, return_train_score=True, n_jobs=-1, cv=KFold())
print(np.mean(score['train_score']), np.mean(score['test_score'])
gb = GradientBoostingRegressor()
score = cross_validate(gb, X_train, Y_train, return_train_score=True, n_jobs=-1, cv=KFold())
print(np.mean(score['train_score']), np.mean(score['test_score'])
๋ชจ๋ธ์ ์ ๋ ๊ฒ ๋๊ฐ๋ง ๋ถ๋ฅธ ์ด์ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋๊ฐ์ ์ฑ๋ฅ์ด ๊ฐ์ฅ ์ข์์...
7. ์ฑ๋ฅ ๋ ์ข์ ๊ฒ ์ ํํด์ grid search ์งํ
from sklearn.model_selection import GridSearchCV
from sklearn import metrics
# ์ผ๋ฐ์ ์ผ๋ก rf๊ฐ ์ ์ผ ์ข๋๋ผ..
rf = RandomForestRegressor()
rf_params = { 'max_depth':range(2, 10, 2), 'n_estimators':[10, 100, 200] }
# ์ ๋ชจ๋ฅด๊ฒ ๋ parameter๋ค์ help ์จ์ ์ฐธ๊ณ ํด์ ์ฐ๊ธฐ
grid_rf = GridSearchCV(rf, rf_params, cv=5)
grid_rf.fit(X_train, Y_train)
pred = grid_rf.predict(X_train)
mse = mean_squared_error(Y_train, pred)
mse
metrics ์ฌ์ฉ ์
Regression - mean_squared_error / mean_absolute_error
Classification - accuracy_score / f1_score
8. Best parameter ํ์ธํด์ ํ์ต ์งํ
# best parameter ํ์ธ๋ฒ
grid_rf.best_params_
rf = RandomForestRegressor(max_depth=..., n_estimators=...)
rf.fit(X_train, Y_train)
pred = rf.predict(X_valid)
mse = mean_squared_error(Y_valid, pred)
mse
predict = rf.predict(X_test)
9. ์กฐ๊ฑด ํ์ธํด์ ์ ์ถ
idx = test['col']
result = pd.DataFrame({
"index":idx, # ๋ฌธ์ ์์ ์ ์ํ ์ ๋ ฌ/primary key/index ๊ธฐ์ค
"ans":predict # ์์ธกํ column
})
# df.to_csv๋ก ์ ์ฅ๋ช
๊น์ง๋ ์ฝ๋๋ก ์ฃผ์ด์ค
# ๋ค์ index=False ๋ถ์ฌ์ฃผ๋๊ฑฐ๋ง ์์ง๋ง๊ธฐ
result.to_csv("submission.csv", index=False)
๊ทธ ์ธ ์์๋๋ฉด ์ข์ ๊ฒ๋ค
๊ฒ์ํด์ ์ฌ๊ธฐ๊น์ง ์ค๋ ์ฌ๋์ด ์์์ง๋ชจ๋ฅด๊ฒ ๋๋ฐ..
์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํ๋ฉด์ ๋์ ๋ง์ด ๋๋ ๊ฑฐ ์๋ ค๋๋ฆผ๋๋ค
- ๊ณต๋ถํ๋ฉด์ ๋์ ๋๋ ๋ฌธ์ ๋ค
1๏ธโฃ ๊ฒฐ์ธก์น ์กด์ฌํ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ์ฐ์ฃผ์ ์์กด์ ์์ธก
Spaceship Titanic
Predict which passengers are transported to an alternate dimension
www.kaggle.com
2๏ธโฃ ๋ฐ์ดํฐ ์ด์์น ์ฒ๋ฆฌ: ์์ ๊ฑฐ ์์ ์์ธก
Bike Sharing Demand
Forecast use of a city bikeshare system
www.kaggle.com
ํด๋น ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์๊ณ์ด ๋ฐ์ดํฐ๋ก์์ ์๋ฏธ๋ ์๊ณ .. ๋ ์ง ๋ฐ์ดํฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณ ๋ฏผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข์๋ฏ
3๏ธโฃ ๋ฐ์ดํฐ ํ๋ ์ ์ฒ๋ฆฌ: ์ฑ์ฉ๊ณต๊ณ ์ถ์ฒ
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
- ์ ๋๋ ์ง์ง ๋์ ํ ํ์์ pandas ์์จ์ DF ๋ฌธ์ ๋ชปํ๊ฒ ๋ค??
๋ฐ์ดํฐ ํ๋ ์ ํจ์ ๊ณต๋ถ : ํ๋ก๊ทธ๋๋จธ์ค ์ฌ์ ํ ์คํธใ ใ ๋ก ์ฃผ์ด์ง๋ '๋ฏธ์ธ๋จผ์ง ๋๋์ ๋ฐ๋ฅธ WHO ์๋ณด๋ฑ๊ธ ~~์ด์ฉ๊ณ ' ๋ฌธ์ ๊ผญ ํ์ด๋ณด๊ธฐ
→ ๋ฌธ์ ์์ ๋ต๊น์ง ๋์ถํ๋๋ฐ ์๊ตฌ๋๋ ์ต์ํ์ ํจ์๋ ๊ฑฐ์ ์ฌ๊ธฐ์ ์ฐ์ต ๊ฐ๋ฅ
- ๋ชจ๋ธ ๋์ฒด ๋ญ์ฐ์ง??
๋ถ๋ฅ : RandomForestClassifier, DecisionTreeClassifier
ํ๊ท : RandomForestRegressor, GradientBoostingRegressor
scikit-learn์ ์ฃผ์ด์ง๋ ๊ธฐ๋ณธ ML ๋ชจ๋ธ ์ค์์๋
์ฌ๋งํผ ์์์ ์ธ ๋ฐ์ดํฐ์ ๋ฒ์ ๋ด์์๋ tree ๊ธฐ๋ฐ ๋ชจ๋ธ์ธ DecisionTree / RandomForest๊ฐ ์ ์ผ ์๋จนํ๋ค
๋์ ๊ทธ๋งํผ ๊ณผ์ ํฉ๋ ์ฌ์ด ํธ์ด๋ ๋ฌด์กฐ๊ฑด ์๋์๋ค๊ณ ์ข์ํ ๊ฑด ์๋๊ณ
train_test_split ์จ์ validation์ ํด๋ณด๋๊ฐ, parameter search ์ํด์ผ๋จ
- ํจ์๋ ์ ๋ชจ๋ฅด๊ฒ ๊ณ ํ๋ผ๋ฏธํฐ๋ ์ ๊ธฐ์ต์๋ ๋
๋ณดํต python, numpy, pandas ๊น์ง๋ ์ฃผํผํฐ๋ ธํธ๋ถ์์ ๊ณต์๋ฌธ์ ๋งํฌ ์ฃผ๊ธฐ๋๋ฌธ์ ์ฐธ๊ณ ํ๋ฉด ๋๋๋ฐ, ๊ทธ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํน์ ํจ์๋ฅผ ๋ชจ๋ฅผ๋ ๋ฌด์กฐ๊ฑด help.
help๋ ์ ์ด๋ค.
์ํํ๊ฒฝ์์ ๋จนํ๋์ง ์ด๋ฏธ ์ฌ๋ฌ๋ฒ ์จ๋จน์ด๋ด๐
help(RandomForestClassifier)
๋ต์ ๋ค ์ฃผ๋ ๊ฒ์ ์๋์ง๋ง.. ์ฐ์ต์ ์ฌ๋ฌ๋ฒ ํด๋ดค๋ค๋ฉด ํค์๋๋ง ๋ณด๊ณ ๋ ๋ฐ๋ก ์๊ฐ๋๊ธฐ ๋๋ฌธ์ ์ ๋ง ์ํ ๋ณด๋ค ๊ธํ ๋ ์ฌ์ฉ ๊ฐ๋ฅ..
์ ์ ๋ง ์ ๊ธฐ๋ฅ ๋๋ถ์ ์ฌ๋ฌ๋ฒ ์ด์์ต๋๋ค
์ทจ์ค์ ๋ชจ๋ ํ์ดํ
๋ ํ์ดํ ..