感知机matlab代码
时间: 2023-07-02 14:15:40 浏览: 101
以下是一个简单的感知机 Matlab 代码示例:
```matlab
% 创建数据集
X = [0 0; 0 1; 1 0; 1 1];
y = [0; 0; 0; 1];
% 初始化权重和偏置
w = randn(2, 1);
b = randn(1);
% 设置学习率和迭代次数
lr = 0.1;
epochs = 50;
% 训练感知机
for i = 1:epochs
for j = 1:size(X, 1)
% 计算输出
a = X(j, :) * w + b;
y_pred = sign(a);
% 更新权重和偏置
if y(j) ~= y_pred
w = w + lr * y(j) * X(j, :)';
b = b + lr * y(j);
end
end
end
% 测试感知机
X_test = [0 0; 0 1; 1 0; 1 1];
y_test = [0; 0; 0; 1];
for i = 1:size(X_test, 1)
a = X_test(i, :) * w + b;
y_pred = sign(a);
fprintf('预测结果:%d,真实结果:%d\n', y_pred, y_test(i));
end
```
该代码实现了一个简单的感知机,用于解决逻辑回归问题。在训练过程中,通过随机梯度下降法不断更新权重和偏置,直到达到预设的迭代次数。在测试过程中,我们使用训练好的模型对新的数据进行预测,并将预测结果与真实结果进行比对。
阅读全文