gpt4 book ai didi

MATLAB感知器

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

我已经为此苦苦挣扎有一段时间了。我似乎无法弄清楚为什么我的误差百分比有数千。我试图找出 X1 和 X2 之间的感知器,它们是具有不同均值和相同协方差的高斯分布数据集。我的代码:

N=200;
X = [X1; X2];
X = [X ones(N,1)]; %bias
y = [-1*ones(N/2,1); ones(N/2,1)]; %classification

%Split data into training and test
ii = randperm(N);
Xtr = X(ii(1:N/2),:);
ytr = X(ii(1:N/2),:);
Xts = X(ii(N/2+1:N),:);
yts = y(ii(N/2+1:N),:);

w = randn(3,1);
eta = 0.001;
%learn from training set
for iter=1:500
j = ceil(rand*N/2);
if( ytr(j)*Xtr(j,:)*w < 0)
w = w + eta*Xtr(j,:)';
end
end

%apply what you have learnt to test set
yhts = Xts * w;
disp([yts yhts])
PercentageError = 100*sum(find(yts .*yhts < 0))/Nts;

如有任何帮助,我们将不胜感激。谢谢

最佳答案

您的错误计算中有错误。

在这一行:

PercentageError = 100*sum(find(yts .*yhts < 0))/Nts;

find 返回匹配项的索引。对于您的准确性测量,您不需要这些,您只需要计数:

PercentageError = 100*sum( yts .*yhts < 0 )/Nts;

如果我生成X1 = randn(100,2); X2 = randn(100,2); 并假设 Nts=100,我的代码得到 2808%,预计有 50% 的错误(并不比猜测更好,因为我的测试数据不能被分开)以获得更正的版本。

更新 - 感知器模型也有一个更微妙的错误,请参阅:https://datascience.stackexchange.com/questions/2353/matlab-perceptron

关于MATLAB感知器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567120/

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