本项目为使用MATLAB实现的10折交叉验证KNN分类算法项目,提供了一个简洁而有效的机器学习应用实例。
该项目的目标是评估一组分类器的性能:准确性、敏感性和特异性,在一个特定的数据集上进行测试。项目使用的数据集是从乳腺癌数据库获得的。
快速描述如下:
- 实例数为699。
- 每个实例具有两种可能类别之一,即良性(占总数的65.5%)或恶性(34.5%),分别由2和4表示,在后续分析中用-1和1代替。
- 每个实例包含9个属性值,并按[1-10]的比例进行了缩放处理。同时,数据集中有总共16处缺失的属性值被替换成了最常出现的数值。
在此项目中评估的分类器及其参数设置如下:
- 贝叶斯概率分类器:通过基于实例具有的属性值来估计该实例最有可能属于哪个类,并为每个实例分配一个类别标签。先验概率根据数据描述文件中的信息设定,分别为良性0.655和恶性0.345。
- K最近邻居分类器:在这种情况下,对象的分类通过其邻居多次投票决定。如果出现平局,则使用最接近的那个级别来确定最终结果。
对于K值的选择:
为了优化性能,在本项目中将k设置为训练集大小的平方根。通常而言,较大的k值会减少噪声对分类的影响,但同时也会使类别之间的界限变得不那么明显。
邻居效应:为了让距离较近的邻居比远一些的距离更具有影响力,在计算时可以给予它们更多的权重。