반응형
※ 해당 글은 '빅데이터분석기사' 자격증 취득을 위해 개인 공부기록 용도로 작성된 내용입니다.
(출처 :유튜브 AI 너는 아니 AI you know?)
- 분류 : 종속(목표변수) 남-여 / 생존-사망
- 성능평가 : accuracy_score, f1_score, roc_auc_score
- 회귀 : 종속(목표변수) 수치형 / 가격 / 수치
- 성능평가 : rmse, 결정계수
# 1. 데이터 로드 및 확인
# 2-1. 결측값 처리(대체) - 최빈값
# 2-2. 라벨 인코딩
# 3-1. 모델링(데이터 분할)
# 3-2. 모델링(분류)
# 4. 성능평가
# 5. 테스트 모델 예측
# 6-1. 테스트 결과 제출
# 6-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")
# 사용자 코딩
# 1. 데이터 로드 및 확인
# print(train.info()) # 결측값 처리(환불금액) / 라벨인코딩(주구매상품, 주구매지점)
# print(test.info())
# 2-1. 결측값 처리(대체) - 최빈값
# print(train['환불금액'].mode()[0])
train.fillna(train['환불금액'].mode()[0], inplace=True)
test.fillna(test['환불금액'].mode()[0], inplace=True)
# print(train.info())
# print(test.info())
# 2-2. 라벨 인코딩
from sklearn import preprocessing
# print(help(sklearn.preprocessing.LabelEncoder))
le = preprocessing.LabelEncoder()
le.fit(train['주구매상품'])
train['주구매상품'] = le.transform(train['주구매상품'])
le.fit(train['주구매지점'])
train['주구매지점'] = le.transform(train['주구매지점'])
# print(train[['주구매상품','주구매지점']])
le.fit(test['주구매상품'])
test['주구매상품'] = le.transform(test['주구매상품'])
le.fit(test['주구매지점'])
test['주구매지점'] = le.transform(test['주구매지점'])
# print(test[['주구매상품','주구매지점']])
# print(train.info())
# print(test.info())
# 3-1. 모델링(데이터 분할)
import numpy as np
from sklearn.model_selection import train_test_split
# print(help(sklearn.model_selection.train_test_split))
X = train.drop(columns = ['성별','회원ID'])
y = train['성별']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2024)
# 3-2. 모델링(분류)
from sklearn.ensemble import RandomForestClassifier
# print(help(sklearn.ensemble.RandomForestClassifier))
clf = RandomForestClassifier(n_estimators=150, max_depth=20, random_state=2024)
clf.fit(X_train, y_train) # 학습
pred1 = clf.predict(X_test) # 예측(train 데이터에 대한 예측 값)
# 4. 성능평가
from sklearn.metrics import roc_auc_score, accuracy_score
# print(help(sklearn.metrics.roc_auc_score))
# print(help(sklearn.metrics.accuracy_score))
roc = roc_auc_score(y_test, pred1)
acc = accuracy_score(y_test, pred1)
# print(roc) # 0.6024
# print(acc) # 0.6643
# 5. 테스트 모델 예측
test_X = test.drop(columns=['회원ID'])
pred2 = clf.predict(test_X) # 예측(test 데이터에 대한 예측 값)
# print(pred2)
# 6-1. 테스트 결과 제출
pd.DataFrame({'pred':pred2}).to_csv("result.csv", index = False)
# 6-2. 결과 확인
# result = pd.read_csv("result.csv")
# print(result)
# 답안 제출 참고
# 아래 코드는 예시이며 변수명 등 개인별로 변경하여 활용
# pd.DataFrame변수.to_csv("result.csv", index=False)
반응형
'자격증' 카테고리의 다른 글
제8회 빅데이터분석기사 실기 시험후기 (0) | 2024.07.08 |
---|---|
빅데이터분석기사 실기 공부 - 3유형 (0) | 2024.06.18 |
빅데이터분석기사 실기 공부 - 2유형(회귀) (0) | 2024.06.17 |
빅데이터분석기사 실기 공부 - 1유형 (0) | 2024.06.17 |
빅데이터분석기사 실기 공부(팁) - 필수 암기 코드 (0) | 2024.06.12 |