上传者: 38614417
|
上传时间: 2021-10-20 19:38:12
|
文件大小: 59KB
|
文件类型: -
matlab
10折交叉验证知识代码KNN算法方法
针对数据挖掘课程设计了不同的KNN算法。
有一个与患者的癌症状况相关的数据集,具有10个不同的特征,并且是用于诊断的类部分。
“
1”用于诊断疾病,“
0”反之亦然。
在家庭作业中,我将种子函数用作rng(3)。
Fitcknn
使用Matlab的fitcknn作为内置函数。
代码步骤如下:
a)使用randperm函数对数据集进行混洗,然后将其分为训练数据和验证数据两类。
该分区的形式为:火车集为80%,验证集为20%。
b)对于距离测量,使用欧几里得距离。
c)此分配没有交叉验证。
d)为了预测验证类别,使用了从1到100的100个不同的knn值。
e)通过使用绘图函数,我们可以观察到如何通过更改knn值来区分值。
f)最佳knn
=
41且错误率选择为0.0614
Fuzzyknn,r_radius_neighbour实现
我想出了我自己的KNN函数,例如Fuzzyknn和rnearest
knn。
a)我用欧几里得距离实现了模糊算法。
我在另一个脚本中编码了Fuzzyknn函数,然后将其调用到主脚本中以查看不同knn值的结果。