빅데이터분석기사/작업형2

[작업형2] 유방암 예측 모델 만들기(분류)

seo0seok 2023. 6. 22. 01:12

// 퇴근후딴짓 님의 강의를 참고하였습니다. //

 

시험환경 : https://bit.ly/3H64wpG

 

문제) 분류 모델을 만든 뒤 다음과 같은 형식으로 CSV파일로 생성하시오. (제출한 모델의 성능은 F1평가지표에 따라 채점)

1. 시험환경 세팅

# 시험환경 세팅
import pandas as pd
from sklearn import datasets
dataset = datasets.load_breast_cancer()
df = pd.DataFrame(dataset['data'], columns=dataset['feature_names'])
df['target'] = dataset['target']
df.to_csv("data2.csv", index=False)

from sklearn.model_selection import train_test_split
train, test = train_test_split(df, test_size=0.2, random_state=2022)
y_test = test.pop('target')
train.to_csv('train.csv', index=False)
test.to_csv('test.csv', index=False)

 

2. 검증데이터 분리

import pandas as pd
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")


## 검증데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train.drop('target',axis=1), train['target'],  
                                            test_size=0.1, random_state=2022)

target 컬럼인 'target' 를 train에서는 제거하고 test에서는 'output' 컬럼만 포함시켜 분리한다.

 

3. 모델

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(random_state=2022)
model.fit(X_tr, y_tr)
pred = model.predict(X_val)

→ 랜덤포레스트 모델로 분류를 진행한다.

 

4. 평가

## 평가
from sklearn.metrics import f1_score
f1_score(y_val, pred)

실행 결과 :
0.9369369369369369

→ f1_score의 평가 지표로 평가를 진행하면 0.9369369369369369가 나온다.

 

5. 예측(Test)

pred = model.predict(test)

검증용 데이터가 아닌 실제 제출용 test 데이터로 예측한다.

 

6. csv 생성

pd.DataFrame({'index': test.index, 'target': pred}).to_csv('수험번호.csv', index=False)

문제 예시와 같이 'index' 컬럼에 test_index를 'target' 컬럼에 예측 확률을 넣어 데이터프레임을 만든다.