자격증

빅데이터분석기사 실기 공부 - 2유형(분류)

studyoung 2024. 6. 18. 00:18
반응형

※ 해당 글은 '빅데이터분석기사' 자격증 취득을 위해 개인 공부기록 용도로 작성된 내용입니다.

(출처 :유튜브 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)



반응형