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

弹性网络优化算法

3.3、Elastic-Net算法使用

这是scikit-learn官网给出的弹性网络回归的,损失函数公式,注意,它用的矩阵表示,里面用到范数运算。

min ⁡ w 1 2 n samples ∣ ∣ X w − y ∣ ∣ 2 2 + α ρ ∣ ∣ w ∣ ∣ 1 + α ( 1 − ρ ) 2 ∣ ∣ w ∣ ∣ 2 2 \underset{w}\min { \frac{1}{2n_{\text{samples}}} ||X w - y||_2 ^ 2 + \alpha \rho ||w||_1 + \frac{\alpha(1-\rho)}{2} ||w||_2 ^ 2} wmin2nsamples1∣∣Xwy22+αρ∣∣w1+2α(1ρ)∣∣w22

  Elastic-Net 回归,即岭回归和Lasso技术的混合。弹性网络是一种使用 L1, L2 范数作为先验正则项训练的线性回归模型。 这种组合允许学习到一个只有少量参数是非零稀疏的模型,就像 Lasso 一样,但是它仍然保持一些像 Ridge 的正则性质。我们可利用 l1_ratio 参数控制 L1 和 L2 的凸组合。

  弹性网络在很多特征互相联系(相关性,比如身高体重就很有关系)的情况下是非常有用的。Lasso 很可能只随机考虑这些特征中的一个,而弹性网络更倾向于选择两个。

  在实践中,Lasso 和 Ridge 之间权衡的一个优势是它允许在迭代过程中继承 Ridge 的稳定性。

弹性网络回归和普通线性回归系数对比:

import numpy as np
from sklearn.linear_model import ElasticNet
from sklearn.linear_model import SGDRegressor, LinearRegression

创建数据并获取到原方程的系数

# 1、创建数据集X,y
X = 2 * np.random.rand(100, 20)
w = np.random.randn(20, 1)
b = np.random.randint(1, 10, size=1)
y = X.dot(w) + b + np.random.randn(100,1)print('原始方程的斜率:',w.ravel())
print('原始方程的截距:',b)

在这里插入图片描述
线性回归的系数

linear = LinearRegression()
linear.fit(X, y)
print('普通线性回归系数:',linear.coef_,linear.intercept_)

在这里插入图片描述

弹性网络算法

# 获取弹性网络
model = ElasticNet(alpha=1.11,l1_ratio=0.1)
model.fit(X, y)
print("弹性网络系数",model.coef_,model.intercept_)

在这里插入图片描述

随机梯度下降

# 随机梯度下降  ,可以变化为ridge Lasso  elastic
sgd = SGDRegressor(penalty='elasticnet',alpha=0.1)
sgd.fit(X, y.ravel())
print('随机梯度下降,惩罚项,正则项,正则参数给定',sgd.coef_,sgd.intercept_)

在这里插入图片描述

http://www.lryc.cn/news/262266.html

相关文章:

  • [C语言]大小端及整形输出问题
  • C# 命令行参数解析库示例
  • 2020 年网络安全应急响应分析报告
  • Git----学习Git第一步基于 Windows 10 系统和 CentOS7 系统安装 Git
  • 爬虫 scrapy ——scrapy shell调试及下载当当网数据(十一)
  • Linux驱动(中断、异步通知):红外对射,并在Qt StatusBus使用指示灯进行显示
  • echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图、飞线图
  • 进程间通讯-管道
  • 项目总结-自主HTTP实现
  • Java语言+二维数组+非递归实现五子棋游戏
  • WordCloud—— 词云
  • linux网络----UDP编程
  • [AI工具推荐]AiRestful智能API代码生成
  • Elasticsearch 8.10.0同义词API用法详解,支持同义词热更新
  • 深度学习之模型权重
  • 纯前端使用XLSX导出excel表格
  • 将mjpg格式数转化成opencv Mat格式
  • 【golang/g3n】3D游戏引擎G3N的windows安装与测试
  • sap table 获取 valuation class MBEW 查表获取
  • 介绍一些操作系统—— Ubuntu 系统
  • React中props 和 state异同初探
  • spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误
  • 基于go语言开发的海量用户及时通讯系统
  • 19.Oracle 中count(1) 、count(*) 和count(列名) 函数的区别
  • C 库函数 - time()
  • 基于Python数据可视化的网易云音乐歌单分析系统
  • Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置
  • flume系列之:监控flume agent channel的填充百分比
  • 信息安全和网络安全的区别
  • 【开源项目】WPF 扩展 -- 多画面视频渲染组件