<자격증>/[빅데이터분석기사]

빅분기 실기 3회차 작업형 2번 기출

9566 2021. 12. 4. 17:52
728x90

빅데이터 분석기사 3회

- 실기 작업형 2번 문제

 

데이터는 7개의 독립변수, 1개의 설명변수

7개의 독립변수는 3개의 수치형 변수 + 4개의 범주형 변수로 구성

1개의 설명변수는 범주형 변수 [yes, no] -> [1,0]

 

import pandas as pd

a = pd.read_csv('/data') # X_train과 y_train이 결합된 형태
b = pd.read_csv('/data') # X_test

# 변수 변환
y_train = a[['y']] #dataframe 형태로
X_train = a.drop(columns = ['y'], axis =1 ) 

# 결과를 위한 정답
id = X_test.index

# 1. 데이터 정제
print(X_train.isnull().sum()) # 결측치 없었음
print(y_train.isnull().sum()) # 결측치 없었음
print(X_test.isnull().sum()) # 결측치 없었음

# 2. 데이터 변환(더미화)
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
X_train['x1'] = encoder.fit_transform(X_train['x1'])
X_train['x2'] = encoder.fit_transform(X_train['x2'])
X_train['x3'] = encoder.fit_transform(X_train['x3'])
X_train['x4'] = encoder.fit_transform(X_train['x4'])

X_test['x1'] = encoder.fit_transform(X_test['x1'])
X_test['x2'] = encoder.fit_transform(X_test['x2'])
X_test['x3'] = encoder.fit_transform(X_test['x3'])
X_test['x4'] = encoder.fit_transform(X_test['x4'])

# 3. 데이터 스케일링 -> pass

# 4. 데이터간 상관관계
train = pd.concat([X_train, y_train], axis = 1)
corr = train.corr()['y'].sort_values(ascending = False)
#print(corr)

# 5. 모델링
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
r2 = model.score()
print(r2)

pred = model.predict_proba(X_test)
pred = pred[:, 1]
answer = pd.DataFrame({'index' : id, 'y_pred' : pred})

# 결과확인
print(answer) 

# 저장
answer.to_csv('0030020000_csv', index = False)

 

 

실제 시험장에서 받았던 번호입니다. 뒷 4자리만 다릅니다. 합격하면 이 번호가 자격번호가 됩니다.

728x90