반응형
#===================================================#
# 백화점 고객의 1년간 구매 데이터
# y_train.csv : 고객의 성별 데이터 (학습용), csv 형식의 파일 # gender 1 남성 0 여성
# x_train.csv, x_test.csv : 고객의 상품구매 속성 (학습용 및 평가용), csv 형식의 파일
# 학습용 데이터 y_train.csv, x_train.csv 를 이용하여 성별예측 모형을 만든 후,
# 평가용 데이터 x_text.csv 에 적용하여 얻은 고객의 성별예측값 (남자일 확률)을
# 다음과 같은 형식의 csv 파일로 생성하시오. (custid,gender)
# 제출한 모델의 성능은 ROC-AUC 평가지표에 따라 채점
# 적절한 데이터 전처리, Feature Engineering, 분류 알고리즘 사용, 초매개변수 최적화, 모형 앙상블 해야함
# 수험번호.csv (0000.csv) 파일이 만들어지도록 코드를 제출한다.
# dataset 은 'data/y_train.csv'의 형태로 읽어들인다.
#===================================================#
# 1. 라이브러리
# 2. 데이터 불러오기
# 3. EDA
# 4. 피처 엔지니어링
# 5. 모델링 & 하이퍼파라미터 튜닝 & 앙상블
# 6. csv 파일
#===================================================#
# 1. 라이브러리
import pandas as pd
# 2. 데이터 불러오기
X = pd.read_csv("data/X_train.csv")
y = pd.read_csv("data/y_train.csv")
test = pd.read_csv("data/X_test.csv")
# 3. EDA
# 위쪽의 탭에서 데이터 확인 가능
print(X.isnull().sum())
print(test.isnull().sum())
print(X.info())
# X_train 데이터 기초통계
print(X.describe())
# include 입력변수는 결과를 요약하기 위한 데이터 타입의 리스트를 입력받는다.
print(X.describe(include='None')) #기본값. 수치데이터가 있는 열만 결과에 포함.
print(X.describe(include='object'))
print(X.describe(include='number'))
print(X.describe(include='category'))
print(X.describe(include='all'))
# exclude도 가능 # 제외할 열 선택
print(X.describe(exclude='number'))
# percentiles : 분위수가 출력되는 퍼센트를 입력받는다. 입력되는 값은 0과 1 사이어야 한다. 기본적으로는 0.25, 0.5, 0.75가 입력되어 있다. 이 값들은 25%, 50%, 75% 를 의미한다.
# 데이터 전처리
X = X.fillna(0)
test = test.fillna(0)
X = X.drop(['cust_id'],axis=1) #필요없으니 삭제
cust_id = test.pop('cust_id') #나중에 csv에 넣으려고 빼둠
# 4. 피처 엔지니어링
# 주 구매 상품과 주 구매 지점을 레이블 인코딩 해준다
from sklearn.preprocessing import LabelEncoder
cols = ['주구매상품','주구매지점']
for col in cols:
le = LabelEncoder()
X[col] = le.fit_transform([X[col]])
test[col] = le.transform(test[col])
# 5. 모델링 & 하이퍼파라미터 튜닝 & 앙상블
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=2022)
#random_state= 랜덤 요소를 고정하기 위해 특정 값을 입력함. 고정하지 않으면 모델 성능 향상이 전처리 때문인지 튜닝 때문인지 알수 없음.
model.fit(X,y['gender'])
predictions = model.predict_probs(test)
# 6. csv 파일
output = pd.DataFrame({'cust_id':cust_id, 'gender':predictions[:,1]})
output.to_csv("0000.csv",index=False)
# 관련 코드!!! https://www.kaggle.com/code/agileteam/t2-exercise-tutorial-baseline/notebook
반응형
'IT,SW,Data,Cloud,코딩 > Python' 카테고리의 다른 글
2023년6월6일 판다스공부 (0) | 2023.06.06 |
---|---|
2023년6월5일 판다스공부 (0) | 2023.06.06 |
2023년6월5일 파이썬공부 - 퇴근후딴짓님의 인프런 강의 따라치면서 배우기 (0) | 2023.06.05 |
2023년06월03일 파이썬공부 (0) | 2023.06.03 |
2023년6월2일 파이썬공부 - 퇴근후딴짓 님의 유투브 3. 작업형1 예시문제 무작정 따라해보기 - 보면서 따라 쳐 보는 포스팅 (0) | 2023.06.02 |
2023년6월2일 파이썬공부 - 데이터사이언스스쿨 3장 넘파이 배열 프로그래밍 3.2 배열의 생성과 변형 :: 코드 따라 쳐보기 (0) | 2023.06.02 |
2023년5월31일 파이썬공부 - 데이터 사이언스 스쿨 파이썬 편 3장 3.1 넘파이 배열 - 내용 따라 치기 (0) | 2023.05.31 |
2023년5월24일 파이썬 공부 - (대구빅데이터활용센터)[빅데이터 분석기사] 빅분기 실기 교육영상 7강 따라쳐보기 (0) | 2023.05.30 |
댓글