当前位置: 首页 > news >正文

深圳最好的网站制作哪家公司好淮北城市住建网

深圳最好的网站制作哪家公司好,淮北城市住建网,淘宝网站是谁做的好,如何开发小程序微信弹性网络回归(Elastic Net Regression)的详细理论知识推导 理论背景 弹性网络回归结合了岭回归(Ridge Regression)和Lasso回归(Lasso Regression)的优点,通过引入两个正则化参数来实现特征选择…

弹性网络回归(Elastic Net Regression)的详细理论知识推导

理论背景

弹性网络回归结合了岭回归(Ridge Regression)和Lasso回归(Lasso Regression)的优点,通过引入两个正则化参数来实现特征选择和模型稳定性。它解决了Lasso在处理高相关特征时的缺陷,并且在处理高维数据时表现优异。

数学公式

Elastic Net回归的损失函数如下:

其中:

推导

目标函数:Elastic Net的目标函数是均方误差(MSE)和两个正则化项的加权和。
梯度下降:通过梯度下降法求解目标函数的最小值,更新回归系数。


特征选择:L1正则化项可以将一些回归系数缩小为零,从而实现特征选择。


模型稳定性:L2正则化项增加了模型的稳定性,减少过拟合。

实施步骤

数据预处理:标准化或归一化数据。
拆分数据集:将数据集拆分为训练集和测试集。
模型训练:使用Elastic Net回归模型进行训练。
模型评估:使用测试集评估模型性能。

参数解读

未优化模型实例

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import ElasticNet
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 生成示例数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1) * 0.5# 数据分割为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 数据标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)# 转换 y_train 和 y_test 为一维数组
y_train = y_train.ravel()
y_test = y_test.ravel()# 创建Elastic Net回归模型
elastic_net = ElasticNet(alpha=1.0, l1_ratio=0.5)
elastic_net.fit(X_train_scaled, y_train)# 进行预测
y_pred = elastic_net.predict(X_test_scaled)# 模型评估
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)print(f"Mean Squared Error: {mse}")
print(f"R^2 Score: {r2}")
print(f"Intercept: {elastic_net.intercept_}")
print(f"Coefficients: {elastic_net.coef_}")# 可视化结果
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred, color='red', label='Predicted')
plt.xlabel("X")
plt.ylabel("y")
plt.title("Elastic Net Regression")
plt.legend()
plt.show()

可视化展示

结果解释

Mean Squared Error (MSE): 表示预测值与实际值之间的平均平方误差。值越小,模型性能越好。

R^2 Score: 决定系数,度量模型的拟合优度。值越接近1,模型解释力越强。

Intercept: 截距,表示回归方程在y轴上的截距。

Coefficients: 回归系数,表示自变量对因变量的影响。

优化后的模型实例

from sklearn.linear_model import ElasticNetCV# 创建带交叉验证的Elastic Net回归模型
elastic_net_cv = ElasticNetCV(alphas=np.logspace(-6, 6, 13), l1_ratio=np.linspace(0.1, 1.0, 10), cv=5)
elastic_net_cv.fit(X_train_scaled, y_train)# 进行预测
y_pred_cv = elastic_net_cv.predict(X_test_scaled)# 模型评估
mse_cv = mean_squared_error(y_test, y_pred_cv)
r2_cv = r2_score(y_test, y_pred_cv)print(f"Best Alpha: {elastic_net_cv.alpha_}")
print(f"Best L1 Ratio: {elastic_net_cv.l1_ratio_}")
print(f"Mean Squared Error (CV): {mse_cv}")
print(f"R^2 Score (CV): {r2_cv}")
print(f"Intercept (CV): {elastic_net_cv.intercept_}")
print(f"Coefficients (CV): {elastic_net_cv.coef_}")# 可视化结果
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred_cv, color='red', label='Predicted')
plt.xlabel("X")
plt.ylabel("y")
plt.title("Elastic Net Regression with Cross-Validation")
plt.legend()
plt.show()

可视化展示

结果解释

  • Best Alpha: 通过交叉验证选择的最佳正则化参数。
  • Best L1 Ratio: 通过交叉验证选择的最佳L1正则化比例。
  • Mean Squared Error (CV): 交叉验证后的均方误差。
  • R^2 Score (CV): 交叉验证后的决定系数。
  • Intercept (CV): 交叉验证后的截距。
  • Coefficients (CV): 交叉验证后的回归系数。

通过比较两个实例,可以看出优化后的模型通过交叉验证选择了最佳的正则化参数,从而提高了模型的预测性能和泛化能力。

http://www.yayakq.cn/news/622648/

相关文章:

  • 有个域名怎样做网站网站制作费用需要多少钱
  • 网站建设公司的未来个人网页设计作品及代码怎么写
  • 免费推广网站地址大全漳州专业网站建设公司
  • 深圳网站设计收费如何对网站的图片做cdn
  • 安全可信网站有没有那个网站是做点心的
  • 重庆seo排名公司十堰网站seo方法
  • 国企集团门户网站建设方案网站开发架构mvc
  • 南磨房网站建设公司手机网站模板更换方法
  • 一个空间放多个网站免费注册网站平台
  • 网站开发设计流程文档室内设计师常用网站
  • ps怎么做网站设计ks3c ks4c做网站
  • 网站制作公司 云南留学网站建设文案
  • 济南建立网站济南网站设计建设公司
  • html语言做的网站和asp的区别安全网站建设公司
  • 合肥手机建站模板小程序代理招商公司
  • vue配合什么做网站比较好站外推广方式有哪些
  • 舟山网站建设代理2016年做网站能赚钱吗
  • wordpress 插件有木马沈阳百度seo代理
  • 展架设计在哪个网站做广州网站设计公司兴田德润在哪儿
  • 请简述网站建设的一般流程图软件定制开发平台
  • 网站建设有什么价值国内最好的设计公司
  • 网站标题上的小图标怎么做销售推广做那个网站
  • 兰溪建设网站湖北网站建设检修
  • 苏州移动网站建设购物网站建设 属于信息系统管理与设计么
  • 美食美客网站建设锦州网站制作
  • 有没有做网站一次付费南通网站推广怎么收费
  • cms企业网站济南做网站哪家便宜
  • 做手机网站尺寸网站建设制作设计平台
  • vs能建设网站吗网站开发系统学习
  • 做微商那个网站好专业网站建设网页推广