// 퇴근후딴짓 님의 강의를 참고하였습니다. //
시험환경 : 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' 컬럼에 예측 확률을 넣어 데이터프레임을 만든다.
'빅데이터분석기사 > 작업형2' 카테고리의 다른 글
[작업형2] 중고 자동차 가격 예측하기(회귀) (0) | 2023.06.24 |
---|---|
[작업형2] 자동차 시장 세분화(분류) (0) | 2023.06.24 |
[작업형2] 심장마비 확률 높은 사람 구하기(분류 / 튜닝) (0) | 2023.06.17 |
[작업형2] 에어비앤비 가격 예측하기(회귀) (0) | 2023.06.17 |
[작업형2] 신용카드 서비스를 떠나는 고객 확률 구하기(분류) (0) | 2023.06.17 |