机器学习分类算法:k-NN与朴素贝叶斯
1. k-NN分类算法
1.1 k-NN算法概述
k-NN(k-Nearest Neighbors)算法是一种简单且有效的分类算法。与许多分类算法不同,k-NN并不进行学习,它只是原封不动地存储训练数据。对于未标记的测试示例,使用距离函数将其与训练集中最相似的记录进行匹配,然后将未标记示例分配为其邻居的标签。
1.2 k-NN算法代码示例
以下是使用R语言实现k-NN算法的代码示例:
wbcd_test_pred <- knn(train = wbcd_train, test = wbcd_test,
cl = wbcd_train_labels, k = 21)
CrossTable(x = wbcd_test_labels, y = wbcd_test_pred,
prop.chisq = FALSE)
1.3 不同k值的测试
为了找到更优的k值,我们对不同的k值进行了测试,使用归一化的训练和测试数据集对相同的100条记录进行分类。以下是不同k值对应的误分类情况:
| k值 | 假阴性 | 假阳性 | 错误分类百分比 |
| ---- | ---- | ---- | ---- |
| 1 | 1 | 3 | 4% |
| 5 | 2 | 0 | 2% |
| 11 | 3 | 0 | 3% |
| 15 | 3 | 0 | 3% |
|
超级会员免费看
订阅专栏 解锁全文
1692

被折叠的 条评论
为什么被折叠?



