sklearn+Knn+糖尿病(diabetes)数据集
基于sklearn框架,Knn算法,pima-diabetes数据集
·
本博客参考书籍:《scikit-learn机器学习:常用算法原理及编程实战》
数据集简介
数据集下载地址:kaggle官网
768个样本,8个特征
数据集的前5组数据如图,其中前8列为特征值,第9列Outcome表示是否患有糖尿病
数据集加载与分割
我们查看数据集中阴性与阳性个体数
我们将数据集分为数据集和标签集,然后划分为训练集和测试集
建立模型,进行评分
从上面我们可以看出,不仅对训练集的效果不好(0.86)而且对测试集的效果也不好(0.71),这是一个欠拟合现象,我们建立的模型过于简单,我们要尝试优化模型,但是好像又不知道从何下手
实际上,knn算法并不是对于所有问题都是能有一个很好的解,对于这个预测问题,或许使用Knn算法本来就不是个很好的选择,下面我们继续通过分析来看看为什么这么说
knn算法在该问题上的弊端
为了能够直观地看出Knn算法的问题,我们将数据点用图示的形式表示出来,下面我们选择原数据集中的2个特征,观察其特征
运行结果如图
上面的红色代表未患病,绿色代表患病。我们可以看到,如果使用knn算法,假设现在有一个样本点在数据集中过于密集的区域,那么它的患病邻居多呢?还是未患病邻居多?显然这很难说,所以使用Knn算法在这个问题上进行分类不是个很好的选择
源码
笔者将.ipynb文件放在了码云上:knn算法
更多推荐
已为社区贡献3条内容
所有评论(0)