해결된 질문
작성
·
33
0
혼자 작성해보고 결과값도 나온거같은데 문제없는 코드일지요~
import pandas as pd
train=pd.read_csv("train.csv")
test=pd.read_csv("test.csv")
#train.info(), test.info()
#원핫인코딩(범주형을 수치형으로)
target=train.pop("price")
train=pd.get_dummies(train)
test=pd.get_dummies(test)
#데이터분할 및 검증하기
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train,target, test_size=0.2,random_state=2022)
#랜덤포레스트회귀?
from sklearn.ensemble import RandomForestRegressor
model=RandomForestRegressor(max_depth=7, random_state=2022)
model.fit(X_tr, y_tr)
pred=model.predict(X_val)
pred
# 모델성능평가
from sklearn.metrics import root_mean_squared_error
re=root_mean_squared_error(y_val, pred)
re
pred = model.predict(test)
result=pd.DataFrame({
"pred" : pred
}
)
result.to_csv("55.csv", index=False)
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 이선희님의 질문에 답변드리겠습니다.
작성하신 코드를 보면 전반적으로 아주 잘 작성하셨습니다. 하지만 몇 가지 확인하고 수정이 필요한 부분이 있습니다:
모듈 임포트 오류:
from sklearn.metrics import root_mean_squared_error
부분은 root_mean_squared_error
라는 함수가 존재하지 않기 때문에 오류가 발생합니다. 대신 mean_squared_error
를 사용하여 RMSE를 구할 수 있습니다.
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_val, pred, squared=False) # squared=False를 통해 RMSE를 얻음
print(rmse)
데이터프레임 컬럼 불일치 가능성 처리:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(handle_unknown='ignore', sparse=False)
all_data = pd.concat([train, test], axis=0)
all_encoded = pd.DataFrame(encoder.fit_transform(all_data))
train_encoded = all_encoded.iloc[:train.shape[0]].reset_index(drop=True)
test_encoded = all_encoded.iloc[train.shape[0]:].reset_index(drop=True)
결과 제출:
result
데이터프레임이 정확히 어떤 컬럼들로 이루어져 있는지, 확인 후 출력하시는 것이 좋습니다.관련 질문과 해결 방법에 대한 게시글은 다음과 같습니다:
- 작업형 2 유형의 문제와 해결 방법
이 게시글에서는 컬럼 추출, 데이터 전처리, 모델 학습 및 평가에 대한 추가 정보를 얻을 수 있습니다. 시험 환경에서는 코드가 잘 작동하는지 여러 번 확인 후 제출하시는 것을 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.