https://dataq.goorm.io/exam/3/%EC%B2%B4%ED%97%98%ED%95%98%EA%B8%B0/quiz/4
이번에는 작업형2번을 구름edu에서 실행해보았습니다.
(하..너무 힘들고 힘들었어요)
일단 문제를 확인해보는 것보터 해볼게요!
일단 저희가 확인해야하는것은
1.백화점 구매 고객의 성별을 예측하는 모델 만들기
2.roc_auc_score을 통해서 점수 평가가된다는점
입니다. 일단 데이터를 확인해야겠죠?
#데이터 확인
print(train.shape, test.shape)
를해서 3500,2482를 확인할 수 있습니다.
그리고 결측값이 환불금액<< 에만 있어서 fillna(0)를 해서 0으로 맞춰주었어요.
그러면 결측값이 없어졌고
이제 학습을 하기 위한 데이터를 만들어야하는데
level1으로 수치형데이터만 가지고와서 리스트로 만들어보겠습니다.
X = train[['회원ID', '총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']]
X_test = test[['회원ID', '총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']]
y = train.pop('성별')
여기서 pandas는 2d array로 해야돼요.
그래서 [[]]가 있다는점 꼭!!기억해요.
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
# 사용자 코딩
#데이터 확인
#print(train.shape, test.shape)
#결측값 대체
train['환불금액'] =train['환불금액'].fillna(0)
test['환불금액'] =test['환불금액'].fillna(0)
# 학습할 컬럼 선택
X = train[['회원ID', '총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']]
X_test = test[['회원ID', '총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']]
y = train.pop('성별')
#모델 가져오기 (RandomForestClassifier)
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X, y)
# 예측하기
predict = model.predict_proba(X_test)
predict_male = predict[:, 1]
#print(predict_male)
#########성능예측하기
#from sklearn.metrics import roc_auc_score
#roc_auc = roc_auc_score(y, predict_male)
#print("ROC-AUC Score:", roc_auc)
print(len(y)) #3500
print(len(predict_male)) #2482
#result = pd.DataFrame({
# 'pred':predict
#})
#result.to_csv('result.csv', index=False)
#result= pd.read_csv('result.csv')
#print(result)
여기서 계속 막혔던 부분은 성능예측하는 부분인데
y와 predict_male값의 크기가 안맞았는데 그래서 ROC_AUC_SCORE 이 되지않아요..
'자격증 > [빅분기] 빅데이터분석기사' 카테고리의 다른 글
[기출2] 풀이 코드 (0) | 2024.11.20 |
---|---|
[작업형3] 이원 분산 분석 실습 + 심화 (0) | 2024.11.19 |
[작업형3] 일원분산분석 실습 + 심화실습 (0) | 2024.11.17 |
[작업형3] 분산분석 개념 (0) | 2024.11.16 |
[작업형3] 다선형회귀, 범주형이 섞여있다면? (0) | 2024.11.14 |