线性回归算法原理简介
1,线性回归概念
回归和分类的区别:简单地说,回归就是通过数据预测出一个目标值(实际值),分类就是通过数据预测出一个类别(二分类,多分类)。
比如:银行贷款实例
(1)数据:每个个人(样本)的工资和年龄(两个特征)
(2)目标:预测银行会贷款给个人多少钱(标签,回归)或者预测银行会不会给贷款(标签,分类)
(3)建立以特征为自变量的拟合函数,确定函数参数以求出函数值(标签)
可以添加一列x0(取值都为1)引入偏置项,使组合式简洁工整,方便进行矩阵运算,提高效率。
2,误差:
误差的特点:
高斯分布图:
高斯分布的实际意义:银行可能会多给,也可能会少给(均值为0),但是绝大多数情况下这个浮动不会太大,极小情况下浮动会比较大,符合正常情况。
3,似然函数的引入,取对数操作,最小二乘法
似然函数:根据样本数据服从的规则来估计合理的参数值(参数估计),即什么样的参数和数据组合(预测值)后恰好是真实值(是真实值的可能性越大越好,最大似然函数,极大似然估计)。
m是样本的个数,累乘(独立性分布)。
对数似然:对数可以将乘法转换成加法,简化计算。(若数据存在偏度也有对数据取对数的,是数据的分布服从假设)
展开化简:
目标:让似然函数(单调性相同,对数变换后也一样)越大越好,即令下式越小越好:
如果数据上升到更高维的空间,我们尝试使用最大似然估计来解释最小二乘的合理性。
将目标函数展开:
对上式求偏导:
令偏导等于0(凸函数,凸优化)则有:
X,y对应于给定样本的数据(已知),一般情况下都可求解。并不一定可直接求解,线性回归可以当做是一个特例。
评估方法:
最常用的评估项:
取值越接近于1我们认为模型拟合的越好。
4,梯度下降
由于目标函数并不一定可直接求解,举个例子,我要优化一个深度神经网络DNN(Deep neural network)的网络参数(换言之,优化此网络对于已知数据拟合结果的正确性),可不可以用最小二乘准则去衡量某一拟合结果相对于标准答案的偏差程度呢?可以。而同时,由于DNN模型本身的复杂性,我们没有办法像线性拟合时那样,在理论和公式的层面求出一个最优解,因此需要引入所谓的BP算法(实质上就是梯度下降法)进行参数的迭代求解。
梯度下降法,是假设条件更为广泛(无约束)的,一种通过迭代更新来逐步进行的参数优化方法,最终结果为局部最优;机器学习的方法就是交给机器一堆数据,然后告诉它什么样的学习方式是对的(目标函数),然后让它朝着这个方向去做(不断地优化迭代),求出偏导后是梯度上升的值,所以梯度下降是梯度的反方向。
建立目标函数:
以下山为例(怎样最快到达山谷的最低点):
(1)找到当前最合适的方向
(2)走一小步(走快了有可能越过最低点)
(3)按照方向(偏导)与步伐(更新量)去更新的参数
批量梯度下降:
综合考虑所有样本,容易得到最优解,但是由于每次考虑所有样本,速度很慢。
随机梯度下降:
每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向(数据噪音、异常等)。
小批量梯度下降法:
每次更新选择一小部分(10个样本)数据来算,批处理数量:32,64,128都可以(能多大可以多大),很多时候还得考虑内存和效率,很实用。
学习率(步长):对结果会产生巨大的影响,一般小一些(0.01),而把迭代步数加大,也可以在迭代过程中不断减小学习率。
线性回归算法原理简介相关推荐
- 线性回归算法原理及python实现
文章目录 引言 回归与分类的区别 线性回归 简单线性回归 原理及推导 python实现算法 多元线性回归 原理及推导 python实现算法 手工实现多元线性回归算法 sklearn实现多元线性回归算法 ...
- 线性回归算法原理及实现
我们之前介绍了几种机器学习算法,这些机器学习算法都是用来进行分类的.今天换换口味,我们来了解一下如何进行回归,回归是基于已有的数据对新的数据进行预测,比如预测产品销量. 我们来看看最简单的线性回归,基 ...
- 回归算法--线性回归算法原理
1.线性回归 回归一词最早由英国科学家弗朗西斯·高尔顿(Francis Galton)提出.他发现一个趋势:父母高,儿女也高:父母矮,儿女也矮.但给定父母的身高,儿女辈的平均身高却趋向于或者" ...
- 逻辑回归算法原理简介
1,逻辑回归简介 逻辑回归完成分类任务,是经典的二分类算法(也可以解决多分类问题),机器学习算法一般选择先逻辑回归(优先选择)再用复杂的,逻辑回归的决策边界可以是非线性的(高阶).可以通过参数对结果进 ...
- 支持向量机算法原理简介
1,支持向量机概念简介 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向量机本身便是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中 ...
- PBFT 算法原理简介
什么是 PBFT? Practical Byzantine Fault Tolerance ,实用拜占庭容错. 什么是 BFT? Byzantine Fault Tolerance ,拜占庭将军问题. ...
- RSA算法原理简介,非对称加密,公开密钥算法(易懂篇)
RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解.我们经 ...
- 深度学习算法 | LSTM算法原理简介及Tutorial
北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程 重温深度学习 阅读全文 > 正文共4880个字 17张图,预计阅读时间:13分钟. 1.背景 LSTM(Long Short ...
- GNSS/INS松组合算法原理简介
文章目录 卡尔曼滤波简介 概念 内容 方法 卡尔曼滤波器的初始化 系统状态 微分方程 离散化 GNSS 位置观测方程 状态转移矩阵 系统噪声方差阵 系统噪声驱动阵 本篇博文的矩阵展开都是根据状态向量为 ...
最新文章
- Numpy 数组复合排序——mX4列,根据多列组合排序
- greta一些简单实用的字符串匹配
- 口碑网发布2010吃住玩消费风向指数
- linux tunl0 ip,Centos7下lvs负载均衡lvs-tun模式配置
- Mac计算器的计算过程怎么看?教你一键查看运算记录!
- 银河麒麟配置java环境_中标麒麟系统上安装Java、Eclipse指南.doc
- 小鹏N5申报图曝光 搭载155KW电机、NEDC 600公里与P5相同
- 智能优化算法应用:基于GWO优化的灰度熵图像多阈值分割 - 附代码
- 【心电信号】基于matlab心电信号特征提取+分析处理【含Matlab源码 289期】
- DNS被劫持如何处理?
- java8 collectors_java8的Collectors.reducing()
- 三十六计之借刀杀人(第三计)
- 关于银河麒麟系统配置本地yum源配置流程说明
- Matlab符号微积分练习
- 解决git的Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa'问题
- 宝塔Linux面板安装教程
- 从NIB中加载VIEW
- 内存寻址:逻辑地址到物理地址的转化
- 必须收藏!企业邮箱申请的详细流程
- Oracle查看上级下级