반응형
https://dataq.goorm.io/exam/116674/%EC%B2%B4%ED%97%98%ED%95%98%EA%B8%B0/quiz/1
# print문으로 데이터나 함수값이 ... 으로 생략되어 보일 경우 옵션설정
pd.options.display.max_columns = None
# 분석한 데이터 중간에 백업
x_train_backup = x_train.copy()
# 시험환경 유형2 작성샘플 코드
# 출력을 원하실 경우 print() 함수 활용
# 예시) print(df.head())
# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가
# 데이터 파일 읽기 예제
import pandas as pd
x_test = pd.read_csv("data/X_test.csv")
x_train = pd.read_csv("data/X_train.csv")
y_train = pd.read_csv("data/y_train.csv")
# 사용자 코딩
#print(X_train.info())
pd.options.display.max_columns = None
#print(X_train.describe().T)
x_test_cust_id = x_test['cust_id']
x_train = x_train.drop(columns = ['cust_id'])
y_train = y_train.drop(columns = ['cust_id'])
x_test = x_test.drop(columns = ['cust_id'])
#print(x_train.head())
x_train['환불금액'] = x_train['환불금액'].fillna(0)
x_test['환불금액'] = x_test['환불금액'].fillna(0)
#print(x_train.isnull().sum())
#print(x_test.isnull().sum())
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
x_train['주구매상품'] = encoder.fit_transform(x_train['주구매상품'])
x_train['주구매지점'] = encoder.fit_transform(x_train['주구매지점'])
x_test['주구매상품'] = encoder.fit_transform(x_test['주구매상품'])
x_test['주구매지점'] = encoder.fit_transform(x_test['주구매지점'])
condition = x_train['환불금액'] > 0
x_train.loc[condition, '환불금액_new'] = 1
x_train.loc[~condition, '환불금액_new'] = 0
x_test.loc[condition, '환불금액_new'] = 1
x_test.loc[~condition, '환불금액_new'] = 0
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
x_train = pd.DataFrame(scaler.fit_transform(x_train), columns = x_train.columns)
x_test = pd.DataFrame(scaler.transform(x_test), columns = x_test.columns)
x_train = x_train.drop(columns = ['최대구매액'])
x_test = x_test.drop(columns = ['최대구매액'])
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(max_depth=10, criterion='entropy', random_state=10)
model.fit(x_train, y_train)
y_train_predicted = model.predict(x_train)
from sklearn.metrics import roc_auc_score
#print(roc_auc_score(y_train, y_train_predicted))
y_test_predict = model.predict(x_test)
y_test_predict = pd.DataFrame(y_test_predict)
result = pd.concat([x_test_cust_id, y_test_predict], axis = 1).rename(columns = {0:'gender'})
# 답안 제출 참고
# 아래 코드 예측변수와 수험번호를 개인별로 변경하여 활용
result.to_csv('test.csv', index=False)
# pd.DataFrame({'cust_id': X_test.cust_id, 'gender': pred}).to_csv('003000000.csv', index=False)
반응형
'IT 자격증 > 빅데이터분석기사' 카테고리의 다른 글
빅분기 용어정리 (ADP) (0) | 2022.06.19 |
---|---|
빅분기 용어정리 (ADSP) (0) | 2022.06.18 |
데이터 읽어오기, 저장하기 (0) | 2022.06.02 |
사분위수 구하기 (0) | 2022.05.31 |
결측치 확인 (0) | 2022.05.31 |