강의

멘토링

로드맵

Inflearn brand logo image

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

listensing님의 프로필 이미지
listensing

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

기출(작업형2) 한 가지 방법으로 풀기

평가하지 않고 한 가지 방법 질문 있습니다.

작성

·

58

0

  • 안녕하세요

    저번에 평가하지 않고 랜덤포레스트 한개로만 제출한다고 했을 때에

    그러면은 인코딩까지 동일하게 하고
    rf.fit(X_tr, y_tr)을
    rf.fit(train, target)으로 바꾸고
    pred = rf.predict(X_val)을
    pred = rf.predict(test)로 바꿔서
    target = train.pop('농약검출여부')

    train = pd.get_dummies(train)
    test = pd.get_dummies(test)

    train, test = train.align(test, axis=1, join='left', fill_value=0)
    from sklearn.ensemble import RandomForestClassifier
    -------------------------------------

    rf = RandomForestClassifier(random_state=0)

    rf.fit(train, target)

    pred = rf.predict(test)

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

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

    랜덤포레스트 기준 요런식으로 작성하면 되는지 궁금합니다.


    글구 쌤께서 target = train.pop할때 항상 인코딩하기 전에 하는데 이유가 있는지 궁금합니다!
    항상 이해 잘되게 가르쳐 주셔서 감사드립니다. 선생님

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

네 맞아요

target을 미리 빼는 이유는 만약에 타겟이 문자일 때

위와 같이 인코딩을 해버리면 traget컬럼도 함께 인코딩 됩니다.

 

target에 A, B, C가 있는데 원핫 인코딩을 하면

target_A, target_B, target_C와 같이 3개의 컬럼으로 변경되버리죠

listensing님의 프로필 이미지
listensing
질문자

오 그렇군요 감사합니다!

listensing님의 프로필 이미지
listensing

작성한 질문수

질문하기