본문 바로가기
Algorithms

[빅데이터분석기사][실기] 작업형 제2유형

by doraemin_dev 2025. 6. 20.

작업형 제2유형

"""라벨인코딩, 스케일링, 랜덤포레스트"""

import pandas as pd
import numpy as np
X_train = pd.read_csv("train.csv")
y_train = pd.read_csv("y_train.csv")
X_test = pd.read_csv("X_test.csv")

print(X_train.info())
col_num = ['age']
col_cat = ['race' , 'sex']

# 범주형 변수를 -> 레이블 인코딩하여 정수 형태로 변환하자
# 레이블 인코딩한 데이터는 선형 모델에 적합하지 않다.
# 비선형 모델인 랜덤포레스트와 XGBoost 알고리즘을 사용하자.

from sklearn.preprocessing import LabelEncoder
X = pd.concat([X_train, X_test])
for col in col_cat :
  le = LabelEncoder()
  le.fit(X_train[col])
  X_train[col] = le.transform(X_train[col])
  X_test[col] = le.transform(X_test[col])

# 모델링
# 1. 분할
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size=0.3)

# 수치형 변수 scaling
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
scale.fit_transform(X_tr[col_num])
X_tr[col_num] = scale.transform(X_tr[col_num])
X_val[col_num] = scale.transform(X_val[col_num])
X_test[col_num] = scale.transform(X_test[col_num])

# 2. 모델 생성
# 3. 모델 학습
from sklearn.ensemble import RandomForestClassifier
model_rf = RandomForestClassifier()
# model_rf.fit(X_tr, y_tr)
model_rf.fit(X_tr, y_tr.values.ravel())
# Scikit-learn의 fit() 메서드는 1차원 타겟 벡터 ((21113,))를 기대합니다.
# 지금처럼 (21113, 1) 형태일 경우, 명시적으로 1차원으로 바꿔주는 게 안전합니다.

# 4. 평가
# 5. 예측
from sklearn.metrics import roc_auc_score
y_pred = model_rf.predict_proba(X_val)
score = roc_auc_score(y_val, y_pred[:,1])
print(score)

#  'capital_gain', 'capital_loss' 변수 제외
# GridSearchCV 로 하이퍼파라미터 탐색
pred = model_rf.predict_proba(X_test)[:,1]
pd.DataFrame( {'index' : X_test.index, 'target' : pred}).to_csv('income.csv', index=False)

[빅데이터분석기사] 합격 후기

 

[빅데이터분석기사] 합격 후기

필기를 합격하고학기 종강하고실기 시험까지 며칠이 없어서 기출 몇 회 풀고 갔습니다[빅데이터분석기사] 필기 공부법 및 후기 [빅데이터분석기사] 필기 공부법 및 후기정말 감사하게도, 유튜

doraemin.tistory.com