해결된 질문
작성
·
39
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) 해당 코드를 작성하면, 파일 칸에 생기는 것을 확인했었는데, 여기서는 따로 생성이 안되고 그냥 제출하기만 하면 될까요?
답변 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이 나왔습니다.