[๋น ๋ฐ์ดํฐ ๋ถ์๊ธฐ์ฌ] ์ค๊ธฐ 7ํ - 2์ ํ RandomForestRegressor
x_train=train.drop(['์ด์ฉ๊ธ์ก'],axis=1)
y_train=train['์ด์ฉ๊ธ์ก']
x_test=test
print(x_train.info())
print(x_test.info())
print(y_train.info())
- ์ผ๋จ train ๋ฐ์ดํฐ๋ฅผ x_train๊ณผ y_train์ผ๋ก ๋ถ๋ฆฌํ๋ค
- info()๋ก ๋ฐ์ดํฐ ํ์ ์ ํ์ธํ๋ค >> object, category ์์ผ๋ฉด ์ํซ ์ธ์ฝ๋ฉ ํด์ค์ผํจ
x_train.head()
x_test.head()
y_train.head()
3. head๋ก ๋ฐ์ดํฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ๊ฐ๋ตํ๊ฒ ๋ด์ฃผ๊ณ
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
4. x_train๊ณผ y_train ๊ฐ์ ๋ง๋์ง๋ ํ์ธ
print(x_train.describe())
print(x_test.describe())
print(y_train.describe())
5. describe๋ก ๊ธฐ์ดํต๊ณ๋ ํ์ธํด์ x_train๊ณผ x_test์ min, max ๊ฐ์ ๋น๊ตํด์ ์ด์์น๊ฐ ์๋์ง ํ์ธ
y_train.value_counts()
6. y_train ๊ฐ ํ์ธํด์ ์ฐ์ํ์์ ํ์ธ > ํ๊ท๋ก ํ์ด์ผ ํจ
print(x_train.isnull().sum())
print(x_test.isnull().sum())
print(y_train.isnull().sum())
7. ๊ฒฐ์ธก์น๊ฐ ์๋์ง ํ์ธํด๋ด >> ์์ผ๋ฉด ๊ฒฐ์ธก์น ๋์ฒด
Id = x_test['ID'].copy()
x_train = x_train.drop(columns = ['ID']) # drop(columns = ['๋ณ์1','๋ณ์2']) ๋ณ์ ์ถ๊ฐํด์ ์ฌ๋ฌ๊ฐ ์ญ์ ๊ฐ๋ฅ
x_test = x_test.drop(columns = ['ID'])
8. ๋ณ์์ฒ๋ฆฌ
๋ถํ์ํ ๋ณ์(columns) ์ ๊ฑฐ
id ๋ ๋ถํ์ํ ๋ณ์์ด๋ฏ๋ก ์ ๊ฑฐํฉ๋๋ค.
๋จ, test ์ ์ id๊ฐ ๋์ค์ ์ ์ถ์ด ํ์ํ๋ค๋ฉด ๋ณ๋๋ก ์ ์ฅํด๋
x_train=pd.get_dummies(x_train)
x_test=pd.get_dummies(x_test)
print(x_train.info())
print(x_test.info())
9. ์ํซ ์ธ์ฝ๋ฉ ์งํํ๊ณ ์๋๋์ง ํ์ธ(๋ฐ์ดํฐ ๊ฐ์, ์นผ๋ผ ์์, ์นผ๋ผ ๊ฐ์)
๋ง์ฝ x_test์ ๋ณ์๊ฐ ์๊ฐ ๋ ๋ง์ ๊ฒฝ์ฐ๋ฉด ์๋์ ๋ฐฉ์๋๋ก ์งํ
x_train = x_train.reindex(columns = x_test.columns, fill_value=0)
x_train.info()
from sklearn.model_selection import train_test_split
x_train, x_val, y_train, y_val = train_test_split(x_train,
y_train,
test_size=0.2,
random_state=2024)
10. ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆ์ฉ๊ณผ ํ๋ จ์ฉ์ผ๋ก ๋ถํ ํจ
from sklearn.ensemble import RandomForestRegressor
model=RandomForestRegressor(random_state=2024)
model.fit(x_train,y_train)
11. ๋ชจ๋ธ๋ง
y_pred=model.predict(x_val)
from sklearn.metrics import mean_squared_error
mse=mean_squared_error(y_val,y_pred)
rmse=mse**0.5
print(rmse)
12. ๋ชจ๋ธ์ ์ฌ์ฉํด์ ๊ฒ์ฆ์ฉ ๋ฐ์ดํฐ๋ก ์์ธก๊ฐ ๊ตฌํ ๋ค์์, rmse๋ฅผ ๊ตฌํด๋ดค์
์ฌ์ง ์ค๋ช ์ ์ ๋ ฅํ์ธ์.
๋ ์ฉ?? ๊ฐ์ด ๋๋ฌด ํฐ๋ฐ?? ์ถ์ด์ ์ ๋ต ์ฝ๋๋ก๋ ๋๋ ค๋ดค๋๋ฐ ๋๊ฐ์ด ๋์จ๋ค
#rmse๊ฐ์ด ํฌ๋๋ผ๋ ๋นํฉํ์ง ๋ง์์..
๋ ์ง ๋ฐ์ดํฐ์ ๋ํ ํ์ฒ๋ฆฌ, ์ ์ข ๋ช ์ ๋ํด ํ์ฒ๋ฆฌ ๋ฑ์ ์ ๊ทผ์ ์ถ๊ฐ๋ก ํด๋ณผ ์ฌ์ง๊ฐ ์์ด๋ณด์ ๋๋ค~!
๋ผ๋๊ตฌ๋ง ๊ด์ฐฎ๊ฒ ์ง??
y_result = model.predict(x_test)
result = pd.DataFrame({'ID': Id, 'target': y_result})
result
result.to_csv('datafox.csv',index=False)
13. ๋ฐ์ดํฐ ์ ์ถ
df2 = pd.read_csv("datafox.csv")
print(df2.head())
14. ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ ํด์ ์ ๋๋ก ์ ์ฅ๋๋์ง ํ์ธ