인프런 커뮤니티 질문&답변
예시문제 작업형 2(ver. 2025) rmse 문의드립니다.
해결된 질문
작성
·
64
0
train['환불금액'] = train['환불금액'].fillna(train['환불금액'].median())
test['환불금액'] = test['환불금액'].fillna(test['환불금액'].median())
train = train.drop('회원ID', axis=1)
target = train.pop('총구매액')
test_id = test.pop('회원ID')
cols = train.select_dtypes(include ='O').columns
df = pd.concat([train, test])
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
# train[col] = le.fit_transform(train[col])
# test[col] = le.transform(test[col])
df[col] = le.fit_transform(df[col])
# df = pd.get_dummies(df[cols])
train = df[:len(train)]
test = df[len(train):]
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=0)
# from sklearn.ensemble import RandomForestRegressor
# rf = RandomForestRegressor(random_state=0, max_depth=5, n_estimators=500)
# rf.fit(X_tr,y_tr)
# pred = rf.predict(X_val)
from xgboost import XGBRegressor
xgb = XGBRegressor(random_state=0, max_depth=5, n_estimators=400, learning_rate=0.01)
xgb.fit(X_tr, y_tr)
pred = xgb.predict(X_val)
from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(y_val, pred)
rmse = mse**(1/2)
r2 = r2_score(y_val, pred)
print(mse, rmse, r2)
이렇게 작성했을때 이렇게 나오는데 잘된게 맞는건지 아닌건지 모르겠습니다. 선생님께서는 레이블 인코딩했을때 rmse가 813.22가 나오셨다는데 왜이렇게 차이가 많이나는지 모르겠습니다.
672765.0076766363 820.2225354601252 0.7020188276193622
퀴즈
이진 분류 문제에서 ROC AUC 지표 사용 시, 모델 예측 결과로 주로 제출하는 것은 무엇일까요?
클래스 0 예측값
클래스 1 예측값
예측 클래스 (0 또는 1)
클래스 1 예측 확률값
답변 2
0
안녕하세요 결론 문제 없음
제 결과와 대략 +- 5% 이내면 큰 문제 없다고 봐주세요
xgb가 워닝을 잘 출력해서 lightgbm을 추천합니다.
root_mean_squared_error 평가지표가 버전업이 되면서 사용가능하니 사이킷런에서 불러와서 사용하면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김호범님께서 작성하신 코드를 살펴보겠습니다.
제공해주신 코드는 전반적으로 잘 구성되어 있으며, 크게 문제가 되는 부분은 없어 보입니다. 다만, RMSE 값에서 차이가 발생하는 이유를 몇 가지 관점에서 점검해 보셔야 할 것 같습니다.
데이터 전처리:
환불금액결측치를 중앙값으로 채우신 것은 일반적인 방법이지만, 데이터의 분포를 고려했을 때 평균이나 다른 방식이 더 적합할 수도 있습니다.
- 범주형 데이터의 레이블 인코딩 과정에서, 학습 및 테스트 데이터 모두에 정확히 동일한 인코딩이 적용되었는지 확인이 필요합니다. 아주 작은 차이도 RMSE에 영향을 줄 수 있습니다.
모델 하이퍼파라미터 및 구성:
XGBRegressor의 하이퍼파라미터 세부 설정에 따라 결과가 달라질 수 있습니다. 예를 들어,learning_rate,max_depth,n_estimators값이 신중히 설정되었는지 확인해 보세요.
random_state가 동일하게 설정되어 있는지, 모든 모델 구성 요소에 걸쳐 일관되게 적용되는지 점검해 보세요.
평가지표:
mean_squared_error를 통해 RMSE를 산출하신 방법은 옳습니다.
r2_score를 추가로 확인하여 설명력을 파악하신 점은 유익합니다.
참고: 유사한 질문의 해결 방법
아래는 유사한 질문 해결에 도움이 될 수 있는 링크입니다:
- 예시문제 작업형2 관련 질문드립니다.
이 게시물에서는 RMSE와 모델 검증 과정을 다루고 있으며, 유사한 과정을 따라 결과를 비교해 볼 수 있습니다.
이와 같은 요소들을 하나씩 검토하신다면, 결과에 한층 더 정확한 결과 및 근접한 RMSE 수치를 얻을 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 기존의 유사한 질문 및 답변을 참고하여 답변을 제공하고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





