【放假第2天】人工智能-梯度下降法-代码

这篇博客介绍了回归分析中的几种方法,包括Lasso、岭回归和弹性网络,并探讨了它们的区别和适用场景。文章指出,Lasso适用于特征压缩和降维,岭回归用于消除共线性,而弹性网络在相关特征中表现优秀。还提到了线性回归的超参数选择顺序及多项式回归的作用,通过PolynomialFeatures进行数据预处理以适应线性模型。最后,简要提及了随机梯度下降法在优化中的应用,并讨论了正则表达式及其在模式匹配中的角色。
摘要由CSDN通过智能技术生成

几种回归的方法 和区别 基础知识可参考
https://www.jianshu.com/p/aadad14db00e
https://blog.csdn.net/mr_hhh/article/details/79567687

Lasso回归:压缩变量,起降维作用;模处理

Lasso回归等于线性回归 + L1范数(L1是拉普拉斯分布)

岭回归:消除共线性;模的平方处理

岭回归等于线性回归 + L2范数 (L2是高斯分布。)

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

线性回归算法一般选择顺序:Ridge Regression(L2正则化)、ElasticNet(即包含L1又包含L2)、Lasso Regression(L1正则化)

超参数alpha在Rideg类中是L2正则的权重、在Lasso类中是L1正则的权重、在ElasticNet和SGDRegressor里面是损失函数里面的alpha

超参数l1_ration在ElasticNet和SGDRegressor中是损失函数的p

多项式回归:PolynomialFeatures(多项式特征)不是做拟合的算法是做预处理的方法,转换数据继续升维(维度的次幂,通过degree超参数在原有的维度基础上增加高阶次幂维度),是为了让线性模型去拟合非线性的数据,就是你是非线性数据,想用线性模型怎么办,把数据处理一下 所以他叫features
原来是 y^=x1 x2
变成
y^=x1 x2 x1 ^2 x2 ^2 x1*x2 升维

升维是增加多个影响Y结果的因素,这样考虑的更全面,最终目的是要增加准确率

如果数据是非线性的变化可以使用非线性的算法生成的模型进行拟合,也可以使用PolynomialFeatures将非线性的数据进行变化,变成类似线性的变化,然后使用线性的模型进行拟合

#线性回归简单代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名: linear_regression_1.py

import numpy as np
from sklearn.linear_model import LinearRegression

__author__ = 'yasaka'

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

lin_reg = LinearRegression()
lin_reg.fit(X, y)
print(lin_reg.intercept_, lin_reg.coef_)

X_new = np.array([[0], [2]])
print(lin_reg.predict(X_new))


#linear_regression2

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名: linear_regression_0.py

import numpy as np
import matplotlib.pyplot as plt

__author__ = 'yasaka'

# 这里相当于是随机X维度X1,rand是随机均匀分布
X = 2 * np.random.rand(100, 1)
# 人为的设置真实的Y一列,np.random.randn(100,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值