자격증/빅데이터분석기사

[빅분기] 실기 시험까지 D-20, 작업형 제2유형 예시문제 시도(1)

mabb 2021. 11. 14. 22:16
반응형

   안녕하세요. 삶의질을 높이기 위해 노력하는 영차영차입니다.
빅데이터분석기사 실기 시험을 위한 본인의 메모 및 공부 목적 포스팅입니다.

 

X_test.csv
0.17MB
X_train.csv
0.23MB
y_train.csv
0.02MB

작업형 제2유형을 풀려면 어느정도 수준이 되어야 하는지 가늠해보기로함

 

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


<제출형식>
 custid,gender 3500,0.267 3501,0.578 3502,0.885 ․ ․ ․
<유의사항>
 성능이 우수한 예측모형을 구축하기 위해서는 적절한 5)데이터 전처리, 6)Feature Engineering, 7)분류 알고리즘 사용, 8)초매개변수 최적화, 9)모형 앙상블 등이 수반되어야 한다.
(0:여자,1:남자)

예시문제에서 요구하는 사항
1) X_train과 y_train으로 분류 머신러닝 학습을 시킨다. 로지스틱회귀분석을 이용해본다.
2) .predict_prob() 으로 남자일 확률을 레이블로 만들어 x_test와 병합한다
3) .to_csv('수험번호') 로 파일을 생성한다.
4) 분류문제의 평가지표인 ROC,AUC 평가지표로 검토해본다. 
5) 결측치, 이상치 처리 및 정규화를 한다
6) 특성(X,독립변수)를 필요한 것과 필요없는 것을 구분한다.
7) 대표적인 로지스틱회귀분석을 이용해본다.
8) 초매개변수(하이퍼파라미터)를 조정하여 모델튜닝한다.
9) 모형 앙상블?? 아직 모르겠음

문제풀이 계획

1. 데이터 탐색
 1) dtypes, shape, head 로 기본정보 파악
 2) 어떤 특성치(X,feature)가 있는지, 필요없는 특성치와 필요한 특성치 파악
 3) 결측치, 이상값 파악

2. 데이터 정제
 1) 결측치, 이상값 등 처리
 

3. 데이터 분할
 1) x(특성치,독립변수) 와 y(레이블,종속변수) 로 분할

4. 데이터 세트 분할
 1) x_train, x_test, y_train, y_test로 분할 / 해당 문제에서는 분할이 되어있음.

5. 정규화
 1) 특성치 (x_train,x_test) 정규화 ( 민맥스, 표준화)

6. 모델 학습
 1) 정규화한 x_train과 y_train을 이용하여 모델 학습을 시키고
 2)  훈련데이터의 예측값을 구하여 모델 정확성을 파악해봄(모델정확도,R_square,설명력)

7. 모델 적용
 1) 정규화한 x_test와 y_train을 이용하여 x_test의 예측 레이블 값을 구함.(예측값,확률)

8. 성능 점검
 1) 분류문제: 혼동행렬, ROC_AUR
 2) 회귀문제: RMSE , MAE, MSE

8. 데이터 병합 및 저장
 1) 구한 예측 레이블을 병합하고
 2_ csv파일로 저장함

데이터 살펴보기

 x의 특성치 중 성별 예측과 연관이 있는 특성치를 생각해봄.  '주구매상품'은 연관이 클 것으로 생각되는데
항목이 많아서 원핫인코딩을 해도 되는건지 모르겠음. 그냥 지워보도록하자. 환불금액은 null 값을 0으로 바꾸어서 사용하기로 함.

.head로 살펴보기

 

x특성치와 y레이블을 정함. 이상치를 제거해보고싶어서 야매로 주먹구구 코드를 짜봄.

 

 

상관계수가 올라간 부분이 있어서 이상치 제거가 나름 잘 된 것이라고 위로해봄.

 

정규화 후 모델학습을 시켜보니 에러가 남.
이상값을 제거한답시고 데이터를 건드렸더니 x의 케이스 개수와 y의 케이스 개수가 차이가 나서 학습을 시킬 수 없는 모양임.  애초에 통 데이터에서 결측치, 이상치를 처리하여 다듬고 이를 x,y로 나누고 훈련,평가 데이터로 나누었다면 이런 일이 생기지 않았을텐데 예시에서 제공하는 데이터는 이미 데이터 세트가 분할되어 있었기 때문에  조심히 건드렸어야 했음..

 

 

어떻게 에러를 해결하고 결과를 내보았으나 스코어가 0.59로 굉장히 낮게 나왔다.
이상치를 처리하는 방법에 대한 공부를 하고 계속 연습하고 연구해보아야겠다..

반응형