빅분기 실기 최종 정리 2 - 머신러닝
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor,RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import f1_score,r2_score
# <span id="f1---01-사이-1일수록-성능-좋음"></span>f1 - 0~1 사이, 1일수록 성능 좋음
# <span id="r2---1-완벽-예측-0-평균-예측-수준-음수-모델이-평균보다-나쁨"></span>r2 - 1: 완벽 예측, 0: 평균 예측 수준, 음수: 모델이 평균보다 나쁨.
# <span id="printdirsklearnmetrics"></span>print(dir(sklearn.metrics))
pre_col = "예측할 칼람"
# <span id="데이터-읽기"></span>데이터 읽기
train = pd.read_csv()
x_test = pd.read_csv()
# <span id="데이터-분리"></span>데이터 분리
y_train = train[pre_col]
x_train = train.drop([pre_col],axis=1)
# <span id="오브젝트-col확인"></span>오브젝트 col확인
obj_col = x_train.select_dtypes(include="object").columns
x_full_data= pd.concat([x_test,x_train],axis=0)
x_full_data= pd.get_dummies(x_full_data,columns=obj_col)
x_test = x_full_data[:x_test.shape[0]]
x_train = x_full_data[x_test.shape[0]:]
# <span id="분리"></span>분리
x_tra,x_val,y_tra,y_val=train_test_split(x_train,y_train,test_size=0.2)
# <span id="학습"></span>학습
rf = RandomForestRegressor()
rf.fit(x_tra,y_tra)
# <span id="검증"></span>검증
y_val_pre = rf.predict(x_val)
r2 = r2_score(y_val,y_val_pre)
print(r2)
# <span id="test예측"></span>test예측
y_test_pre = rf.predict(x_test)
y_test_pre=pd.DataFrame({"pred":y_test_pre})
#print(y_test_pre)
y_test_pre.to_csv("result.csv",index=False)
print(pd.read_csv("result.csv"))