knn分类10折工具和分拣
Posted
技术标签:
【中文标题】knn分类10折工具和分拣【英文标题】:knn classification 10 fold implement and sorting 【发布时间】:2016-02-29 02:13:03 【问题描述】:我有 8 个来自 mat 文件的功能 每个特征分为 4 部分(X_train、Y_train、X_test、Y_test) 10次随机得到这个参数 现在我应该根据 KNN 对这个特征进行分类 我的代码在这里
kk=7;
bb=1;
mdl1= ClassificationKNN.fit([X1_trainbb;X2_trainbb;X3_trainbb;X4_trainbb;X5_trainbb;X6_trainbb;X7_trainbb;X8_trainbb;X9_trainbb;X10_trainbb;X11_trainbb;X12_trainbb],[Y1_trainbb;Y2_trainbb;Y3_trainbb;Y4_trainbb;Y5_trainbb;Y6_trainbb;Y7_trainbb;Y8_trainbb;Y9_trainbb;Y10_trainbb;Y11_trainbb;Y12_trainbb],'NumNeighbors',kk);
.
.
.
bb=10;
mdl10= ClassificationKNN.fit([X1_trainbb;X2_trainbb;X3_trainbb;X4_trainbb;X5_trainbb;X6_trainbb;X7_trainbb;X8_trainbb;X9_trainbb;X10_trainbb;X11_trainbb;X12_trainbb],[Y1_trainbb;Y2_trainbb;Y3_trainbb;Y4_trainbb;Y5_trainbb;Y6_trainbb;Y7_trainbb;Y8_trainbb;Y9_trainbb;Y10_trainbb;Y11_trainbb;Y12_trainbb],'NumNeighbors',kk);
正如您所见,此函数重复 10 次以评估 10 mdl 在下面我编写此代码以简化项目
for j=1:10
for h=1:12
mdljh=ClassificationKNN.fit([X_trainjh],[Y_trainjh]);
end
end
此代码在没有 (mdljh) 的情况下正常工作,但如果使用这句话,我会收到此错误消息((单元格内容分配给非单元格数组对象)) 任何人都知道我该怎么做才能解决这个问题 谢谢
【问题讨论】:
【参考方案1】:首先你应该定义 mdl 变量大小
mdll= cell(10, 8);
然后形成这个for循环
for j=1:10
mdllj= ClassificationKNN.fit([X_trainj1;X_trainj2;X_trainj3;X_trainj4;X_trainj5;X_trainj6;X_trainj7;X_trainj8;X_trainj9;X_trainj10;X_trainj11;X_trainj12],[Y_trainj1;Y_trainj2;Y_trainj3;Y_trainj4;Y_trainj5;Y_trainj6;Y_trainj7;Y_trainj8;Y_trainj9;Y_trainj10;Y_trainj11;Y_trainj12],'NumNeighbors',kk);
end
我检查了它并正常工作
【讨论】:
以上是关于knn分类10折工具和分拣的主要内容,如果未能解决你的问题,请参考以下文章
使用 10 折交叉验证获取分类报告,说明多项式朴素贝叶斯的分类精度和召回率
KNN分类器最近邻分类KD树KNN分类的最佳K值基于半径的最近邻分类器KNN多分类KNN多标签分类KNN多输出分类KNN分类的优缺点