资源简介
用各种机器学习方法(knn,随机森林,决策树等)预测糖尿病:含数据集
代码片段和文件信息
# coding: utf-8
# In[1]:
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
get_ipython().run_line_magic(‘matplotlib‘ ‘inline‘)
diabetes=pd.read_csv(r‘C:\Users\Administrator\Desktop\diabetes\Machine-Learning-with-Python-master\diabetes.csv‘)
print(diabetes.columns)
# In[2]:
diabetes.head()
# In[3]:
#“结果”是我们将要预测的特征,0意味着未患糖尿病,1意味着患有糖尿病。在768个数据点中,500个被标记为0268个标记为1。
print(diabetes.groupby(‘Outcome‘).size())
# In[4]:
#显示数据的维度
print(“dimennsion of diabetes data:{}“.format(diabetes.shape))
# In[5]:
import seaborn as sns
sns.countplot(diabetes[‘Outcome‘]label=“Count“)
# In[7]:
diabetes.info()
# In[70]:
#首先用knn研究一下是否能够确认模型的复杂度和精确度之间的关系
from sklearn.model_selection import train_test_split
x_trainx_testy_trainy_test=train_test_split(diabetes.loc[:diabetes.columns !=‘Outcome‘]diabetes[‘Outcome‘]stratify=diabetes[‘Outcome‘]random_state=66)
from sklearn.neighbors import KNeighborsClassifier
training_accuracy=[]
test_accuracy=[]
#try n_neighbors from 1 to 10
neighbors_settings=range(111)
for n_neighbors in neighbors_settings:
#build the model
knn=KNeighborsClassifier(n_neighbors=n_neighbors)
knn.fit(x_trainy_train)
#record training set accuracy
training_accuracy.append(knn.score(x_trainy_train))
#record test set accuracy
test_accuracy.append(knn.score(x_testy_test))
plt.plot(neighbors_settingstraining_accuracylabel=“training accuracy“)
plt.plot(neighbors_settingstest_accuracylabel=“test accuracy“)
plt.ylabel(“Accuracy“)
plt.xlabel(“n_neighbors“)
plt.legend()
plt.savefig(‘knn_compare_model‘)
# In[73]:
#逻辑回归算法
#正则化参数C=1(默认值)的模型在训练集上准确度为78%,在测试集上准确度为77%。
from sklearn. linear_model import LogisticRegression
logreg=LogisticRegression(). fit(x_trainy_train)
print(“Training set score:{:.3f}“. format(logreg. score(x_train y_train)))#精确到小数点后三位
print(“Test set score:{:.3f}“. format(logreg. score(x_testy_test)))
# In[74]:
#而将正则化参数C设置为100时,模型在训练集上准确度稍有提高但测试集上准确度略降,
#说明较少正则化和更复杂的模型并不一定会比默认参数模型的预测效果更好。
#所以我们选择默认值C=1
logreg100=LogisticRegression(C=100). fit(x_trainy_train)
print(“Training set accuracy:{:.3f}“. format(logreg100. score(x_trainy_train)))
print(“Test set accuracy:{:.3f}“. format(logreg100. score(x_test y_test)))
# In[77]:
#用可视化的方式来看一下用三种不同正则化参数C所得模型的系数。
#更强的正则化(C = 0.001)会使系数越来越接近于零。仔细地看图,
#我们还能发现特征“DiabetesPedigreeFunction”(糖尿病遗传函数)在 C=100 C=1 和C=0.001的情况下 系数都为正。
#这表明无论是哪个模型,DiabetesPedigreeFunction(糖尿病遗传函数)这个特征值都与样本为糖尿病是正相关的。
diabetes_features=[x for ix in enumerate(diabetes. columns) if i!=8]
plt. figure(figsize=(86))
plt. plot(logreg. coef_.T‘o‘ label=“C=1“)
plt. plot(logreg100.coef_.T‘^‘ label=“C=100“)
plt. plot(logreg100.coef_.T‘v‘ label=“C=0.001“)
plt. xticks(range(diabetes. shape[1]) diabetes_features rotation=90)
plt. hlines(00 diabetes. shape[1])
plt. ylim(-55)
plt. xlabel(“Feature“)
plt. ylabel(“Coefficient magnitude“)
plt. legend()
plt. savefig(‘1og_coef‘)
# In[71]:
#决策树算法
from sklearn.tree import
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 137092 2018-07-24 15:30 DiabetesArithmetic_version3.0\DiabetesArithmetic_version3.0.ipynb
文件 12481 2018-07-24 15:30 DiabetesArithmetic_version3.0\DiabetesArithmetic_version3.0.py
文件 23875 2018-07-21 16:01 DiabetesArithmetic_version3.0\diabetes.csv
目录 0 2018-07-24 15:32 DiabetesArithmetic_version3.0\
- 上一篇:win10 可用超级终端安装版
- 下一篇:opencat所有资料.zip
相关资源
- 台湾国立大学—林轩田老师—机器学
- 台湾大学机器学习基石手写笔记
- AI 全套教学视频三
- 论文研究 - 利用冠层高光谱窄带数据
- Logistic回归模型中拟合优度检验的无症
- 机器学习-第十章降维与度量学习
- 机器学习,斯坦福——Andrew N
- 机器学习项目实战:泰坦尼克号获救预
- 中英双语机器学习训练用的语料库
- 波士顿房价数据分析预测.zip
- 林轩田《机器学习技法》视频+讲义
- 机器学习算法源码及讲义.zip
- 白话大数据和深度学习_2018最新版
- spark 机器学习 第二版 含源码 高清版
- 机器学习实战 高清完整版PDF
- PCA分类器论文+代码实现+训练测试图像
- R语言泰坦尼克号随机森林案例数据分
- Spark机器学习 (彭特里思著) 中文
- EM&GMM.zip
- 数据挖掘、机器学习在客户细分中应
- 车牌识别2400个正样本
- machine-learning-ex4
- PRML-Solutions to Exercises Tutors Edition
- 斯坦福大学 2014 机器学习教程中文笔
- 重庆大学软件学院机器学习ppt
- 斯坦福大学 2014 机器学习教程个人笔
- Bayesian Networks With Examples in R280858
- 吴恩达机器学习课件
- 张志华《机器学习导论》笔记和补充
- 《机器学习〔中文版〕》 PDF
评论
共有 条评论