gpt4 book ai didi

Matlab KNN分类共识

转载 作者:行者123 更新时间:2023-11-30 09:12:30 26 4
gpt4 key购买 nike

我使用 knnclassify 共识。我尝试使用共识来查找类标签中缺失的值。

这是我的代码;

Rb = randperm(120);
Rm = randperm(120);

labeled = labeled(Rb,:);
unlabeled = unlabeled(Rm,:);

cnt = 0;
sonuc = zeros(120,1);

for i=1:120
pred=knnclassify(unlabeled,labeled,labeledClass,10,'correlation','consensus');
if pred>=1
cnt=cnt+1;
sonuc(i)= pred;
end
end

cnt;

这是我的工作区;

我的工作空间良性和恶性我的类(class)值(value)观 http://imgbox.com/EmWvlqnv

代码不返回错误,但 pred 在所有行中返回 NaN 并返回一个警告;

Warning: Some points in data have small relative standard deviations,
making them effectively constant. Correlation metric may not be appropriate
for these points.
> In pdist2 at 304
In ExhaustiveSearcher.knnsearch at 207
In knnsearch at 142
In knnclassify at 162
In CancerKNNConsensus at 11

我尝试了欧几里得、余弦、城市街区和相关性。如何解决这个问题?

最佳答案

错误消息告诉您,您的某些数据的标准差和常数较小,这在使用相关距离时会导致一些问题。

matlab中的相关距离会先减去数据的均值。因此,对于常数数据向量,减去均值将得到零向量,并且常数向量与任何其他数据向量的相关性没有定义。

我解决此问题的建议如下:

  1. 根据std识别这些数据点,并在使用knn clusfier之前用小std去除这些数据;
  2. 标准化您的数据也可能有所帮助;
  3. 尝试其他距离指标。

希望这对您有所帮助。

关于Matlab KNN分类共识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com