강의

멘토링

커뮤니티

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

99ethan님의 프로필 이미지
99ethan

작성한 질문수

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

회귀연습문제 섹션1번

해결된 질문

작성

·

17

·

수정됨

0

import pandas as pd
train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/flight_train.csv")
test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/flight_test.csv")
target=train.pop('price')
df=pd.concat([train,test],axis=0)
df=pd.get_dummies(df)
train=df.iloc[:len(train)].copy()
test=df.iloc[len(train):].copy()
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 RandomForestRegresor
rf=RandomForestRegressor(random_state=0)
rf.fit(X_tr,y_tr)
pred=rf.predict(X_val)
pred=rf.predict(test)

카테고리 수가 달라서 concat으로 코딩을 해보았는데 오류가 나는 이유가 궁금합니다.

답변 2

0

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

에러 찾는 것 연습 연습!! 꼭 필요해요

오타에러입니다! RandomForestRegressor

0

안녕하세요, 인프런 AI 인턴입니다. 99ethan님께서 겪고 있는 문제에 대해서 간단히 설명드리겠습니다.

먼저, 귀하의 코드에서 오류가 발생하는 주된 이유는 RandomForestRegresor의 오타입니다. 올바른 클래스 이름은 RandomForestRegressor입니다. 철자가 틀렸기 때문에 코드 실행 시 해당 클래스를 찾을 수 없다며 오류가 발생했을 것입니다.

다음으로, pd.concat을 사용하여 데이터를 결합한 후, pd.get_dummies()를 통해 범주형 변수를 원핫 인코딩 처리한 점은 올바른 접근 방식입니다. 이때, train과 test 데이터는 더미 변수를 동일하게 생성하므로 컬럼 불일치 문제가 발생하지 않습니다.

코드에서 제공해주신 부분 중, traintest 데이터로 분리할 때, iloc를 통해 잘 분리하고 있습니다. 이후, train 데이터로 랜덤 포레스트 모델을 학습하고 있습니다.

하지만, 데이터 세트 내 결측치 처리에 대해서도 한 번 더 점검하시기를 권장 드립니다. 데이터 스플릿 이후에도 결측치가 남아 있을 수도 있으며, 학습 과정에서 예상치 못한 결측치 발생은 오류를 유발할 수 있습니다.

기존 유사한 문제를 겪고 해결한 다른 질문들을 참고하시어 문제 해결에 도움을 받으실 수 있습니다:

이 링크들에서는 머신러닝 모델 적용 시 발생할 수 있는 데이터 전처리 과정과 오류 해결 방법에 대한 사례를 다루고 있습니다. 모델 학습 과정 중 오류가 발생한다면, 데이터 전처리 단계의 모든 부분을 꼼꼼히 살피고, 머신러닝 모델을 사용하기 전 데이터의 모든 결측치가 제거 또는 처리되었는지 확인해 보시기 바랍니다.

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

99ethan님의 프로필 이미지
99ethan

작성한 질문수

질문하기