matlab中logistic回归
时间: 2023-10-11 08:12:31 浏览: 128
在Matlab中,可以使用logistic回归来进行二分类任务。Logistic回归是一种广义线性模型,它将输入变量通过sigmoid函数映射到0和1之间的概率值,并用于预测离散的类别标签。
以下是一个简单的示例代码,演示如何在Matlab中使用logistic回归:
```matlab
% 准备数据
load fisheriris
X = meas(51:end, 1:2); % 只选择两个特征
y = (strcmp(species(51:end), 'versicolor'));
% 添加常数项(截距)
X = [ones(size(X, 1), 1) X];
% 使用logistic回归
[b, dev, stats] = glmfit(X, y, 'binomial', 'link', 'logit');
% 预测新样本
X_new = [1, 5.7, 3.2]; % 新样本特征
prob = glmval(b, X_new, 'logit');
% 输出结果
disp(['预测的概率为:' num2str(prob)])
% 绘制决策边界
x1range = min(X(:,2)):0.01:max(X(:,2));
x2range = min(X(:,3)):0.01:max(X(:,3));
[x1, x2] = meshgrid(x1range, x2range);
X_grid = [ones(numel(x1), 1) x1(:) x2(:)];
y_grid = glmval(b, X_grid, 'logit') >= 0.5;
y_grid = reshape(y_grid, size(x1));
figure;
plot(X(y==0, 2), X(y==0, 3), 'o');
hold on;
plot(X(y==1, 2), X(y==1, 3), 'x');
contour(x1, x2, y_grid, [0.5 0.5], 'k');
hold off;
```
在这个示例中,我们使用了`fisheriris`数据集的一部分,选择两个特征作为输入变量(`X`),并将标签`versicolor`映射为二进制类别标签(`y`)。然后,我们使用`glmfit`函数进行logistic回归拟合,得到模型参数(`b`)。之后,我们可以使用`glmval`函数对新样本进行预测,并绘制决策边界。
请注意,这只是logistic回归的一个简单示例。在实际应用中,您可能需要更多的数据预处理、特征工程和模型调优等步骤。
阅读全文