三个特征的逻辑回归预测模型 Matlab 代码
时间: 2023-07-11 16:46:53 浏览: 114
基于高斯过程回归GPR分类预测,GPR分类预测,多特征输入模型,matlab代码 多特征输入单输出的二分类及多分类模型 程序
以下是一个基于三个特征的逻辑回归预测模型 Matlab 代码的示例:
```Matlab
% 加载数据
data = load('data.txt');
X = data(:, [1, 2, 3]); % 特征
y = data(:, 4); % 标签
% 绘制数据散点图
figure;
hold on;
pos = find(y==1);
neg = find(y==0);
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);
xlabel('Feature 1');
ylabel('Feature 2');
legend('Positive', 'Negative');
hold off;
% 初始化参数
[m, n] = size(X);
X = [ones(m, 1) X]; % 添加偏置项
initial_theta = zeros(n + 1, 1);
% 训练模型
options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
% 绘制决策边界
plotDecisionBoundary(theta, X, y);
xlabel('Feature 1');
ylabel('Feature 2');
legend('Positive', 'Negative', 'Decision Boundary');
% 预测新数据
prob = sigmoid([1, 2, 3] * theta);
fprintf('For features [1, 2, 3], probability of positive class: %f\n', prob);
% 定义代价函数和梯度函数
function [J, grad] = costFunction(theta, X, y)
m = length(y);
J = (-1/m) * sum(y .* log(sigmoid(X * theta)) + (1-y) .* log(1 - sigmoid(X * theta)));
grad = (1/m) * (X' * (sigmoid(X * theta) - y));
end
% 定义 sigmoid 函数
function g = sigmoid(z)
g = 1 ./ (1 + exp(-z));
end
% 绘制决策边界函数
function plotDecisionBoundary(theta, X, y)
plotData(X(:,2:3), y);
if size(X, 2) <= 3
plot_x = [min(X(:,2))-2, max(X(:,2))+2];
plot_y = (-1/theta(3))*(theta(2)*plot_x + theta(1));
plot(plot_x, plot_y)
else
u = linspace(-1, 1.5, 50);
v = linspace(-1, 1.5, 50);
z = zeros(length(u), length(v));
for i = 1:length(u)
for j = 1:length(v)
z(i,j) = mapFeature(u(i), v(j)) * theta;
end
end
z = z';
contour(u, v, z, [0, 0], 'LineWidth', 2)
end
end
% 特征映射函数
function out = mapFeature(X1, X2)
degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
for j = 0:i
out(:, end+1) = (X1.^(i-j)).*(X2.^j);
end
end
end
```
在这个示例中,我们加载了一个包含三个特征和一个二元标签的数据集,并使用逻辑回归算法训练模型。我们使用 fminunc 函数最小化代价函数,该函数在每次迭代中计算梯度并更新模型参数。在训练模型后,我们使用绘制决策边界的函数显示模型的预测结果。最后,我们使用训练好的模型对新的特征值进行预测。
阅读全文