逻辑回归的Matlab实现

本文介绍了在Matlab中实现逻辑回归的两种方法:利用内置的glmfit()函数和使用梯度下降法。通过具体的数据集x和y,展示了如何进行逻辑回归建模,得到的模型为Y=1/(1+exp(3.4932-2.9402*x)),其中Y的取值限定为0和1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Logistic回归(Logistic Regression)

方法一、利用matlab自带的函数glmfit() :

function theta=logisticRegression()
% logistic regression的参数theta,可以用matlab自带函数glmfit求出
x = [0.0 0.1 0.7 1.0 1.1 1.3 1.4 1.7 2.1 2.2]';
y = [0 0 
### 逻辑回归 MATLAB 实现代码示例 在 MATLAB实现逻辑回归,通常涉及以下几个步骤:数据预处理、定义假设函数(Sigmoid 函数)、损失函数(Cost Function)、梯度下降算法或使用优化器求解最优参数,以及模型评估等。 以下是一个完整的 MATLAB 代码示例,用于实现二分类逻辑回归模型: ```matlab % 逻辑回归 MATLAB 实现示例 % 1. 生成模拟数据 X = 2 * rand(100, 1) - 1; % 生成 -1 到 1 之间的随机数作为特征 y = (X > 0.5) + 0; % 二分类标签:如果 X > 0.5,则 y = 1;否则 y = 0 % 添加偏置项 X = [ones(size(X, 1), 1), X]; % 添加一列 1 作为偏置项 % 2. 初始化参数 theta = zeros(size(X, 2), 1); % 初始化参数 theta alpha = 0.1; % 学习率 num_iters = 1000; % 迭代次数 % 3. 定义 Sigmoid 函数 sigmoid = @(z) 1 ./ (1 + exp(-z)); % 4. 梯度下降算法 for iter = 1:num_iters % 计算预测值 h = sigmoid(X * theta); % 计算误差 error = h - y; % 更新参数 theta = theta - (alpha / length(y)) * X' * error; % 计算损失 J = -(1/length(y)) * (y' * log(h) + (1 - y)' * log(1 - h)); if mod(iter, 100) == 0 fprintf('迭代次数:%d,损失:%f\n', iter, J); end end % 5. 预测 probabilities = sigmoid(X * theta); % 概率值 predictions = probabilities >= 0.5; % 预测类别 % 6. 模型评估 accuracy = mean(predictions == y); fprintf('模型准确率:%f\n', accuracy); % 可视化结果 figure; plot(X(:, 2), y, 'rx', 'MarkerSize', 10); hold on; plot(X(:, 2), probabilities, 'b-', 'LineWidth', 2); legend('实际标签', '预测概率'); xlabel('特征值'); ylabel('概率'); title('逻辑回归预测'); grid on; ``` #### 代码说明: - **数据生成**:使用 `rand` 生成随机特征数据,并根据阈值 `0.5` 生成标签 `y`。 - **Sigmoid 函数**:用于将线性输出映射到 [0, 1] 区间,表示概率。 - **梯度下降**:通过多次迭代更新参数 `theta`,最小化损失函数。 - **损失函数**:使用交叉熵损失函数(Cross-Entropy Loss)来衡量预测与真实标签之间的差异。 - **模型评估**:计算预测准确率,并可视化预测概率与实际标签的关系。 ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值