해결된 질문
작성
·
208
0
우선 선생님 강의 매우 잘 듣고 있습니다. 공부하는데 너무 큰 도움 주셔서 감사합니다.
(체험)제2유형 질문 드립니다.
roc-auc-score 결과값이 모델 튜닝을 이것저것 해보아도 0.6을 넘지 못하네요.
=============================================================
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
# print(train.describe())
# # 사용자 코딩 # target 성별
pd.set_option("display.max_columns", None)
# train = train.drop(["회원ID", "환불금액"], axis=1)
# test = test.drop(["회원ID","환불금액"],axis=1)
train['환불금액'] = train['환불금액'].fillna(0)
test['환불금액'] = test['환불금액'].fillna(0)
train = train.drop(["환불금액"], axis=1)
test = test.drop(["환불금액"],axis=1)
# print(train.head(2))
n_list = ['총구매액', '최대구매액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']
# from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import StandardScaler
# scaler = RobustScaler()
scaler = StandardScaler()
train[n_list] = scaler.fit_transform(train[n_list])
test[n_list] = scaler.transform(test[n_list])
cols = ["주구매상품", "주구매지점"]
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
target = train.pop("성별")
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)
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(random_state=20, max_depth=5, n_estimators=500)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
from sklearn.metrics import roc_auc_score
result = roc_auc_score(y_val, pred)
print(result)
===============================================================
작성 코드인데, 어떤걸 추가 해야 결과값이 더 좋을수 있을까요?
답변 1
0
0.5일 수도 있고 0.9일 수도 있어요
시험에서 전자는 성능이 너무 안 나오네?, 후자는 성능이 너무 잘 나오네? 라고 생각할 수 있습니다.
성능이 낮다고 판단한 이유가 아마 이전 경험에 의한 것이라 판단됩니다.
데이터에 따라 상대적인 것으로 1번째 모델 보다 2번째 모델이 잘나왔다면 그것을 제출 하는 것으로 하고 마무리 하면됩니다.
시험에서는 고성능 모델까지 요구하진 않고 있어요!