手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病

手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病

大数据文摘作品

作者:Susan Li

编译:袁雪瑶、吴双、姜范波


根据美国疾病控制预防中心的数据,现在美国1/7的成年人患有糖尿病。但是到2050年,这个比例将会快速增长至高达1/3。我们在UCL机器学习数据库里一个糖尿病数据集,希望可以通过这一数据集,了解如何利用机器学习来帮助我们预测糖尿病,让我们开始吧!


数据集github链接:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/diabetes.csv


 

数据


糖尿病数据集可从UCI机器学习库中获取并下载。


www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病


特征(怀孕次数,血糖,血压,皮脂厚度,胰岛素,BMI身体质量指数,糖尿病遗传函数,年龄,结果):


www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病

糖尿病数据集由768个数据点组成,各有9个特征:


www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病


“结果”是我们将要预测的特征,0意味着未患糖尿病,1意味着患有糖尿病。在768个数据点中,500个被标记为0,268个标记为1。

www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病

KNN算法  

k-NN算法几乎可以说是机器学习中最简单的算法。建立模型只需存储训练数据集。而为了对新的数据点做出预测,该算法会在训练数据集中找到与其相距最近的数据点——也就是它的“近邻点”。


首先,让我们研究一下是否能够确认模型的复杂度和精确度之间的关系:


www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病
www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病

上图展示了训练集和测试集在模型预测准确度(y轴)和近邻点个数设置(x轴)之间的关系。如果我们仅选择一个近邻点,那么训练集的预测是绝对正确的。但是当更多的近邻点被选入作为参考时,训练集的准确度会下降,这表明了使用单一近邻会导致模型太过复杂。这里的最好方案可以从图中看出是选择9个近邻点。


图中建议我们应该选择n_neighbors=9,下面给出:


www.zeeklog.com  - 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病


K-NN分类的准确度在训练集中为:0.79
K-NN分类的准确度在测试集中为:0.78