기계 학습을 이용한 심장 질환 분석.
GitHub 코드Link
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
from sklearn.neighbors import KNeighborsClassifier
df = pd.read_csv('dataset.csv')
print(df.head())
산출:
print(df.info())
산출:
print(df.describe())
산출:
기능 선택
데이터 세트에서 각 기능의 상관 관계를 얻으려면
import seaborn as sns
corrmat = df.corr()
top_corr_features = corrmat.index
plt.figure(figsize=(16,16))
#plot heat map
g=sns.heatmap(df[top_corr_features].corr(),annot=True,cmap="RdYlGn")
plt.show()
산출:
대상 클래스의 크기가 거의 동일한 데이터 세트로 작업하는 것이 항상 좋습니다. 따라서 동일한 내용을 확인하겠습니다.
sns.set_style('whitegrid')
sns.countplot(x='target',data=df,palette='RdBu_r')
plt.show()
산출:
데이터 처리
데이터 세트를 탐색한 후 기계 학습 모델을 교육하기 전에 일부 범주형 변수를 더미 변수로 변환하고 모든 값을 확장해야 한다는 것을 알았습니다.
먼저
get_dummies
메서드를 사용하여 범주형 변수에 대한 더미 열을 만듭니다.dataset = pd.get_dummies(df, columns = ['sex', 'cp',
'fbs','restecg',
'exang', 'slope',
'ca', 'thal'])
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
standardScaler = StandardScaler()
columns_to_scale = ['age', 'trestbps', 'chol', 'thalach', 'oldpeak']
dataset[columns_to_scale] = standardScaler.fit_transform(dataset[columns_to_scale])
dataset.head()
산출:
y = dataset['target']
X = dataset.drop(['target'], axis = 1)
from sklearn.model_selection import cross_val_score
knn_scores = []
for k in range(1,21):
knn_classifier = KNeighborsClassifier(n_neighbors = k)
score=cross_val_score(knn_classifier,X,y,cv=10)
knn_scores.append(score.mean())
plt.plot([k for k in range(1, 21)], knn_scores, color = 'red')
for i in range(1,21):
plt.text(i, knn_scores[i-1], (i, knn_scores[i-1]))
plt.xticks([i for i in range(1, 21)])
plt.xlabel('Number of Neighbors (K)')
plt.ylabel('Scores')
plt.title('K Neighbors Classifier scores for different K values')
plt.show()
산출:
knn_classifier = KNeighborsClassifier(n_neighbors = 12)
score=cross_val_score(knn_classifier,X,y,cv=10)
score.mean()
산출:
랜덤 포레스트 분류기
from sklearn.ensemble import RandomForestClassifier
randomforest_classifier= RandomForestClassifier(n_estimators=10)
score=cross_val_score(randomforest_classifier,X,y,cv=10)
score.mean()
산출:
Reference
이 문제에 관하여(기계 학습을 이용한 심장 질환 분석.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sakibb019/heart-disease-analysis-by-using-machine-learning-3mf4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)