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