인프런 커뮤니티 질문&답변
3회 기출유형(작업형)
해결된 질문
작성
·
337
0
- 안녕하세요. 작업형2문제 시험준비를 범주형데이터는 모두 label로 인코딩하고, 모형은 randomforest를 활용하려고 합니다. 
- 강의해주신 내용은 수치형을 분리해서 작업을 하는데 만약, 제가 한 것처럼 하면 문제는 없는지 궁금합니다.(그냥 무턱대고 외워서 진행한거라서... 오류가 안난다 뿐인지, 코딩이 맞는지 확신이 없습니다.) 
- 추가적으로, 원래는 index 이름이 없는 첫번째 열을 삭제 하고싶엇는데... 삭제를 못하겠더라구요 이럴경우 함수를 어떻게 적어야하는지 궁금합니다. 
import pandas as pd
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
# print(train.shape, test.shape) # (1490, 10) (497, 9)
# print(train.info(), test.info()) # object 4개
# print(train.select_dtypes(include='object').columns) # 'Employment Type', 'GraduateOrNot', 'FrequentFlyer', 'EverTravelledAbroad'
# print(test.select_dtypes(include='object').columns)
# print(train.isnull().sum()) # 결측치x
# print(test.isnull().sum()) # 결측치x
# print(train['TravelInsurance'].value_counts()) # target 변수 값 확인
from sklearn.preprocessing import LabelEncoder
cols=train.select_dtypes(include='object').columns
# print(cols)
for col in cols :
le=LabelEncoder()
train[col]=le.fit_transform(train[col])
test[col]=le.transform(test[col])
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val=train_test_split(train.drop('TravelInsurance',axis=1), train['TravelInsurance'], test_size=0.2, random_state=2023)
# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # (1192, 9) (298, 9) (1192,) (298,)
from sklearn.ensemble import RandomForestClassifier
model=RandomForestClassifier()
model.fit(X_tr, y_tr)
pred=model.predict_proba(X_val)
# print(pred[:,1])
from sklearn.metrics import roc_auc_score
roc_auc_score(y_val, pred[:,1]) # 0.7817398927392739 검증용
y_pred=model.predict_proba(test)
submit=pd.DataFrame({
'index' : test.index,
'y_pred': y_pred[:,1]
})
# print(submit)
submit.to_csv('result.csv',index=False)
print(pd.read_csv('result.csv'))
답변 1
1
네 분리하지 않아도 됩니다. 🙂
작업형 2 문제를 해결하기 위한 기본적인 프로세스를 잘 따르고 있습니다.
7회 시험에서는 'index' : test.index 컬럼은 제출하지 않고 예측컬럼만 제출하는 것으로 가이드 되었습니다. 참고해주세요 !!
응원합니다 !!!!🔥






