본문 바로가기
Career/Certificate

[빅데이터분석기사] 실기 예시 풀이

by 5ole 2021. 5. 31.

 

단답형 (10문제)

 

여러 명의 사용자들이 컴퓨터에 저장된 많은 자료들을 쉽고 빠르게
조회, 추가, 수정, 삭제할 수 있도록 해주는 소프트웨어는 무엇인가?

 

--> DBMS

 


 

 

작업형 제 1유형 : 데이터 처리 영역 (3문제)

 

mtcars 데이터셋(data/mtcars.csv)의 qsec 컬럼을 최소최대 척도(min-max-scale)로 변환한 후
0.5보다 큰 값을 가지는 레코드 수를 구하시오.

 

# 출력을 원하실 경우 print() 활용
# 예) print(df.head())

# 답안 제출 예시
# print(레코드 수)

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

mtcars=pd.read_csv('data/mtcars.csv')
scaler = MinMaxScaler()

qsec = pd.DataFrame(mtcars['qsec']) # 필요
qsec = scaler.fit_transform(qsec)
print(len(qsec[qsec > 0.5])) # 9

 


 

작업형 제 2유형 : 모델 구축 및 평가 영역 (1문제)

 

고객 3,500명에 대한 학습용 데이터(y_train.csv, X_train.csv)를 이용하여 성별예측 모형을 만든 후,
이를 평가용 데이터(X_test.csv)에 적용하여 얻은 2,482명 고객의 성별 예측값(남자일 확률)을
다음과 같은 형식의 CSV 파일로 생성하시오. (제출한 모델의 성능은 ROC-AUC 평가지표에 따라 채점)

<유의사항> 성능이 우수한 예측모형을 구축하기 위해서는 적절한 데이터 전처리, Feature Engineering, 분류 알고리즘 사용, 초매개변수 최적화, 모형 앙상블 등이 수반되어야 한다

 

 

  • 성별예측 모형 -> 분류 모델
  • 성별 예측값 - 남자일 확률 : predict_proba

 

  • 데이터 전처리 : NA값 처리, 데이터 요약
  • Feature Engineering : 범주형 - 원핫인코딩, / 연속형 - 스케일 조정, 구간 분할 등
  • 분류 알고리즘 : 로지스틱회귀분석, Decision tree 등
  • 초매개변수 최적화 : cv 등 활용
  • 모형 앙상블- 배깅, 부스팅, RF, 스태킹, 보팅 등

 

# 출력을 원하실 경우 print() 활용
# 예) print(df.head())

# 답안 제출 예시
# 수험번호.csv 생성
# DataFrame.to_csv("0000.csv", index=False)



import pandas as pd

y_train = pd.read_csv('data/y_train.csv')
x_train = pd.read_csv('data/X_train.csv')
x_test = pd.read_csv('data/X_test.csv')



########################      데이터전처리     ########################



# print(x_train.isna().sum())
# print(x_train.columns)
# print(x_train.iloc[:,:7].describe())
# print(x_train.iloc[:,7:].describe())

x_train['환불금액'] = x_train['환불금액'].fillna(0)
x_test['환불금액'] = x_test['환불금액'].fillna(0)

# print(train.isna().sum().sum())



########################           FE             ########################



# from sklearn.preprocessing import LabelEncoder

# for i in x_train[['주구매상품','주구매지점']]:
#   print(x_train[i].value_counts())
#   print('------------') # 주구매상품, 주구매지점 ->  범주형

merchandise = pd.get_dummies(x_train['주구매상품'], prefix='주구매상품',drop_first=True)
store = pd.get_dummies(x_train['주구매지점'], prefix='주구매지점',drop_first=True)
x_train = pd.concat([x_train,merchandise,store], axis=1)
# print(len(x_train.columns))
x_train.drop(columns=['주구매상품','주구매지점','cust_id','주구매상품_소형가전'],inplace=True)
# print(len(x_train.columns))

merchandise = pd.get_dummies(x_test['주구매상품'], prefix='주구매상품',drop_first=True)
store = pd.get_dummies(x_test['주구매지점'], prefix='주구매지점',drop_first=True)
x_test = pd.concat([x_test,merchandise,store], axis=1)
# print(len(x_test.columns))
cust_id = x_test['cust_id']
x_test.drop(columns=['주구매상품','주구매지점','cust_id'],inplace=True)
# print(len(x_test.columns))

# print(set(x_train.columns) - set(x_test.columns))



########################           분류알고리즘             ########################



from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score


rf = RandomForestClassifier(max_depth=2)
rf.fit(x_train, y_train['gender'])
y_predict_rf = rf.predict_proba(x_test)

print('RF ROCAUC Score: ', roc_auc_score(y_train['gender'], pd.DataFrame(rf.predict_proba(x_train)).iloc[:,1]))


lr = LogisticRegression()
lr.fit(x_train, y_train['gender'])
y_predict_lr = lr.predict_proba(x_test)

print('LR ROCAUC Score: ', roc_auc_score(y_train['gender'], pd.DataFrame(lr.predict_proba(x_train)).iloc[:,1]))



########################  제출  ########################



y_predict = pd.DataFrame(y_predict_lr)
submit=pd.concat([cust_id,y_predict.iloc[:,1]],axis=1)
print(submit)
submit.to_csv('210530.csv',index=False)

 

 

 

 

 

( + ) 참고 사이트

 

https://www.dataq.or.kr/www/board/view.do?bbsKey=eyJiYnNhdHRyU2VxIjoxLCJiYnNTZXEiOjUwOTM0M30=&boardKind=notice 

 

데이터자격시험

 

www.dataq.or.kr

https://dataq.goorm.io/exam/116674/%EC%B2%B4%ED%97%98%ED%95%98%EA%B8%B0/quiz/1

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

댓글