작업형 2 연습문제 섹션 6
결측치를 처리하지 않고 그냥 랜덤포레스트를 돌리니깐 0.8933이 나오더라구요
처리하지 않아도 되는걸까요?
import pandas as pd
train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/laptop_train.csv")
test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/laptop_test.csv")
target= train.pop('Price')
df=pd.concat([train,test])
df=pd.get_dummies(df)
train=df.iloc[:len(train)]
test=df.iloc[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.1, random_state=0)
from sklearn.ensemble import RandomForestRegressor
rf=RandomForestRegressor(random_state=0)
rf.fit(X_tr,y_tr)
pred1=rf.predict(X_val)
from sklearn.metrics import r2_score
print(r2_score(y_val, pred1))
pred=rf.predict(test)
result=pd.DataFrame({
'pred':pred
})
result.to_csv('result.csv',index=False)
pd.read_csv('result.csv')
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. 이관형님.
랜덤포레스트 모델을 적용하여 예측을 수행한 후, r2_score가 0.8933이라는 높은 값을 기록하셨네요. 이는 매우 좋은 결과입니다. 하지만 몇 가지 주의할 점과 고려할 사항을 공유드리고자 합니다.
결측치 처리:
- 정규적으로 결측치를 처리하지 않고 모델을 학습시켰을 경우, 데이터에 실제로 결측치가 존재하지 않거나 결측치를 무시해도 큰 영향을 받지 않았을 가능성이 있습니다. 그러나 결측치가 [[0]]이나 다른 값으로 처리되어 있을 수 있습니다.
- 결측치 처리 없이도 모델이 좋은 성능을 보였지만, 일반적으로 결측치는 모델의 학습에 영향을 줄 수 있으므로 사전에 적절히 처리하는 것이 좋습니다.
- 정규적으로 결측치를 처리하지 않고 모델을 학습시켰을 경우, 데이터에 실제로 결측치가 존재하지 않거나 결측치를 무시해도 큰 영향을 받지 않았을 가능성이 있습니다. 그러나 결측치가 [[0]]이나 다른 값으로 처리되어 있을 수 있습니다.
데이터 전처리:
pd.get_dummies()를 통해 범주형 데이터를 수치형으로 변환하는 과정은 매우 적절합니다. 이는 머신러닝 모델 학습에 적합하도록 데이터를 정제하는 과정입니다.
모델 검증:
- r2_score는 좋은 성능을 나타내는 지표 중 하나이지만, 데이터의 분포나 테스트 세트의 특성에 따라 결과가 달라질 수 있습니다. 다른 성능 지표(예: MAE, RMSE 등)도 함께 고려해 보시면 좋겠습니다.
- r2_score는 좋은 성능을 나타내는 지표 중 하나이지만, 데이터의 분포나 테스트 세트의 특성에 따라 결과가 달라질 수 있습니다. 다른 성능 지표(예: MAE, RMSE 등)도 함께 고려해 보시면 좋겠습니다.
모델 안정성 확인:
- 성능이 높다고 해서 항상 문제가 없다고 단정지을 수는 없습니다. 여러 세트의 교차 검증을 통해 모델이 일관되게 높은 성능을 보이는지 확인하는 것이 중요합니다.
- 성능이 높다고 해서 항상 문제가 없다고 단정지을 수는 없습니다. 여러 세트의 교차 검증을 통해 모델이 일관되게 높은 성능을 보이는지 확인하는 것이 중요합니다.
추가적으로, 랜덤포레스트 모델의 경우 기본적으로 결측치를 자체적으로 처리하는 기능은 없습니다. 따라서 데이터 세트에 결측치가 포함되어 있고 이를 명시적으로 처리하지 않았다면 주어진 데이터에서는 실제로 결측치가 적거나 없었을 가능성이 높습니다.
더욱 다양한 환경에서의 테스트를 통해 모델의 일반화 성능을 평가하는 것이 좋겠습니다. 유사한 문제 해결 방법 관련 질문이 있었던 작업형2 모의문제2를 참고하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
회귀 문제를 풀때 질문입니다.
0
6
0
불균형 처리 후 성능이 더 낮아졌다면,
0
15
1
실기 체험 제2유형 에러 문의
0
13
0
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
12
1
3번문제 등분산 가정
0
21
2
작업형3 target 형 변환 질문
0
18
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
15
3
원핫인코딩과 레이블 인코딩에서 concat
0
29
2
제2유형 질문입니다.
0
34
2
C()
0
32
2
작업형 2에서 strafity 적용 유무
0
35
2
수강 기간 연장 가능 여부 문의드립니다.
0
39
1
ols
0
29
2
2유형 작성관련 질문(일반 심화)
0
26
2
2유형 작성관련 질문
0
24
2
2유형 object컬럼 개수 다르면
0
30
2
코딩팡질문이요ㅠㅠ
0
29
2
관찰값과 기대값의 개념이 헷갈립니다.
0
15
2
작업형2 ID 컬럼 삭제 질문
0
29
2
2유형 작성관련 질문
0
23
2
memoryerror 질문
0
19
2
작업형 유형2 이렇게 고정 템플릿으로 가져가도 될까요?
0
29
1
ID 삭제 필수 인가요?
0
26
3
7회 기출문제 작업형1번 df 변환 후 저장되는 방식 질문
0
22
2

