강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

wlysh999님의 프로필 이미지
wlysh999

작성한 질문수

시험환경test 제2유형

작성

·

15

0

강사님 안녕하세요.

강사님께서 말씀해주신 랜포 + train, test = train.align(test, join='left', axis=1) 하고나서

에러메시지가 뜨길래 추가적인 fillna(0)를 해주고, 아래와 같이 작성했는데요

 

문제에서 제시한 예시와 제 답안의 수치가 너무 차이가 많이납니다.

어떤부분이 문제일까요? ㅜ_ㅠ 확인 부탁드립니다.

isnull 에 무조건 0채우라고해서 fillna(0)한거밖에 차이가 없습니다.

 

import pandas as pd

train = pd.read_csv("data/customer_train.csv")

test = pd.read_csv("data/customer_test.csv")

# print(train.info())

# print(test.info())

train = train.fillna(0)

test = test.fillna(0)

# df.isnull().sum()

target = train.pop('총구매액')

train = pd.get_dummies(train)

test = pd.get_dummies(test)

train, test = train.align(test, join='left', axis=1)

train = train.fillna(0)

test = test.fillna(0)

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)

rf.fit(x_tr, y_tr)

pred = rf.predict(test)

submit = pd.DataFrame({'pred':pred})

submit.to_csv('result.csv', index=False)

ans = pd.read_csv('result.csv')

print(ans)

 

 

image.png

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
wlysh999님, 여러 수식과 코드를 잘 적용하셨지만 몇 가지 확인해 볼 점이 있습니다.

  1. 데이터 전처리:

    • fillna(0)는 결측치를 0으로 채우는 작업입니다. 그러나, 어떤 변수의 경우 0으로 채우는 것이 적절하지 않을 수 있습니다. 변수의 의미를 고려해 적절한 값을 채워넣는 것이 좋습니다.
    • 범주형 변수에 대해 pd.get_dummies를 사용하여 인코딩을 하셨으니, 잘 처리하신 것 같습니다.
  2. Feature Alignment:

    • train.align(test, join='left', axis=1)를 수행할 때, train 데이터에 있는 변수와 동일한 형태로 test 데이터를 맞추고 있습니다. 하지만 test 데이터에 없는 열은 NaN으로 남을 수 있기 때문에 추가적으로 fillna(0)로 채우셨군요.
    • 여기서, train과 test 데이터셋의 주된 차이가 있는지 확인이 필요합니다. 예를 들어, 만약 train에만 있는 변수가 test에 있다면, 그것이 예측 결과에 영향을 줄 수 있습니다.
  3. 모델의 성능 평가:

    • 실제로 데이터와 모델의 결과값을 비교하여 무엇이 잘못되었는지 분석이 필요합니다.
    • train 데이터셋을 잘못 설정했거나 feature가 적절히 선택되지 않았을 수 있습니다. 즉, feature의 중요도를 확인해 불필요한 feature를 제거하거나 추가하는 것 또한 고려해 보세요.
  4. Hyperparameter Tuning:

    • 랜덤포레스트의 하이퍼파라미터를 튜닝해 보세요. 기본적인 파라미터로도 작업을 잘 하셨지만, 하이퍼파라미터 튜닝으로 성능 향상이 가능할 수 있습니다.

위 점들을 차근차근 체크해 보시면 좋을 것 같습니다. 잘 해결하시길 바랍니다!
CSV 파일 처리 예시
출처 링크

wlysh999님의 프로필 이미지
wlysh999

작성한 질문수

질문하기