해결된 질문
작성
·
91
0
안녕하세요 예시문제 작업형2 신버전 풀어보았는데
평가값은 0.615
pred는 아래와 같이 나왔는데 맞게나온걸까요?
그리고 아래와 같이 풀어보았는데
혹시 아래와 같은 풀이에서
#원핫인코딩과 레이블인코딩을 넣을수있을까요?
넣으려면 어떤 문장으로 넣어야될까요? (오류가 뜨더라구요ㅠ)
#아니면 굳이 인코딩 안하고 아래처럼 제출해도될까요?
#데이터불러오기
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
# 확인/전처리/분리/모델/평가/예측/저장
# roc_auc(pred=predict_proba) / 양성(1)값=남자/ 분류모델
#확인
# print(train.shape, test.shape)
#print(train.head())
#print(test.head())
# print(train.info())
# print(test.info())
# print(train.isnull().sum())
# print(test.isnull().sum())
#전처리(결측값제거/문자제거/인코딩)
##결측값제거
train['환불금액'] = train['환불금액'].fillna(0)
test['환불금액'] = test['환불금액'].fillna(0)
##문자제거
cols=train.select_dtypes(include='object').columns #문자만
cols
train = train.drop(cols,axis=1) #문자제거
test = test.drop(cols,axis=1)
##인코딩
#분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(
train.drop('성별',axis=1), train['성별'], test_size=0.2, random_state=2022
)
#모델
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_tr,y_tr)
pred = model.predict_proba(X_val)
#평가
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_val, pred[:,1]))
#예측
pred = model.predict_proba(test)
submit = pd.DataFrame({
'pred':pred[:,1]
})
#저장
submit.to_csv('28381.csv', index=False)
print(pd.read_csv('28381.csv'))
답변 1
0
작업형2는 맞게라는 표현을 쓰기는 조금 어려울 것 같아요:) 큰문제는 없어 보입니다.
예시문제 작업형2(신 버전) 아래쪽에 제가 코드가 있어요! 휠을 조금만 내려보시겠어요?
하나는 심플한 코드 하나는 레이블 인코딩을 적용한 코드입니다. 참고 부탁드려요!
더불어 위 코드에서는 범주형 데이터를 아래와 같이 제거해버려 인코딩할 범주형 데이터가 없는 것 같아요!
##문자제거
cols=train.select_dtypes(include='object').columns #문자만
cols
train = train.drop(cols,axis=1) #문자제거
test = test.drop(cols,axis=1)
레이블 인코딩 방법
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])