线性回归、正则化线性模型、梯度下降、损失函数、API介绍
API 函数 介绍 模型 回归 正则 线性 梯度
2023-09-11 14:17:00 时间
线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。
1、线性回归API
from sklearn.linear_model import LinearRegression
#数据获取
x = [[80, 86],
[82, 80],
[85, 78],
[90, 90],
[86, 82],
[82, 90],
[78, 80],
[92, 94]]
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
#2模型训练
# 2.1 实例化API
estimator = LinearRegression()
# 2.2 使用fit方法进行训练
estimator.fit(x,y)
estimator.coef_ #对应的系数
estimator.predict([[100, 80]]) #预测结果
2、损失函数
如何去求模型当中的W,使得损失最小?(目的是找到最小损失对应的W值)
- 线性回归经常使用的两种优化算法
- 正规方程
- 梯度下降法
梯度下降扩展内容:梯度下降算法推导及常见梯度下降算法(FG\SG\mini-batch\SAG)介绍
3.3线性方程和梯度下降优化的api介绍
- sklearn.linear_model.LinearRegression(fit_intercept=True)
- 通过正规方程优化
- 参数
- fit_intercept:是否计算偏置
- 属性
- LinearRegression.coef_:回归系数
- LinearRegression.intercept_:偏置
- sklearn.linear_model.SGDRegressor(loss="squared_loss", fit_intercept=True, learning_rate ='invscaling', eta0=0.01)
- SGDRegressor类实现了随机梯度下降学习,它支持不同的loss函数和正则化惩罚项来拟合线性回归模型。
- 参数:
- loss:损失类型
- loss=”squared_loss”: 普通最小二乘法
- fit_intercept:是否计算偏置
- learning_rate : string, optional
- 学习率填充
- 'constant': eta = eta0
- 'optimal': eta = 1.0 / (alpha * (t + t0)) [default] 学习率越到后面越来越小
- 'invscaling': eta = eta0 / pow(t, power_t) 学习率越到后面越来越小
- power_t=0.25:存在父类当中
- 对于一个常数值的学习率来说,可以使用learning_rate=’constant’ ,并使用eta0来指定学习率。
- loss:损失类型
- 属性:
- SGDRegressor.coef_:回归系数
- SGDRegressor.intercept_:偏置
4 正则化线性模型
岭回归API介绍
- sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)
- 具有l2正则化的线性回归
- alpha:正则化力度,也叫 λ
- λ取值:0~1 或1~10(值越小,惩罚力度越小)
- solver:会根据数据自动选择优化方法
- sag(随机平均梯度下降):如果数据集、特征都比较大,选择该随机梯度下降优化
- normalize:数据是否进行标准化
- normalize=False:可以在fit之前调用preprocessing.StandardScaler标准化数据
- Ridge.coef_:回归权重
- Ridge.intercept_:回归偏置
Ridge方法相当于SGDRegressor(penalty='l2', loss="squared_loss"),只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了随机平均梯度下降SAG)
- sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
- 具有l2正则化的线性回归,可以进行交叉验证
- coef_:回归系数
class _BaseRidgeCV(LinearModel):
def __init__(self, alphas=(0.1, 1.0, 10.0),
fit_intercept=True, normalize=False,scoring=None,
cv=None, gcv_mode=None,
store_cv_values=False):
正则化程度的变化,对结果的影响?
- 正则化力度越大,权重系数会越小
- 正则化力度越小,权重系数会越大
- Ridge Regression 岭回归
- 就是把系数添加平方项
- 然后限制系数值的大小
- α值越小,系数值越大,α越大,系数值越小
- Lasso 回归
- 对系数值进行绝对值处理
- 由于绝对值在顶点处不可导,所以进行计算的过程中产生很多0,最后得到结果为:稀疏矩阵
- Elastic Net 弹性网络
- 是前两个内容的综合
- 设置了一个r,如果r=0--岭回归;r=1--Lasso回归
- Early stopping
- 通过限制错误率的阈值,进行停止
补充知识:数学求导
相关文章
- ASP.NET Core Web Api之JWT(一)
- Spring 事务管理的API
- Dubbo -- 系统学习 笔记 -- API参考手册
- (C++C#类型互转工具)使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
- ant Form 常用 api
- Regmap API 实验
- 接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)
- Apache Storm 官方文档 —— Trident API 概述
- ASP.NET Web API中展示实体Link相关的方面
- MVC项目实践,在三层架构下实现SportsStore-09,ASP.NET MVC调用ASP.NET Web API的查询服务
- delphi7的新生,参与分布式应用开发,调用RESTful API,Json的应用
- 以太坊API(ETH API),通过以太坊数据可搭建区块链以太坊数据
- 如何使用 Infura Conflux API? | Tokenview
- 【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置
- Android API中被忽略的几个函数接口
- 修改系统时间(取得服务器时间,使用SetLocalTime API函数,需要UAC权限)
- 让自己的软件实现拖拽打开文件(覆盖WM_DROPFILES,使用DragQueryFile,DragFinish API函数)
- Tensorflow2.0 入门与实战学习笔记(四)-函数式Api
- vue3组合API(setup函数,系列二)
- 手机号码归属地查询免费api接口代码
- VC中常见API函数使用方法(经验版)
- 使用flink Table &Sql api来构建批量和流式应用(2)Table API概述
- C#调用user32.dll Win32的API函数
- 封装异步API-js先执行完一个函数后再执行下面的逻辑或者方法