해결된 질문
작성
·
427
·
수정됨
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
아래 코드 실행시, RandomForestRegressor' object has no attribute 'predict_proba'에러가 발생하는데, 원인이 무엇인지궁금합니다.
# data 불러오기
import pandas as pd
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
y_test = pd.read_csv('y_test.csv')
# EDA
train.shape
# 전처리
#test.isnull().sum()
# 피처엔지니어링
cols = train.select_dtypes(include = 'O').columns
#train = train.drop(cols, axis = 1)
#test = test.drop(cols, axis = 1)
# 라벨 인코딩
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
train = train.drop('CLIENTNUM', axis = 1)
test_id = test.pop('CLIENTNUM')
# 검증데이터 분리
from sklearn.model_selection import train_test_split
x_tr,x_val, y_tr, y_val = train_test_split(train.drop('Attrition_Flag', axis = 1), train['Attrition_Flag'], test_size = 0.2, random_state= 2022)
# 모델, 평가
from sklearn.ensemble import RandomForestRegressor
rd = RandomForestRegressor()
rd.fit(x_tr, y_tr)
pred = rd.predict(x_val)
# 예측, 제출
pred = rd.predict_proba(test)
submit = pd.DataFrame({
'CLIENTNUM' : test_id,
'Attrition_Flag' : pred[:, 1]
})
submit.to_csv('0000.csv', index = False)
답변 1
0
RandomForestRegressor는 predict만 있고 predict_proba는 없습니다. 분류모델에만 있습니다.
검증데이터를 예측할 때는 pred = rd.predict(x_val)로 잘 사용했어요 👍
그런데 테스트데이터를 예측할 때는 pred = rd.predict_proba(test)로 잘못 사용했어요!