python手撸线性回归(二)theta0不需要正则化

本文探讨了机器学习中线性回归正则化项是否包含θ0的问题,并通过实验证明,无论是否对θ0进行惩罚,最终模型参数的变化都非常小。

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

在上一篇关于线性回归的文章中,python手撸线性回归及参数解释,我们可以看到正则化项中并没有theta0二是从theta1开始的,In[7]的第三行



Andrew在其机器学习课程中对此的解释是,按照惯例来讲,不去对θ0进行惩罚, 因此 θ0 的值是大的 这就是一个约定, 但其实在实践中这只会有非常小的差异 ,无论你是否包括θ0这项,结果只有非常小的差异,下边我们通过实验来证明,正则化项是否包含θ0对最后结果的影响很小。

下边分别是对theta0不进行正则化和进行正则化的结果,最终theta取值为

('theta: ', array([-3.82872504,  1.186267 ]))

('theta: ', array([-3.89374994,  1.19278475]))

可见差异非常小


### 关于正则化线性回归正则化逻辑回归的实验指导 在实现正则化线性回归正则化逻辑回归的过程中,通常会涉及以下几个核心部分: #### 数据准备 为了完成这些实验,首先需要下载 `ex5Data.zip` 并解压其中的内容[^1]。该压缩包包含了两组数据集:一组适用于线性回归的任务,而另一组则是为逻辑回归设计的数据。 #### 特征处理 对于逻辑回归任务,可能还需要使用到名为“映射特征.m”的辅助函数来扩展原始输入特征的空间。这一步骤有助于提高模型拟合复杂模式的能力。如果是在 Python 中实现,则可以通过 NumPy 或 Pandas 来构建类似的多项式特征矩阵。 #### 正则化线性回归实现 以下是基于 Python正则化线性回归的一个简单实现示例: ```python import numpy as np def compute_cost(X, y, theta, lambda_): m = len(y) h = X @ theta regularization_term = (lambda_ / (2 * m)) * np.sum(theta[1:] ** 2) cost = (1/(2*m)) * np.sum((h-y)**2) + regularization_term return cost def gradient_descent(X, y, theta, alpha, num_iters, lambda_): m = len(y) J_history = [] for _ in range(num_iters): error = X @ theta - y grad_theta = (X.T @ error) / m reg_term = (lambda_ / m) * theta reg_term[0] = 0 # 对截距项应用正则化 theta -= alpha * (grad_theta + reg_term) J_history.append(compute_cost(X, y, theta, lambda_)) return theta, J_history ``` 上述代码实现了带有 L2 正则化的梯度下降方法,并通过调整参数 `lambda_` 控制正则化的强度。 #### 正则化逻辑回归实现 下面是针对正则化逻辑回归的部分代码片段: ```python from scipy.optimize import minimize def sigmoid(z): return 1 / (1 + np.exp(-z)) def log_reg_cost_function(theta, X, y, lambda_): m = len(y) h = sigmoid(X @ theta) base_cost = (-1/m) * (y.T @ np.log(h) + (1-y).T @ np.log(1-h)) reg_term = (lambda_ / (2 * m)) * np.sum(theta[1:]**2) return base_cost + reg_term def optimize_logistic_regression(X, y, initial_theta, lambda_): result = minimize( fun=log_reg_cost_function, x0=initial_theta, args=(X, y, lambda_), method='BFGS', options={'disp': True} ) return result.x ``` 这段代码定义了一个优化目标函数以及调用 SciPy 库中的最小化器来进行求解最优参数的过程。 #### 偏置计算补充说明 另外,在某些情况下可能会涉及到偏置(bias)的额外计算公式[^3]。虽然这里主要讨论的是正则化问题,但如果遇到特定场景下的偏差修正需求时也可以参考相关内容进行适当修改。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值