回归分析——线性回归

     机器学习中,对于离散的数据可以做分类问题,那对于连续的数据就是做回归问题,这里对一元线性回归和多元线性回归做一个简介,帮组理解。

    回归分析:从一组样本数据出发,确定变量之间的数学关系式,对这些关系式的可信程度进行各种统计检验,并从影响某一特定变量的诸多变量中找到影响效果显著和不显著的变量,同时利用关系式,根据一个和多个变量来预测或控制另一个特定变量的取值,并给出预测的精准程度

变量之间的关系有两种:一种是确定性关系,能直接给出y = f(x),确定唯一的y,一种是相关关系,变量之间有关系,但是不能用函数表示。但是在平均意义下有一定的变量相关关系。


    (注:图是参考资料里边的)

    一元线性回归模型:描述因变量Y如何依赖自变量X的方程,这是自变量只有一个,称之为一元线性回归模型。

                                 y = w0+w1x

     多元线性回归模型 :描述因变量Y如何依赖自变量x1,x2,x3...的方程,此时自变量有多个,称之为多元线性回归模型。

                                y = w0 +w1x1 + w2x2 +w3x3 +...

                         w1,w2,w3...称为偏回归系数

    回归的目的是预测数值型的目标值。最直接的方法就是依据输入写出一个目标值的计算公式。这就是回归方程,公式为y=wX,其中w是回归系数,求这些回归系数的过程就是回归。这里的回归是多元线性回归,现在的问题是,手里有一些X和对应的y,怎么能找到w呢?一个常用的方法是找出使误差最小的w。这里的误差指的是预测值和真实值之间的差值,使用误差的简单累加使得该误差的简单累加将使得正差值和负差值相互抵消,所以我们采用平方误差。

                                                             其中,y是真实值,是预测值。

      求解线性回归分为两类:一类是正规方程的求解,一个是基于梯度下降的求解。这里给出的是正规方程的求解过程。

    对损失函数求解最小值计算化简为(这里推导过程参考正规方程计算,摘自博客chenlin41204050的博客(链接:https://blog.csdn.net/chenlin41204050/article/details/78220280)

  

    转换为矩阵运算,设有m个训练实例,每个实例有n个特征,则X为:                                                    

 其中表示第i个实例的第j个特征。

   特征参数(回归系数):                                   输出变量Y:

                               

    损失函数可以写为:

    

    求偏导:

    

    其中第一项结果为0,其他计算:

    

   

         该计算和上边过程类似。

       最后一项: 

      


故最后结果为:

                   


      这里用的是最小二乘法,也可以用梯度下降实现线性回归。最后的化简式子中,对矩阵的求逆不能为0,即行列式不能为0。如果没有检查行列式是否为0就试图计算矩阵的逆,将会出现错误。之前一直找资料想知道公式的推导过程,终于找到了,鄙人实在不太会用各种数学公式的工具使用,就盗用了他们的图,希望不影响浏览。

最小二乘法

     最小二乘法的用途是求未知数据,并使得这些数据与实际数据之间的误差达到最小。另一个方面可以进行曲线拟合。最小二乘法在估计的时候我们可以首先画出散点图看是否有线性关系,在做进一步的分析。

    高中我们所学的知道两点求直线就是用到了最小二乘法,方程为y=ax+b,已知有点(x1,y1),(x2,y2)两个点,利用误差最小可知:

                                                计算可得:   


   

局部加权线性回归

      线性回归的一个问题是有可能出现欠拟合的现象,因为它求的是具有最小均方差的无偏估计。显而易见,如果模型欠拟合将不能取得最好的预测效果。所以引入局部加权线性回归,在算法中,我们给预测点附近的每一个点赋予一定的权重,在此方法中,我们使用‘核’来对附近的点赋予更高的权重,常用的是高斯核。


岭回归

       如果特征比样本点还多,也就是说输入数据的矩阵x不是满秩矩阵,非满秩矩阵会在求逆时出现问题,所以引入岭回归,简单地说,就是在矩阵加一个常数和单位矩阵,该常数越大,方差越小,偏差越大,通过引入该惩罚项,能够减少不重要的参数,这个技术在统计学中叫做缩减。

        在进入岭回归和lsaao回归的时候引入了正则化的概念,其中岭回归用了L2正则化,lasso用了L1正则化,正则化将会在以后讲解。

这里重新引入了一个数据标准化的过程,和归一化是不一样的。目的有一定的相似性。                                      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译原理(五)自底向上分析之算符优先分析法

自底向上分析之算符优先分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。 基本过程 1. 一般方法:采用自左向右地扫描和分析输入串,从输入符号串开始,通过反复查找当前句型的句柄&#xff0…

做Android开发,要清楚init.rc里面的东西

init.rc 复习看这个之前,先看看大神总结的文章这篇文章总结的非常到位,但是因为代码不是最新的Android版本,对我们最新的Android版本不适用。http://gityuan.com/2016/02/05/android-init/#init rc文件拷贝拷贝其实也就是把文件放到机器的某个…

abap常用系统变量

常用的系统变量如下: 1.sy-pagno当前页号 2.SY-DATUM当前时间 3.SY-LINSZ当前报表宽度 4.SY-LINCT当前报表长度 5.SPACE空字符 6.SY-SUBRC执行状态为0,表示成功. 7.SY-UNAME 用户名 8.SY-UZEIT当前时间 9.SY-TCODE当前的事务代码 10.SY-LSIND列表索引页 11.SY-LISTI上一个列表的…

随机森林

随机森林的思想:随机取样,创建M棵决策树,并对决策树的结果进行投票,选出最多的类别作为最后的分类结果。这里在创建决策树的时候引入了基尼指数的概念,基尼指数和信息增益的作用一样,都是选出数据集的最佳分…

Linux静态库和动态库的设计

静态库和动态库的设计 宗旨:技术的学习是有限的,分享的精神是无限的。 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供 Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库…

操作excel

static void create(String path) throws Exception {//读取文件FileInputStream in new FileInputStream(path);XSSFWorkbook wb new XSSFWorkbook(in);// 获得该工作区的第一个sheetXSSFSheet sheet wb.getSheetAt(0);int rowNum sheet.getLastRowNum();//行int columnNu…

无法安装软件之解决其一 (windows installer服务篇)

早上接到兄弟求助,无法安装软件,于是把最直接方法告诉他,还原啊。但ghost 进程到一半就当了,真是对不起他。。挂了电话后查了一下,现将方法总结如下:两种环境1 windows 2000系统 中:第一步&…

决策树——CART和模型树

CART树 理解: 如果CART树处理离散型数据,叫做分类决策树,那么,引入基尼指数作为寻找最好的数据划分的依据,基尼指数越小,说明数据的“纯度越高”,随机森林的代码里边就运用到了基尼指数。如…

宏比较值,坑的一B

昨晚上,我准备睡觉,连总给我发了一段代码#include "stdio.h"#define MAX_MACRO(a, b) ((a) > (b) ? (a) : (b)) int MAX_FUNC(int a, int b) {return ((a) > (b) ? (a) : (b)); }int main() {unsigned int a 1;int b -1;printf(&quo…

Linux下Samba服务器搭建

linux文件共享之samba服务器 ——ubuntu 宗旨:技术的学习是有限的,分享的精神是无限的。 关闭LINUX防火墙命令: #ufwdisable 然后就在windows下ping一下linux的IP,如果能ping通,就可以继续下面的内容,如果p…

日志分析linux命令

1、查看文件内容:cat 。-n显示行号。 2. more:全屏幕分页显示文件的内容。下一页:space键;上一页:B;停止:Q;显示下一行:Enter; 3. less:在文件最…

C#比较两时间大小

1。比较时间大小的实验 string st1"12:13"; string st2"14:14"; DateTime dt1Convert.ToDateTime(st1); DateTime dt2Convert.ToDateTime(st2); DateTime dt3DateTime.Now; if(DateTime.Compare(dt1,dt2)>0) msg.Textst1">…

搞懂C++为什么难学,看这篇就够了!

学C能干什么? 往细了说,后端、客户端、游戏引擎开发以及人工智能领域都需要它。往大了说,构成一个工程师核心能力的东西,都在C里。跟面向对象型的语言相比,C是一门非常考验技术想象力的编程语言,因此学习起…

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为)

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为) Java后台面试 常见问题转载于:https://www.cnblogs.com/straybirds/p/8319566.html

SAP BC417 课程中文自学笔记

BC417: BAPI Development for Accessing SAP Components开发自定义 BAPI 的方法http://files.cnblogs.com/qiangsheng/SAP_BC417.rarhttp://files.cnblogs.com/qiangsheng/SAP_BC417_appendix.rar

看图学源码之FutureTask

RunnableFuture 源码学习: 成员变量 任务的运行状态的转化 package java.util.concurrent; import java.util.concurrent.locks.LockSupport;/**可取消的异步计算。该类提供了Future的基本实现,包括启动和取消计算的方法,查询计算是否完成以…

单片机的引脚,你都清楚吗?

第1课:单片机简叙1.单片机可以做什么?目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。小到电话,玩具,手机,各类刷卡机,电脑键盘,彩电,冰箱&…

Graphviz的安装及纠错

在Anaconda Prompt里边输入conda install graphviz 安装成功之后输入pip install graphviz 它会提示成功安装。 启动 Jupyter Notebook ,在文件里边输入 import graphviz 测试,如果没有报错证明,模块安装成功,但是在运行程序…

基于ubuntu13.04搜狗输入法安装方法

基于ubuntu13.04搜狗输入法安装方法 宗旨:技术的学习是有限的,分享的精神是无限的。 sudo gedit etcaptsources.list 在打开的文件中加入以下两行: deb http ppa.launchpad.netfcitx-teamnightlyubuntu quantal main deb-src http ppa.lau…

给磁盘加个背景

给你的磁盘加上漂亮的背景先看下效果:具体方法:很简单的方法,新建一个文本文档输入以下内容:[ExtShellFolderViews]{BE098140-A513-11D0-A3A4-00C04FD706EC}{BE098140-A513-11D0-A3A4-00C04FD706EC}[{BE098140-A513-11D0-A3A4-00C…