唐山建设集团下岗职工网站,做网站策划需要什么技能,江西赣州简介,衡阳市建设学校网站在统计建模中#xff0c;普通最小二乘法#xff08;OLS#xff09;和岭回归是两种广泛使用的线性回归分析技术。OLS是一种传统的方法#xff0c;它通过最小化预测值和实际值之间的平方误差之和来找到数据的最佳拟合线。然而#xff0c;OLS可以遭受高方差和过拟合时#x…在统计建模中普通最小二乘法OLS和岭回归是两种广泛使用的线性回归分析技术。OLS是一种传统的方法它通过最小化预测值和实际值之间的平方误差之和来找到数据的最佳拟合线。然而OLS可以遭受高方差和过拟合时预测变量的数量是大的。为了解决这个问题岭回归引入了一个正则化项将系数缩小到零这可以导致具有较低方差的更好模型。
相关概念
普通最小二乘法OLS普通最小二乘法OLS是一种用于计算线性回归模型参数的技术。目标是找到最佳拟合线使观测数据点与线性模型的预期值之间的残差平方和最小化。岭回归岭回归是线性回归中用于解决过拟合问题的一种技术。它通过向损失函数添加正则化项来实现这一点这将系数缩小到零。这降低了模型的方差并可以提高其预测性能。正则化正则化是一种用于防止机器学习模型中过拟合的技术。它通过向损失函数添加惩罚项来实现这一点这阻止了模型拟合数据中的噪声。正则化可以通过L1正则化LassoL2正则化Ridge或弹性网络等方法来实现具体取决于实际问题。均方误差MSEMSE是用于评估回归模型性能的指标。它测量预测值与实际值之间的平方差的平均值。较低的MSE表明模型和数据之间的拟合更好。R-SquaredR-Squared是用于评估回归模型拟合优度的度量。它测量因变量中由自变量解释的方差的比例。R-Squared的范围为0到1值越大表示模型与数据之间的拟合越好。
示例
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_squared_error# Generate a synthetic dataset with a non-linear relationship
np.random.seed(42)
X np.linspace(0, 10, 50)
y np.sin(X) np.random.normal(0, 0.5, 50)# Fit OLS and Ridge Regression models with polynomial features
poly PolynomialFeatures(degree4)
X_poly poly.fit_transform(X.reshape(-1, 1))
ols LinearRegression().fit(X_poly, y)
ridge Ridge(alpha1).fit(X_poly, y)# Predict the output for the test data points
X_test np.linspace(-2, 12, 100).reshape(-1, 1)
X_test_poly poly.transform(X_test)
ols_pred ols.predict(X_test_poly)
ridge_pred ridge.predict(X_test_poly)# Compute the mean squared error on the test dataset
ols_mse mean_squared_error(y_truey, y_predols.predict(X_poly))
ridge_mse mean_squared_error(y_truey, y_predridge.predict(X_poly))# Plot the data and the regression lines for OLS
plt.scatter(X, y, colorblue, labelData)
plt.plot(X_test, ols_pred, colorred, labelfOLS (MSE{ols_mse:.2f}))
plt.legend()
plt.title(Ordinary Least Squares with Polynomial Features)
plt.show()# Plot the data and the regression lines for Ridge Regression
plt.scatter(X, y, colorblue, labelData)
plt.plot(X_test, ridge_pred, colorgreen, labelfRidge (MSE{ridge_mse:.2f}))
plt.legend()
plt.title(Ridge Regression with Polynomial Features)
plt.show() 普通最小二乘与岭回归
假设我们有一个数据集包含一个响应变量Y和一个预测变量X其中有n个预测变量如x1x2x3…为了根据预测因子X预测Y我们需要构建一个线性回归模型。在这种情况下我们将比较岭回归和最小二乘(OLS)方法。
普通最小二乘法OLSOLS的目标是最小化残差平方和并找到预测因子的最佳拟合系数。OLS估计量由下式给出 岭回归岭回归将一个称为正则化参数的惩罚项添加到残差平方和中以控制系数的大小。岭估计量由下式给出 这里λlambda是正则化参数I是单位矩阵。
现在让我们考虑预测变量的方差对使用OLS和岭回归获得的系数的影响。
假设x1的方差显著大于x2的方差。换句话说与x2相比x1具有更宽的值范围。
在OLS中使用X^T * X的逆来估计系数因此如果一个预测器具有较大的方差则其将对估计的系数具有较大的影响。因此与x2的系数相比x1的系数将具有更高的方差。
在岭回归中惩罚项λ乘以单位矩阵这有助于将系数缩小到零。因此岭回归减少了具有高方差的预测变量的影响。因此即使x1具有更高的方差x1和x2的岭系数也将具有相似的方差。
总之当预测变量之间的方差存在差异时OLS倾向于为与具有较高方差的预测变量相对应的系数提供给予较高的方差而岭回归通过将系数之间的方差差缩小到零来减小它们。
注意这里提供的示例假设了一个简单的场景来演示OLS和岭回归之间的方差差异。在实践中OLS和岭回归之间的选择取决于各种因素如数据特征多重共线性的存在以及偏差和方差之间的理想权衡。
代码示例
下面的代码生成了一个包含10个特征和50个样本的合成数据集。我们将数据分为训练集和测试集并将OLS和岭回归模型拟合到训练数据中。然后我们在测试数据集上计算两个模型的均方误差并绘制两个模型的系数以可视化方差的差异。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.metrics import mean_squared_error# Generate a synthetic dataset
np.random.seed(23)
X np.random.normal(size(50, 10))
y X.dot(np.random.normal(size10)) np.random.random(size50)# Split the data into training and testing sets
X_train, X_test, y_train, y_test X[:40], X[40:], y[:40], y[40:]# Fit OLS and Ridge Regression models to the training data
ols LinearRegression().fit(X_train, y_train)
ridge Ridge(alpha1.2).fit(X_train, y_train)# Compute the mean squared error on the test dataset
ols_mse mean_squared_error(y_truey_test, y_predols.predict(X_test))
ridge_mse mean_squared_error(y_truey_test, y_predridge.predict(X_test))# Print the mean squared error of the two models
print(fOLS MSE: {ols_mse:.2f})
print(fRidge MSE: {ridge_mse:.2f})# Plot the coefficients of the two models
plt.figure(figsize(10, 5))
plt.bar(range(X.shape[1]), ols.coef_, colorblue, labelOLS)
plt.bar(range(X.shape[1]), ridge.coef_, colorgreen, labelRidge)
plt.xticks(range(X.shape[1]))
plt.legend()
plt.title(Coefficients of OLS and Ridge Regression Models)
plt.show()
输出
OLS MSE: 0.13
Ridge MSE: 0.09该图显示与岭回归模型的系数相比OLS模型的系数在幅度上更大范围更广。因此可以得出结论OLS模型在方差和对数据噪声的敏感性方面优于岭回归模型。
OLS模型OLS模型的MSE较高0.13表明与岭回归模型相比它具有相对较高的总体方差。岭回归模型岭回归模型的MSE较低0.09表明与OLS模型相比它具有较低的总体方差。
岭回归中的正则化参数lambda有助于管理最小化系数幅度和最小化残差平方和之间的权衡。岭回归可以通过添加惩罚项来减少模型中的方差从而减少过拟合并提高泛化性能。
因此岭回归模型的MSE较低0.09表明其方差低于OLS模型0.13。这表明岭回归模型在MSE方面对数据集的表现更好因为它更好地消除了过拟合并捕获了数据中的潜在模式。