16-把直的都掰弯了~好魔性的多项式回归

小时候的世界是单纯的,非黑即白,人的性格也是RIO耿直,不懂得掩饰,在他人面前展露无遗,没有那么多防范。后来发现,现实世界是个错综复杂的函数,不一定是garbage in, garbage out;有时候也会garbage in, master piece out(我是在贩卖毒鸡汤吗?Σ(っ °Д °;)っ)。总之,没有那么多想当然。同样,在机器学习的世界里,一条直线往往无法拟合那些变幻莫测的数据点,这样做too simple,sometimes naive。如果直的不行,那用弯的可以吗?事实证明,二次曲线有时比直线拟合效果好得多。将低维转化为高维,很多之前想不通、看不透的都瓦解冰消,这是认知上的胜利,值得每个人去追求。

下面我们来学习在sklearn中将直线掰成曲线的正确姿势:)

代码地址:http://pan.baidu.com/s/1eRI8lSA

1

二次曲线拟合vs直线拟合

图上可以发现 quadratic fit 比 linear fit 效果更好。

MSE 下降到61, R^2 上升到98%, 说明在这个数据集上 quadratic fit 效果更好。

2

波士顿房价数据的非线性关系建模

首先回顾一下波士顿房价数据的scatterplot matrix:

  • LSTAT    % lower status of the population 低层人口比例
  • MEDV     Median value of owner-occupied homes in $1000‘s 业主自住房屋中值 (要预测的变量)

下面我们将house prices 与 LSTAT 做 quadratic 及 cubic polynomials fit,并与 linear fit 对比:

对比R^2,可以看出拟合效果 cubic fit (R^2=0.66) > quadratic fit (R^2=0.64) > linear fit (R^2=0.54) 。

下面尝试一种全新的转化:Transforming the dataset by log。

经过 log 变换后,线性拟合效果不错(R^2=0.69),比单纯 polynomial fit 更好。

看了这次笔记,你是不是也跃跃欲试了?不要害怕get your hands dirty,把工作和学习当作享受吧。近一年来大部分时间在家远程工作,一开始觉得无聊,空虚,没有归属感,后来开始享受这种自由,最后,在得到的自由浓度足够高时,竟然奇迹般地不厌恶工作了!希望大家都能找到轻松愉悦的工作状态:)

时间: 2024-10-14 08:39:52

16-把直的都掰弯了~好魔性的多项式回归的相关文章

人人都爱写总结, 却少有人做计划

每到岁末,人们都会不约而同地.自发地写各式各样的总结.上个月,也就是 2018 年的最后一个月,园子里各处散落着无数篇年终总结贴.看过一些篇章,都写得挺好的. 转眼 2019 年已经运行了大半个月了,忽然意识到,似乎没人晒出自己的新年计划.可能零星有几篇,但和上个月蔚然成风的总结热比起来,九牛一毛了. 有人会说,个人计划有隐私之嫌,不合适晒出来,所以就算有,也是 " display: none ". 不错,但回想之前铺天盖地的总结文章,很多人都是足够赤诚地把自己过去一年扒了个精光.敞开

Linux江湖08:使用GCC和GNU Binutils编写能在x86实模式运行的16位代码

不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解GCC生成16位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在x86实模式下运行的16位代码,这个话题确实有点复古,所以能找到的资料也相应较少.要运行x86实模式的程序,目前我知道的只有两种方式,一种是使用DOS系统,另一种是把它写成引导扇区的代码,在系统启动时直接运行.很显然,许多讲自己实现操作系统的书籍都会讲到x86实模式,也只有自己实现操作系统引导的朋友需要用到x86实模式,所以我这篇

ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解

众说周知,ArcSDE空间数据库引擎提供了两种连接数据库的方式.一是服务连接方式,一是直连方式.后者也是Esri所推崇的方式.但是,在客户的生产环境和开发商的开发环境中这两种方式都是有需求的.下面就以截图说明的形式跟大家分享下在ArcGIS10.0和10.1中安装和配置空间数据库引擎的一般流程和注意事项. 1.直连方式 Esri之所以推荐使用直连方式,就是因为直连方式有明显的优势,可以给客户带来更大的效率和价值. a.直连方式的主要优势: A.直连方式较服务连接方式卸载了20%-40%的负载:

Linux 桌面玩家指南:08. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码

特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之间的内容按照数学公式进行排版,从而导致评论区格式混乱.如果大家的评论中用到了$,但是又不是为了使用数学公式,就请使用\$转义一下,谢谢. 想从头阅读该系列吗?下面是传送门: Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论 [约 1.1 万字,22 张图片] Linux 桌面玩家指南

C#字符串和16进制字符串之间的转换

将字符串编码成 16进制 字符串表示: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { // 将字符串转换成16进制表示: // 先将字符串转换成 byte 数组: // (1).如果是

Java生成二维码(Java程序都可以使用)

工具类,链接:https://pan.baidu.com/s/18U399fTH5wBJPnL97pAekg 提取码:bmw7 注:里面的corejar包是使用的zxing的代码,我只是将其导出的jar文件 二维码大部分是在JavaWeb中使用的,我就在JavaWeb演示了 导入jar,导入后会自动构建jar包 初始化方法参数解释: 第一个参数:生成二维码的宽度 第二个参数:生成二维码的高度 第三个参数:生成二维码Logo的宽度 第四个参数:生成二维码Logo的高度 第五个参数:生成二维码Log

Word 中直引号和弯引号的相互替换

直引号替换成弯引号 弯引号替换成直引号 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文) 原文地址:https://www.cnblogs.com/sinicheveen/p/12009873.html

大海扬波,靠地球自转、潮汐和飓风

忠诚,就忠诚自己的土壤: 追求,就追求自己的理想. --引自友人的诗 这是一曲振奋人心的搏斗之歌.它的主旋律,就是祖国的荣誉高于一切! 人们把体育比喻为一个民族精神的橱窗.那么,就让我们打开中国女排这个小小的窗口,看一看我们中华民族应有的精神风貌吧! 挥动黄手绢唱的歌 公元一千九百七十七年深秋.苍茫的暮色,笼罩着日本的商业都市大阪. 中国女排姑娘们乘坐的大型轿车,顺着五光十色的街道缓缓向前行驶. 多彩的夜景,与中国姑娘们喜悦的心境是相吻合的.今晚,一九七七年世界杯排球赛进入最后一个高潮--发奖.

安卓自定义View进阶-Matrix详解

这应该是目前最详细的一篇讲解Matrix的中文文章了,在上一篇文章Matrix原理中,我们对Matrix做了一个简单的了解,偏向理论,在本文中则会详细的讲解Matrix的具体用法,以及与Matrix相关的一些实用技巧. Matrix方法表 按照惯例,先放方法表做概览. 方法类别 相关API 摘要 基本方法 equals hashCode toString toShortString 比较. 获取哈希值. 转换为字符串 数值操作 set reset setValues getValues 设置.