均值和方差维不匹配

问题描述 投票:-1回答:1

我需要计算训练集的均值和方差以进行异常检测,但会不断出现尺寸失配误差。

mean_train = 1/(num_train )* sum(Xtrain);
var_train =  1/(num_train )* sum(Xtrain - mean_train).^2;
matlab machine-learning mean variance
1个回答
1
投票

首先显示所有数据,因为我们无法重现您的错误。我建议您这样做是由于以下错误:mean_trainnum_train是向量,因此我们不能简单地将其乘以或减去Xtrain

但是您的答案:只需使用内置的Matlab函数meanvar。这使您可以通过这种方式使用它:

mean(Xtrain)

避免使用诸如num_train之类的辅助变量。


我检查了您的代码,发现错误:Xtrain是一个100x2的数组。并在其上使用sum返回1x2数组!您可以在帮助中阅读此内容:

如果A是矩阵,则sum(A)返回包含和的行向量每列的内容。

因此,您的下一个动作:

mean_train = 1/(num_train )* sum(Xtrain);

返回1x2数组,matlab无法做到这一点:Xtrain - mean_train

答案很简单:像这样两次使用sumsum(sum(Xtrain))

© www.soinside.com 2019 - 2024. All rights reserved.