Logistic回归matlab代码
时间: 2023-06-09 15:06:38 浏览: 126
以下是一个简单的 Logistic 回归的 Matlab 代码示例:
1. 定义数据集和标签
x = [1 2 3 4 5 6 7 8 9]'; % 输入数据集
y = [0 0 0 0 1 1 1 1 1]'; % 标签 0 或 1
2. 定义 sigmoid 函数
function g = sigmoid(z)
% 计算 sigmoid 函数
g = 1./(1 + exp(-z));
end
3. 定义 cost 函数
function [J, grad] = costFunction(theta, X, y)
% 计算 cost 函数和梯度
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
4. 迭代更新 theta
% 初始化 theta
theta = zeros(size(x,2)+1, 1); % 加上常数项
% 增加常数项并转换为矩阵形式
X = [ones(size(x,1),1) x];
% 设置学习率和迭代次数
alpha = 0.1; % 学习率
num_iters = 1000; % 迭代次数
% 执行迭代更新 theta
for i = 1:num_iters
[J, grad] = costFunction(theta, X, y);
theta = theta - alpha * grad;
end
5. 预测新数据
% 预测新输入数据
x_new = [10 11 12]';
X_new = [ones(size(x_new,1),1) x_new];
y_new = sigmoid(X_new * theta); % 预测结果
以上是一个简单的 Logistic 回归的 Matlab 代码示例,希望能够帮助到您。
阅读全文