inflearn logo
강의

講義

知識共有

[仕事終わりの趣味] ビッグデータ分析実技 (作業型1,2,3)

[作業型2] 練習問題 セクション 6

작업형 2 연습문제 섹션 6

1

leekh88862151

投稿した質問数 5

0

결측치를 처리하지 않고 그냥 랜덤포레스트를 돌리니깐 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')

python 머신러닝 빅데이터 pandas 빅데이터분석기사

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 이관형님.

랜덤포레스트 모델을 적용하여 예측을 수행한 후, r2_score가 0.8933이라는 높은 값을 기록하셨네요. 이는 매우 좋은 결과입니다. 하지만 몇 가지 주의할 점과 고려할 사항을 공유드리고자 합니다.

  1. 결측치 처리:

    • 정규적으로 결측치를 처리하지 않고 모델을 학습시켰을 경우, 데이터에 실제로 결측치가 존재하지 않거나 결측치를 무시해도 큰 영향을 받지 않았을 가능성이 있습니다. 그러나 결측치가 [[0]]이나 다른 값으로 처리되어 있을 수 있습니다.
    • 결측치 처리 없이도 모델이 좋은 성능을 보였지만, 일반적으로 결측치는 모델의 학습에 영향을 줄 수 있으므로 사전에 적절히 처리하는 것이 좋습니다.
  2. 데이터 전처리:

    • pd.get_dummies()를 통해 범주형 데이터를 수치형으로 변환하는 과정은 매우 적절합니다. 이는 머신러닝 모델 학습에 적합하도록 데이터를 정제하는 과정입니다.
  3. 모델 검증:

    • r2_score는 좋은 성능을 나타내는 지표 중 하나이지만, 데이터의 분포나 테스트 세트의 특성에 따라 결과가 달라질 수 있습니다. 다른 성능 지표(예: MAE, RMSE 등)도 함께 고려해 보시면 좋겠습니다.
  4. 모델 안정성 확인:

    • 성능이 높다고 해서 항상 문제가 없다고 단정지을 수는 없습니다. 여러 세트의 교차 검증을 통해 모델이 일관되게 높은 성능을 보이는지 확인하는 것이 중요합니다.

추가적으로, 랜덤포레스트 모델의 경우 기본적으로 결측치를 자체적으로 처리하는 기능은 없습니다. 따라서 데이터 세트에 결측치가 포함되어 있고 이를 명시적으로 처리하지 않았다면 주어진 데이터에서는 실제로 결측치가 적거나 없었을 가능성이 높습니다.

더욱 다양한 환경에서의 테스트를 통해 모델의 일반화 성능을 평가하는 것이 좋겠습니다. 유사한 문제 해결 방법 관련 질문이 있었던 작업형2 모의문제2를 참고하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

target 빈도 확인

0

2

1

F1-score

0

6

1

작업형 2번 섹션 3

0

6

1

작업형 2 인코딩, 결측치, 모델 선택 질문

0

6

0

인코딩 방식 문의

0

9

1

9회 3유형 ==> 7회 3유형 질문드려요

0

5

1

작업형 2관련 질문입니다

0

10

2

작업형2 카테고리

0

17

2

110강 회귀_8번 문의

0

10

2

XGBRegressor 학습 시 warning 출력

0

20

2

데이터 프레임을 변경해도 되나요?

0

11

2

10회 기출 작업형3 문제 2-1 질문

0

18

2

작업형 2 질문

0

18

2

작업형 2 템플릿 확인 요청

0

17

2

작업형2 인코딩 질문

0

23

2

작업형 3 벼락치기 공부방법 질문

0

32

2

기출 11회 작업형 2_전체 데이터 학습 여부

0

33

2

예측값 결과 소수점 차이

0

28

2

기출 문제와 실전챌린지 연습문제 무엇부터 푸는게 나은가요?

0

37

1

전처리 train() test([ ])

0

23

2

작업형 1 배경지식 질문

0

33

2

옳게 풀은건지 질문드립니다!

0

23

1

roc_auc_score

0

31

2

추가질문 합니다

0

23

2