인프런 커뮤니티 질문&답변
코드 작성을 이렇게 해도 될까요?
해결된 질문
작성
·
122
0
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
pd.set_option('display.max_columns', None)
# print(train.shape, test.shape)
# print(train.head())
# print(test.head())
# print(train.info())
# print(train.isnull().sum())
# print(test.isnull().sum())
train['환불금액'] = train['환불금액'].fillna(0)
test['환불금액'] = test['환불금액'].fillna(0)
cols = ['회원ID', '총구매액', '최대구매액','환불금액','방문일수','방문당구매건수','주말방문비율','구매주기']
# print(train.isnull().sum())
# print(test.isnull().sum())
target = train.pop('성별')
# print(train.shape, test.shape)
train = pd.get_dummies(train)
test = pd.get_dummies(test)
# print(train.shape, test.shape)
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train[cols],target, test_size = 0.2, random_state = 2022)
print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(random_state = 2022)
rf.fit(X_tr[cols], y_tr)
pred = rf.predict_proba(X_val[cols])
# print(pred)
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_val,pred[:,1]))
pred = rf.predict_proba(test[cols])
submit = pd.DataFrame({'pred' : pred[:,1]})
submit.to_csv('result.csv', index=False)
print(pd.read_csv('result.csv'))
그리고 코랩에서 연습할 때는 submit.to_csv('result.csv', index=False) 해당 코드를 작성하면, 파일 칸에 생기는 것을 확인했었는데, 여기서는 따로 생성이 안되고 그냥 제출하기만 하면 될까요?
퀴즈
이진 분류 문제에서 ROC AUC 지표 사용 시, 모델 예측 결과로 주로 제출하는 것은 무엇일까요?
클래스 0 예측값
클래스 1 예측값
예측 클래스 (0 또는 1)
클래스 1 예측 확률값
답변 2
0
데이터가 공개된 것이 아니라 결론을 내릴 수는 없지만
심사위원입장에서
수치형 변수만 사용해서 40점을 받기 불가능하게 설정할 것 같아요!
꿀팁 섹션 - 작업형2 한 가지 방법으로 풀기 로 우선 학습해 주시고
최악의 상황에는 수치형만 사용해 주세요
응원합니다!!
0
안녕하세요, 인프런 AI 인턴입니다. dkqehs님.
적어주신 코드는 데이터를 불러와 전처리한 후, train/test로 나누어 랜덤 포레스트 모델로 학습한 후 결과를 제출하는 코드로 보입니다. 코드 구조상 크게 문제가 없어 보이며, 특히 RandomForestClassifier를 통해 데이터 분류 예측을 수행하는 점에서 적절하게 작업하신 것 같습니다.
코드 관련 팁:
1. pd.get_dummies()는 범주형 변수를 One-hot 인코딩하는데 사용됩니다. 이 경우 가끔 train/test의 열 개수가 불일치할 수 있으니 나중에 활용시 주의가 필요합니다.
2. cols에 포함된 열들이 모두 데이터에 포함되어야 하며, 그렇지 않으면 오류가 발생할 수 있습니다.
질문에 대한 답변:
코랩에서 [submit.to_csv('result.csv', index=False)] 후 파일이 생성되었다면, 로컬 환경에서도 동일하게 CSV 파일이 생성될 것입니다. 이를 제출 시, 생성된 파일을 제출하여 평가됩니다.
이미지에서 파일 목록이 보이듯이, 이 과정은 정상적인 CSV 파일 생성을 지원합니다.
관련 질문과 비슷한 내용은 아래 링크를 참고해 보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






범주형 컬럼은 꼭 같이 사용을 해야할까요??(제가 잘 몰라서요ㅜㅜ) 수치형 컬럼을 cols로 묶지 않고 그냥 진행을 해보니 에러 메세지가 떠서, 수치형 컬럼만 묶어서 진행했습니다. 그렇게 했을 때 0.629라는 평가 지표가 나왔고, 범주형 컬럼을 함께 사용하라고 하셔서 레이블 인코딩을 진행 후 평가해보니 0.627이 나왔습니다.