작성
·
54
0
결국엔 마지막 에러가 '주구매상품_소형가전'이라고 뜨네요
제 코드에서 어디를 수정해야할까요?
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
#분류문제(랜포RandomForestClassifier)
#print(train.shape),print(test.shape)
#결측치 이상치 확인
train['환불금액']=train['환불금액'].fillna(0)
test['환불금액']=test['환불금액'].fillna(0)
train=train.drop('회원ID',axis=1)
test=test.drop('회원ID',axis=1)
#타겟값 지정
target=train.pop('성별')
#원핫인코딩
train=pd.get_dummies(train)
test=pd.get_dummies(test)
#데이터분할하기
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=2022)
# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)
#모델함수 불러와서 에측하기
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
model=RandomForestClassifier(n_estimators=1000,max_depth=7,random_state=2022)
model.fit(X_tr, y_tr)
pred = model.predict_proba(X_val)
#성능평가 roc_auc
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_val,pred[:,1]))
#실제 test로 예측값구하기
pred = model.predict_proba(test)
특이한 경우 이지만
test에는 있는데 train에는 없는 경우
컬럼을 삭제하는 문제가 있습니다. (매우 특이한 케이스로 사용해도 무방합니다.)