1

我想为 KNN 方法中的距离度量确定一组权重。我通读了 MATLAB 帮助,发现有一些函数用于逆或平方逆(wrt the distances)权重,但是用户定义的权重必须是以下形式的函数@ fnc

fcn是一个函数,它接受一个非负距离矩阵,并返回一个包含非负距离权重的相同大小的矩阵。例如,inversesquared等价于@(d)d.^(-2)

我已经定义了提供一组随机权重的函数:

function WGT=gene 
weights=round(rand(a,b))
WGT=T
end

但是,当我应用 KNN 时,权重不会改变并且是均匀分布的。

4

1 回答 1

0

你的拟合代码看起来像ClassificationKNN.fit(x, y, 'DistanceWeight', gene_weights)吗?例如,我认为你上面的意思是

function w = gene_weights(x)
    w = round(rand(size(x)));
end

或者更紧凑,您可以指定gene_weights = @(x) round(rand(size(x)));

于 2013-10-17T14:05:11.763 回答