해결된 질문
작성
·
39
0
작성 답안 :
import pandas as pd
import numpy as np
train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ceredit%20card/train.csv")
test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ceredit%20card/test.csv")
target = train.pop('Attrition_Flag')
train = pd.get_dummies(train)
test=pd.get_dummies(test)
train.shape, test.shape
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)
X_tr.shape, X_val.shape, y_tr.shape, y_val.shape
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
from sklearn.metrics import f1_score
f1_score = f1_score(y_val, pred)
print(f1_score)
pred = rf.predict_proba(X_val)
from sklearn.metrics import roc_auc_score
roc_auc_score = roc_auc_score(y_val, pred[:,1])
print(roc_auc_score)
pred = rf.predict_proba(test)
pred
submit = pd.DataFrame({'Attrition_Flag':pred[:,1]})
submit.to_csv('result.csv',index=False)
df = pd.read_csv('result.csv')
df.shape
1. 강의 자료에서 검증 데이터 분리시 train.drop을 이용하여 baseline, 인코딩 여러 가징 방법을 적용하여 성능이 우수한 것을 결정하였는데, 시험볼때 원핫 인코딩 하나만 설정해서 진행해도 되는지 문의드립니다.
2. 전처리 시 'CLIENTNUM' 가 오버피팅될 수 있으므로 pop을 활용하여 따로 빼서 분리하였는데,
해당 과정은 생략해도 되는지 문의드립니다.
3. 원핫 인코딩 설정시
pd.get_dummies(train, columns = cols)가 아닌
pd.get_dummies(train)으로 설정해도 되는지 문의드립니다.
3. 시험볼때 f1_score, 정밀도, 재현율 등 여러가지 성능을 확인해봐야 되는지, 아니면 f1_score 하나만 확인해서 진행해도 되는지 문의드립니다.
3. 상위 코드 내용대로 풀어봤는데, 적정한지 검토 부탁드리겠습니다~^^
답변 1
0
1. 강의 자료에서 검증 데이터 분리시 train.drop을 이용하여 baseline, 인코딩 여러 가징 방법을 적용하여 성능이 우수한 것을 결정하였는데, 시험볼때 원핫 인코딩 하나만 설정해서 진행해도 되는지 문의드립니다.
네, 하나만 준비해도 충분해요
2. 전처리 시 'CLIENTNUM' 가 오버피팅될 수 있으므로 pop을 활용하여 따로 빼서 분리하였는데,
해당 과정은 생략해도 되는지 문의드립니다.
오버피팅 걱정은 안해셔도 되고 'CLIENTNUM'가 숫자면 그냥 둬도 됩니다.
문자면 제거(고유값, 모두가 유니크한 값일 때) 또는 인코딩이 필요해요 🙂
3. 원핫 인코딩 설정시
pd.get_dummies(train, columns = cols)가 아닌
pd.get_dummies(train)으로 설정해도 되는지 문의드립니다.
네 pd.get_dummies(train)로 가는 것이 좋습니다.
3. 시험볼때 f1_score, 정밀도, 재현율 등 여러가지 성능을 확인해봐야 되는지, 아니면 f1_score 하나만 확인해서 진행해도 되는지 문의드립니다.
평가지표가 주어집니다. 그 평가지표로 체크해보는 것이고
만약 모르는 평가지표라고 하면 아는 평가 지표를 활용해 볼 수 있어요
어려울 경우 성능은 꼭 확인하지 않아도 되지만, 내가 만든 모델의 성능을 알 수가 없다는 단점이 있어요.
3. 상위 코드 내용대로 풀어봤는데, 적정한지 검토 부탁드리겠습니다~^^
네 큰 문제 없어보입니다. 추후 시험에서는 Attrition_Flag 컬럼명이 아닌 특정 컬럼명으로 작성하시오 라고 되어 있을거에요~