강의

멘토링

로드맵

Inflearn brand logo image

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

bobby1994님의 프로필 이미지
bobby1994

작성한 질문수

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

작업형2 문제 1번 문의

해결된 질문

작성

·

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 컬럼명이 아닌 특정 컬럼명으로 작성하시오 라고 되어 있을거에요~

bobby1994님의 프로필 이미지
bobby1994

작성한 질문수

질문하기