암이 생길지 안 생길지 예측을 해봤어요.
9308 단어 Python
개시하다
sklearn.데이터sets에 수록된 유방암 검사 데이터를 사용하여 암의 발생 여부를 예측한다.
데이터 읽기
라이브러리와 유방암 데이터를 읽다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
import seaborn as sns
from sklearn.datasets import load_breast_cancer
bc = load_breast_cancer()
df_data = pd.DataFrame(bc.data, columns=bc.feature_names)
df_target = pd.DataFrame(bc.target, columns=['class'])
df = pd.concat([df_data, df_target], axis=1)
데이터 분석 및 특징량 공정
우선 관련을 두다.
df_corr = df.corr()
sns.heatmap(df_corr)
다양한 분석을 하고 싶지만 의학적 지식이 전혀 없어 관련 절대치가 높은 것만 특징량으로 사용한다.
X = df.loc[:, df_corr["class"].abs().sort_values(ascending=False).index[1:10]].values
y = df.loc[:, ['class']].values
데이터를 표준화하다.from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X)
X_std = scaler.transform(X)
학습용과 평가용의 데이터로 나누다.from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_std, y, test_size=0.3, random_state=0)
학습과 평가
격자선을 검색합니다.지원 벡터기를 사용하는 것은 단지 개인의 취향일 뿐이다.
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100], 'gamma' : [0.001, 0.01, 0.1, 1, 10, 100]}
grid_search_svm = GridSearchCV(SVC(), param_grid)
grid_search_svm.fit(X_train, y_train)
학습용 데이터와 평가용 데이터로 모델의 정확한 대답률을 확인한다.print('train acc: %.3f' % grid_search_svm.score(X_train, y_train))
print('test acc: %.3f' % grid_search_svm.score(X_test, y_test))
print(grid_search_svm.best_params_)
결실train acc: 0.970
test acc: 0.942
{'C': 100, 'gamma': 0.01}
이렇게나는 점수가 그런대로 괜찮다고 생각하지만, 좀 과한 것 같아서 파라미터를 약간 조정했다.
svm = SVC(C=300,gamma=0.01)
svm.fit(X_train,y_train)
print('train acc: %.3f' % svm.score(X_train, y_train))
print('test acc: %.3f' % svm.score(X_test, y_test))
위 매개변수에서train acc: 0.972
test acc: 0.965
네.비싸서 만족해요.
총결산
데이터 분석 부분은 비교적 적합하지만 정확도가 매우 좋아서 그래도 괜찮다.
Reference
이 문제에 관하여(암이 생길지 안 생길지 예측을 해봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuya-8/items/e89de3ec24dcade96376텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)