작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
123
0
안녕하세요 섹션10- 예시문제 작업형2(신버전)
아래 풀이에서 어떤것이 잘못됬는지 알 수있을까요ㅠ?
# 출력을 원하실 경우 print() 함수 활용
# 예시) print(df.head())
# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가
#데이터불러오기
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())
#전처리(결측값제거/문자제거/인코딩)
#결측값제거
# print(train.isnull().sum())
train['환불금액'] = train['환불금액'].fillna(0)
# print(train.isnull().sum())
test['환불금액'] = test['환불금액'].fillna(0)
#문자제거
cols=train.select_dtypes(include='object').columns
cols
# print(train.info())
train = train.drop(cols,axis=1)
# print(train.info())
test = test.drop(cols,axis=1)
#cols = ['회원ID', '총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']
#target = train.pop('성별') #pop=성별을 target에 대입하고 나머지를 drop
#인코딩
train = pd.get_dummies(train, columns=cols)
test = pd.get_dummies(test, columns=cols)
#분리
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, ramdom_state=2022
)
#모델
#pred=predict_proba
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_tr,y_tr)
pred = model.predict_proba(X_val)
print(pred)
print(pred[:,1])
# #평가
from sklearn.metrics import roc_auc_scoer
print( roc_auc_scoer(y_val, pred[;,1]) ) --실제,예측
# #예측
pred=model.predict_proba(test)
pred
submit = pd.DataFrame({
'pred': pred[:,1]
})
submit
# #저장
submit.to_csv('result.csv', index=False)
print(pd.read_csv('result.csv'))
# 사용자 코딩
# 답안 제출 참고
# 아래 코드는 예시이며 변수명 등 개인별로 변경하여 활용
# pd.DataFrame변수.to_csv("result.csv", index=False)
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
서수영님의 질문에 대해 비슷한 상황을 다루는 기존 답변 링크가 있어 안내드립니다.
질문하신 내용과 유사한 문제 해결 방법을 포함하고 있는 게시글이기 때문에 참고하시면 도움이 될 것 같습니다.
서수영님의 코드를 검토해보니, 몇 가지 오타가 있으며, 특히 ‘random_state’의 오타와 ‘roc_auc_score’ 함수 사용 시 오타가 핵심적인 문제일 수 있습니다. 정확한 함수 명칭을 사용해야 하며, 올바른 파라미터 이름은 ‘random_state’입니다.
또한, ‘문자제거’ 단계에서 ‘drop’을 사용하여 문자형 열을 제거하는 대신, 머신러닝 모델에 적용하기 전에 문자형 데이터를 숫자형 데이터로 변환하는 인코딩 과정을 고려해야 합니다. ‘pd.get_dummies()’ 함수는 ‘train’과 ‘test’ 데이터에 있는 ‘cols’ 변수가 이미 삭제된 상태에서는 사용할 수 없습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.