본문 바로가기
자격증

[빅데이터분석기사 실기 대비] 홈페이지 공식 예제 문제 풀이 (초보자 관점 쉬운 풀이)

by na.__.na 2021. 12. 4.

시험은 총 3가지 유형이 있는데, 

1. 단답형 (10문제) 

2. 작업형 1유형 (3문제)

3. 작업형 2유형 (1문제)

이다

 

시험 공부를 하며 예제 문제를 풀어보도록 한다

 

1. 단답형

답 : DBMS

 

2. 작업형 1유형


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

<작업순서>
→ mtcars.csv 로드
→ qsec 컬럼을 최소최대 척도(Min-Max Scale)로 변환한 후
→ qsec 컬럼 변환값 중 0.5보다 큰 값을 가지는 레코드 수를 구하시오.

 

import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler

# mtcars.csv 로드
data = pd.read_csv('mtcars.csv')

#  qsec 컬럼을 최소최대 척도(Min-Max Scale)로 변환한 후
data_fin = MinMaxScaler().fit_transform(data[['qsec']])

# qsec 컬럼 변환값 중 0.5보다 큰 값을 가지는 레코드 수를 구하시오.
print(len(data_fin[data_fin >= 0.5]))

# 9개

 

TIP!

자주 사용해보지 않은 수험자가 sklearn을 세부적으로 다 외우는 것은 매우 힘드므로 help를 적극 사용합시다

 

 

3. 작업형 2유형

 

아래는 백화점 고객의 1년 간 구매 데이터이다.

 

(가) 제공 데이터 목록
① y_train.csv : 고객의 성별 데이터 (학습용), CSV 형식의 파일
② X_train.csv, X_test.csv : 고객의 상품구매 속성 (학습용 및 평가용), CSV 형식의 파일

 

(나) 데이터 형식 및 내용
① y_train.csv (3,500명 데이터)
 - columns : 2개
   * custid: 고객 ID
   * gender: 고객의 성별 (0: 여자, 1: 남자)

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

 

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

 

<풀이>

문제 풀이 순서는 다음과 같이 진행할 예정이다

 

1. 데이터 읽기
2. 데이터 정제 > 결측값 확인 및 처리
3. 데이터 전처리
4. 모델 학습
5. 평가
6. csv 저장

 

1. 데이터 읽기

y_train = pd.read_csv('y_train.csv')
X_train = pd.read_csv('X_train.csv',encoding='euc-kr')
test  = pd.read_csv('X_test.csv', encoding='euc-kr')

X_train과 test 데이터는 한글 칼럼값이 존재하므로, 인코딩을 해주었다

이렇게 하지않으면 한글이 깨질 수도 있다 ! 

 

2. 데이터 정제 > 결측값 확인 및 처리

 

이후 데이터가 어떻게 구성되어 있는지 확인해준다 head()와 info() 사용

head()를 이용해 데이터 구성을 확인하고, info()를 이용하여 

 

(클릭하면 자세히 보입니다)

 

y_train는 3500개의 데이터와 2개의 칼럼

X_train는 3500개의 데이터와 10개의 칼럼

test는 2482개의 데이터와 10개의 칼럼

X_train과 test 데이터의 '환불금액'에 결측값이 존재함

 

결측값에 대해 좀 더 자세히 개수를 살펴보면, 다음과 같음

 

describe()를 통해 환불금액에 대해서만 자세히 살펴보면,

min 값이 0이 아닌 것을 확인 할 수 있다.

값이 비어있다는 것은 그냥 값 적는 것을 깜빡한 것일 수도 있지만 그 양이 너무 많기 때문에 실수라고 보긴 어려움

즉, 값이 비어있는 값은 환불금액이 0원이라고 판단할 수 있음 (100%는 아니지만 최선의 선택)

 

그러므로, 결측값을 모두 0으로 변경해줌

이때는 fillna(0)를 사용합니다

 

이후 결측값이 모두 사라졌음을 확인 ! 

 

3. 데이터 전처리

 

(1) 범주형 데이터를 원핫인코딩을 해줄거임

 

데이터에서 범주형 칼럼은 총 2개 '주구매상품', '주구매지점'


 

예상문제 출처 : 데이터자격시험

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

 

데이터자격시험

 

www.dataq.or.kr