<자격증>/[빅데이터분석기사]
빅분기 실기 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)
728x90