빅데이터 분석기사 체험하기 작업2유형 정답을 공개한다.
실제 시험도 동일한 환경에서 진행하기 때문에 해당 환경에서 익숙해지는것은 필수이다.
주피터 노트북과 다르게 print를 써줘야 하며, 몇가지 다른부분이 있으므로, 꼭 실전 연습을 해보길 바란다.
https://dataq.goorm.io/exam/116674/%EC%B2%B4%ED%97%98%ED%95%98%EA%B8%B0/quiz/3
이전 후기에서 말한 것처럼 4회때도 데이터만 변경되었고, 동일하게 출제되었다.
정말 이문제와 100% 동일하였다. 단지 컬럼명만 다를 뿐이였다.
랜덤서치까지는 사용안해도 될 것 같다.
Regression보다는 RandomForest를 사용하는 것을 추천한다.
RandomForest를 활용하여 실제 시험에서 40점 만점을 받았다.
# 데이터 파일 읽기 예제
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")
# 사용자 코딩
# 사용자 코딩
cust_id = X_test[['cust_id']]
X_train.drop('cust_id', axis=1, inplace=True)
X_test.drop('cust_id', axis=1, inplace=True)
y_train = y_train['gender']
X_train = X_train.fillna(0)
X_test = X_test.fillna(0)
del_index = X_train[(X_train['총구매액']<0)|(X_train['최대구매액']<0)].index.tolist()
X_train.drop(del_index, axis=0, inplace=True)
y_train.drop(del_index, axis=0, inplace=True)
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['주구매지점'])
from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler()
feature_names = X_train.columns
X_train = pd.DataFrame(Scaler.fit_transform(X_train), columns=feature_names)
X_test = pd.DataFrame(Scaler.fit_transform(X_test), columns=feature_names)
from sklearn.model_selection import train_test_split
X_train, X_vaild, y_train, y_vaild = train_test_split(X_train, y_train, test_size=0.2, random_state=42)
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV
from sklearn.metrics import roc_auc_score
import numpy as np
model = RandomForestClassifier(random_state=42)
params = {'max_depth':np.random.randint(5,30,10),
'max_features':np.random.uniform(0.3,1,10)}
clf = RandomizedSearchCV(model, params, cv=5, n_iter=10, n_jobs=-1)
clf.fit(X_train, y_train)
y_vaild_proba = clf.predict_proba(X_vaild)[:,1]
print(roc_auc_score(y_vaild, y_vaild_proba))
'딥러닝,패턴인식,빅데이터' 카테고리의 다른 글
빅데이터 분석기사 3회 기출문제 풀이(2) (0) | 2022.08.03 |
---|---|
빅데이터 분석기사 3회 기출문제 풀이(1) (0) | 2022.08.03 |
빅데이터 분석기사 실기 합격 후기 (4회) - 파이썬 python 캐글 구름 시험환경 (0) | 2022.08.01 |