本文着重是重新梳理一下线性回归的概念,至于几行代码实现,那个不重要,概念明确了,代码自然水到渠成。

  “机器学习”对于普通大众来说可能会比较陌生,但是“人工智能”这个词简直是太火了,即便是风云变化的股市中,只要是与人工智能、大数据、云计算相关的概念股票都会有很好的表现。机器学习是实现人工智能的基础,今天早上看了美国著名演员威尔斯密斯和世界最顶级的机器人进行对话的视频,视频中的机器人不论从语言还是表情都表达的非常到位,深感人工智能真的离我们越来越近了,所以学习人工智能前沿技术的基础学科——机器学习就非常有必要了。

  首先,机器学习是一个比较容易理解的概念,就是让机器去模拟人的大脑去学习和思考,最终得出结论。举个栗子:某初中期末考试,有一道考题是给出直角坐标系中的两个点a(x1,y1),b(x2,y2),根据所给点求取过a,b两点的方程。初中文化的童鞋都知道,套用数学公式y=kx+b即可求出k和b就得到方程了。如何让计算机求出方程呢,这里就会涉及到非常简单的线性回归方法,也就是把已知的a,b点给计算机,然后告诉它用线性回归来拟合所给点,这时电脑也会给出你k和b的结果。也就是说电脑也会用老师告诉你的那套数学计算方法来求取方程,只不过是求取过程被编写成了计算机代码来执行。

  上面这个小例子简单的介绍了一下线性回归方法机器学习是怎么来执行的,当然,在我们实际采用线性回归来进行机器学习时会更复杂一些,首先得需要掌握一些机器学习中线性回归的基本知识。首先了解一下机器学习的基础知识,机器学习通常涉及到两个重要的参数,包括特征和标签,如何对这两个名词进行理解呢?特征我们可以认为是输入机器学习模型中的自变量,标签就是机器学习模型的输出结果。类比上面的y=kx+b,x就是特征,y就是标签,仅此而已。

  接下来我们需要认识一下在用python进行机器学习时候需要用到的包——sklearn包。这个包非常重要,里面有非常多的模型算法,简单点说你想要通过一堆特征得到一个模型时候你就直接调用这个包然后把特征丢进去好了,说的简单,其实在做的时候特费劲。。。但是基本过程就是这样。

  下面需要了解相关性这个概念,相关性分析会在很多机器学习中遇到,也就是研究事物之间发生有没有关系,关系有多大这么个事情。相关性有三种:分别包括正线性相关、负线性相关、非线性相关。如下图所示:

上图很直观看到了线性相关到底是咋回事,也就是说数据的趋势可以大致用一个直线来进行描述,虽然并不是所有的数据点都会在直线上,但是趋势就是直线。即趋势就是个最简单的方程y=kx+b。

说到相关性,最值得关注的有两个参数,1协方差,2相关系数。首先说协方差就是描述两个变量变化情况的量,如下示意图:

也就是你变大,我也变大,说明两个变量是同向变化,此时协方差为正;一个变量变大一个变量变小,说明两个变量是反向变化,协方差为负。从数值大小看,协方差数值越大,两个变量的同向程度也就越大,反之亦然。但是有的时候协方差会差上万倍,我们看到两个数的变化程度仍然相似,这时协方差就不适合来描述两个变量的相关性了。这时候我们需要用先关系数来描述两个数的相关性。计算公式如下图:

那么如何理解相关系数呢?首先标准差描述了变量在整体变化过程中偏离平均值的幅度。协方差除以标准差也就是把协方差中的变量变化幅度对协方差的影响剔除掉了,这样协方差也就标准化了,它反映的就是两个变量每单位变化的情况。

接下来就是逻辑回归的套路问题了,如下图:

代码都很简单,但是功能很强大,通过上述这三行代码就可以像上文举的小栗子那样直接求出k和b了,然后直线方程就出来了。虽然模型出来了,但是并不是所有的数据点都是完全在模型中,这时我们需要评估这个模型到底咋样,靠不靠谱,就用如下公式来计算:

决定系数R平方有两个功能:1、回归线拟合程度2、r平方越高,回归模型越精确。

以上就是线性回归的基本知识,相信你只要有一点点基本的统计知识加上一点点高中数学知识最后再有点耐心就会明白线性回归的原理。

python入门机器学习,3行代码搞定线性回归的更多相关文章

  1. 30行代码搞定WCF并发性能测试

    [以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main()         {               List< ...

  2. 10行代码搞定移动web端自定义tap事件

    发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...

  3. 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学

    编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...

  4. python爬煎蛋妹子图--20多行代码搞定煎蛋妹子图库

    如果说一个人够无聊的话... 就会做一些十分美(wei)丽(suo)的事情啦哈哈哈... 好的,话不多说,进入正题. 正如标题所示,我们今天的目标很简单: 代码要少,妹子要好. 步骤如下: 1. 首先 ...

  5. Tensorflow快餐教程(1) - 30行代码搞定手写识别

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lusing/article/details ...

  6. [Unity Editor]10行代码搞定Hierarchy排序

    在日常的工作和研究中,当给我们的场景摆放过多的物件的时候,Hierarchy面板就会变得杂乱不堪.比如这样:    过多的层次结构充斥在里面,根层的物件毫无序列可言,整个层次面板显示非常的杂乱不堪,如 ...

  7. 7行代码搞定WEB服务

    作为一个 Java 程序猿,写代码久了,各种技术也就都尝试了一个遍. 先从 SSH1(Spring.Struts1.Hibernate)摸爬滚打转变到 SSH2(Spring.Struts2.Hibe ...

  8. BaseHttpListActivity,几行代码搞定Android Http列表请求、加载和缓存

    Android开发中,向服务器请求一个列表并显示是非常常见的需求,但实现起来比较麻烦,代码繁杂. 随着应用的更新迭代,这种需求越来越多,我渐渐发现了实现这种需求的代码的共同点. 于是我将Activit ...

  9. 100行代码搞定抖音短视频App,终于可以和美女合唱了。

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由视频咖 发表于云+社区专栏 本文作者,shengcui,腾讯云高级开发工程师,负责移动客户端开发 最近抖音最近又带了一波合唱的节奏,老 ...

随机推荐

  1. sklearn 缺失值填补(总结)

    首先查看数据形态: data.shape 再查看数据类型和非空值的个数与比例 data.info() 使用SimpleImputer进行填补 from sklearn.impute import Si ...

  2. Java方法的多态

    方法的多态 重载.方法名相同,其他可以不同 重写.父类子类的方法名相同.访问权限不能更小 重写: 继承了父类 父类方法不能满足 子类.父类这个方法的方法名相同 参数相同 返回类型相同 访问权限不能更小 ...

  3. (最全最灵活地)利用Jxl工具包实现Excel表的内容读取 、写入(可向已有表中追加数据)

    1.引子 (1)读取 Jxl工具比较强大,可以方便地实现Excel表的读取和写入.另一款工具Poi也具有相似的功能,并且功能更多,运用也相对复杂.Poi读取Excel表内容时,需要先判断其内容格式,如 ...

  4. Python 学习笔记:根据输入年月获取该月的第一天和最后一天

    目的: 给定一个时间,比如:2020.02,要求返回所输入月份的第一天及最后一天,比如:('2020.02.01', '2020.02.29') 参考博客:https://blog.csdn.net/ ...

  5. amazon中文文档

    在线调试器 https://mws.amazonservices.com.cn/scratchpad/index.html mws 中心 https://developer.amazonservice ...

  6. Python remove()和del语句 区别和辨析 列表删除操作

    del语句可以删除列表中下标处的值,表中被删除值后后面的所有值将向前移动一个下标 spam = ['A','B','C','D','E'] del spam[2] spam 打印显示:['A', 'B ...

  7. visual studio2019下静态链接库的制作

    创建静态库项目 项目名称为20199324lib // pch.h #ifndef __PCH__ #define __PCH__ extern int add(int a, int b);//ext ...

  8. Spring Boot从入门到放弃-Spring Boot 整合测试

    站长资讯摘要:使用Spring Boot 整合测试,对Controller 中某个方法进行测试或者对Service,Mapper等进行测试,不需要运行项目即可查看运行结果是否和期望值相同,Spring ...

  9. Papa开启“点播孙子”模式,新型老年人服务能在国内扎根吗?

    "互联网+"对多个行业的全面赋能和渗入,的确让我们的生活与工作处处充满了便利.很多"跑断腿"才能办的事,现在只要在PC.智能手机上滑动鼠标.点击屏幕就能轻松搞定 ...

  10. BaseAdapter教程(1) 最简单地使用BaseAdapter

    Adapter就是适配器,而设计模式里也有Adapter Pattern. 而BaseAdapter就是设计模式里的思维,把一些不相关的东西放进去,经过适配器,最终都会出产同一样的东西. 就像Base ...