해결된 질문
작성
·
88
·
수정됨
0
y= y_train['charges']
# X_train.info() object : sex, smoker,region
# X_train.isnull().sum() --> 결측값 없음
X_train.head(2)
drop_col = ['id']
train_drop = X_train.drop(columns=drop_col)
test_drop = X_test.drop(columns=drop_col)
#원핫인코딩
X_train_dummies = pd.get_dummies(train_drop)
X_test_dummies = pd.get_dummies(test_drop)
#train_test_split
from sklearn.model_selection import train_test_split
x_tr,x_val,y_tr,y_val = train_test_split(X_train_dummies,y,test_size=0.33, random_state = 42)
#랜포
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor()
model.fit(x_tr,y_tr)
pred = model.predict(x_val)
#평가
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error
import numpy as np
print("rmse", np.sqrt(mean_squared_error(y_val,pred)))
print("r2_score",r2_score(y_val,pred))
print("mae", mean_absolute_error(y_val,pred))
#저장
answer = model.predict(X_test_dummies)
result = pd.DataFrame({'id': X_test.id, 'charges' : answer})
result.to_csv('00000.csv', index = False)
output = pd.read_csv("00000.csv")
print(output.head(2))
선생님 안녕하세요. 지금 코드 틀 외워서 하나하나 문제 풀어보고 있습니다.. 작년에 회귀문제에서 된통 당한 이후로 꼼꼼히 보고 있는데 아직 확신이 서지 않습니다 ㅠㅠ 혹시 여기서 코드 오류가 있을까요..?
더불어 T2-5의 경우 결측치도 없고, object도 별로 없어서 get_dummies로 해결했는데
T2-4처럼 결측치도 많은데다가 object도 많이 있으면 어떻게 해야할지도 잘 모르겠습니다..
답변 1
0
크게 문제는 없어 보입니다.
test_size=0.33
은 데이터 수가 작을 수 있어 0.2로 추천해요!
결측치가 아직 문제에서 출제된적은 없어요! 시험환경 특성상 많은 컬럼이 있는 데이터를 사용하지는 않을거에요~ 보기가 어려워요!