回归模型

2.线性回归

☆樱花仙子☆ 提交于 2019-11-28 07:10:57
(一)简单线性回归 和之前介绍的KNN不同,KNN主要是解决分类问题,而线性回归顾名思义显然是用来解决回归问题的。线性回归具有如下特征: 解决回归问题 思想简单,实现容易 许多强大的非线性模型的基础,比如逻辑回归、多项式回归、svm等等 结果具有很好的可解释性 蕴含机器学习中的很多重要思想 图中是房屋的面积与价格之间的对应关系,不同的面积对应不同的价格,由此在二维平面中便形成了多个点。我们的目的就是要找到一条直线,最大程度上来拟合这些点。 但是在之前的KNN,分类问题中,横轴和纵轴都是样本的特征,而标签则是由这个点是红色还是蓝色决定的。 但是在线性回归中,由于是房产数据,我们必须要预测出一个具体的数值,而不能像分类问题那样,用简单的颜色来代表类别。而这些数据显然是在一个连续的样本空间中,因此需要一个坐标轴来表示。也正因为如此,在二维平面中只能有一个特征,要是多个特征,我们就要更高的维度上进行观察了。 如果样本的特征只有一个,我们称之为简单线性回归 我们的目的是要找到一个直线来尽可能多的拟合这些点,而在二维平面上显然是y = ax + b,那么每一个样本x,都会有一个真实值y和用拟合曲线预测出来的预测值ŷ,因此我们的真实值和预测值就会有一个差距 既然有真实值和预测值,那么评价一个直线的拟合程度,就看所有样本的真实值和预测值之差。如果只是简单的相减,那么两者之差可能有正有负,会抵消掉

回归评价指标MSE、RMSE、MAE、R-Squared

依然范特西╮ 提交于 2019-11-28 04:03:46
分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差。看公式 这里的y是测试集上的。 用 真实值-预测值 然后平方之后求和平均。 猛着看一下这个公式是不是觉得眼熟,这不就是线性回归的损失函数嘛!!! 对,在线性回归的时候我们的目的就是让这个损失函数最小。那么模型做出来了,我们把损失函数丢到测试集上去看看损失值不就好了嘛。简单直观暴力! 均方根误差(RMSE) RMSE(Root Mean Squard Error)均方根误差。 这不就是MSE开个根号么。有意义么?其实实质是一样的。只不过用于数据更好的描述。 例如:要做房价预测,每平方是万元(真贵),我们预测结果也是万元。那么差值的平方单位应该是 千万级别的。那我们不太好描述自己做的模型效果。怎么说呢?我们的模型误差是 多少千万?。。。。。。于是干脆就开个根号就好了。我们误差的结果就跟我们数据是一个级别的可,在描述模型的时候就说,我们模型的误差是多少万元。 MAE MAE(平均绝对误差) 不用解释了吧。 R Squared 上面的几种衡量标准针对不同的模型会有不同的值。比如说预测房价 那么误差单位就是万元。数子可能是3,4,5之类的。那么预测身高就可能是0.1,0.6之类的。没有什么可读性

机器学习实践(十二)—sklearn之线性回归

允我心安 提交于 2019-11-28 03:52:26
一、线性回归应用场景 房价预测 销售额度预测 金融:贷款额度预测、利用线性回归以及系数分析因子 二、线性回归的原理 什么是回归 在机器学习中,回归就是拟合的意思,我们需要找出一个模型来拟合(回归)数据。 什么是线性回归 线性回归是:利用回归方程(函数),对特征值和目标值之间关系进行建模的一种分析方式。 特征值和目标值可以是一个或多个,特征值和目标值可以看作函数意义上的自变量和因变量。 特点 只有一个自变量的情况称为单变量回归。 多于一个自变量的情况称为多元回归。 通用公式 h ( θ ) = θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + . . . + b = θ T x + b h(\theta) = \theta_1x_1 + \theta_2x_2 + \theta_3x_3 + ... + b = \theta^Tx + b h ( θ ) = θ 1 ​ x 1 ​ + θ 2 ​ x 2 ​ + θ 3 ​ x 3 ​ + . . . + b = θ T x + b 其中: θ = ( θ 1 , θ 2 , . . . , θ n , b ) T \theta = (\theta_1,\theta_2,...,\theta_n,b)^T θ = ( θ 1 ​ , θ 2 ​ , . . . , θ n ​ , b ) T x = ( x 1 , x 2

《机器学习实战》9.3树回归之模型树和项目案例

梦想的初衷 提交于 2019-11-27 13:41:28
《机器学习实战》9.3树回归之模型树和项目案例 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货 csdn:https://blog.csdn.net/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 本文出现的所有代码,均可在github上下载,不妨来个Star把谢谢~: Github代码地址 一、引言 这一节我们来介绍模型树以及进行一个简单的树回归的项目实战 二、模型树 2.1 模型树简介 回归树的叶节点是常数值,而模型树的叶节点是一个回归方程。 用树来对数据建模,除了把叶节点简单地设定为常数值之外,还有一种方法是把叶节点设定为分段线性函数,这里所谓的 分段线性(piecewise linear) 是指模型由多个线性片段组成。 我们看一下图中的数据,如果使用两条直线拟合是否比使用一组常数来建模好呢?答案显而易见。可以设计两条分别从 0.0-0.3、从 0.3-1.0 的直线,于是就可以得到两个线性模型。因为数据集里的一部分数据(0.0-0.3)以某个线性模型建模,而另一部分数据(0.3-1.0)则以另一个线性模型建模,因此我们说采用了所谓的分段线性模型。 决策树相比于其他机器学习算法的优势之一在于结果更易理解。很显然

逻辑回归2-scikit-learn参数介绍

冷暖自知 提交于 2019-11-27 12:30:47
1.1 scikit-learn参数介绍 1.1.1 导入 from sklearn.linear_model import LogisticRegression 1.1.2 版本 scikit-learn==0.21.3 1.1.3 参数 1.1.3.1 penalty l1 、l2 、elasticnet 、none ,默认l2 l1: l1正则,邻回归 l2: l2正则,套索回归 elasticnet: 弹性网络,是邻回归和套索回归的正则项的混合 none: 什么都不加 在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑弹性网络和L1正则化,弹性网络优于L1正则,因为当特征数量超过训练实例数量,又或者是几个特征强相关时,L1正则的表现可能非常不稳定。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。 penalty参数的选择会影响损失函数优化算法的选择,即参数solver的选择。 若是L2正则,有4种可选的算法:“newton-cg”,“lbfgs”,“liblinear”,“sag”, 若是L1 正则,有1 种可选的算法:“liblinear ”,L1 正则化的损失函数不是连续可导的。 若是elasticnet

ABC卡

我与影子孤独终老i 提交于 2019-11-27 09:24:23
如今在银行,P2P等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户有一个优质与否的评判。但是不是所有人都知道信用评分卡还分A,B,C卡三类!所以,如果你只知道ABC是Gary的ABC汤,那就赶紧来补习下这些知识吧~~ A卡(Application score card)申请评分卡 B卡(Behavior score card)行为评分卡 C卡(Collection score card)催收评分卡 三种卡的介绍,请直接看这篇文章:比较全面的说了三种打分机制。 梁世栋博士的《行为评分和贷后风险管理研究》http://www.docin.com/p-516772778.html 这三种打分机制的区别在于: 1.使用的时间不同。分别侧重 贷前、贷中、贷后 ; 2.数据要求不同。 A卡一般可做贷款0-1年的信用分析,B卡则是在申请人有了一定行为后,有了较大数据进行的分析,一般为3-5年,C卡则对数据要求更大,需加入催收后客户反应等属性数据。 3.每种评分卡的模型会不一样。在A卡中常用的有 逻辑回归 , AHP [层次分析法(Analytic Hierarchy Process,简称AHP)]等,而在后面两种卡中,常使用 多因素逻辑回归 ,精度等方面更好。 3.检测评分卡中客户群的 特征变化 ,已经这些变化对评分卡分值的冲击。 2.计算 某些特定参数 ,用以触发某些行动

5.多项式回归与模型泛化

 ̄綄美尐妖づ 提交于 2019-11-27 03:59:11
(一)什么是多项式回归 还记得线性回归法吗?线性回归法有一个很大的局限性,那就是需要数据是有一定的线性关系的,但是现实中的很多数据是没有线性关系的。多项式就是用来解决这个问题的,可以处理非线性数据 在线性回归中,我们是假设数据具有线性关系的,因此我们在简单线性回归中,将直线的方向设置为y=ax+b的形式,那么我们求出a和b即可。 而对于有些数据,我们虽然也可以使用线性回归,但是显然具有更加强的非线性的关系,换句话说,如果我们用一个二次曲线来拟合这些点,效果会更好。因此函数就变成了了y=ax^2+bx+c,我们求出a、b、c即可。但是本质上,和线性回归一样,目前都是只有一个特征,只不过我们为样本多添加了一些特征,这些特征是原来的多项式项。求出了对原来的特征而言,一个非线性的曲线。 生成数据集 import numpy as np import matplotlib.pyplot as plt # 生成一百个样本,每个样本只有一个特征 X = np.random.uniform(-3, 3, size=(100, 1)) y = 0.5 * X ** 2 + X + 2 + np.random.normal(0, 1, size=(100,1)) plt.scatter(X, y) plt.show() 可以看到数据大概满足一条二次曲线,但是我们使用线性回归法来拟合一下 from

OCR思路发散

别来无恙 提交于 2019-11-27 03:24:41
检测部分: 1、 行检测直接强制回归,回归成两大部分,后按照模板的处理方法进行处理(设置单位长度,按比例寻找对应行) 2、更暴力方法 在拍摄时打水印方法,直接生成对应的蒙版 识别部分: 先用成套的相关词语对模型预训练,(例如: 西安市,北京市,地址)这些词语一定是强联系的,肯定能提高识别准确率 来源: https://blog.csdn.net/weixin_38740463/article/details/99318476

通俗易懂的AI算法原理

我是研究僧i 提交于 2019-11-26 21:46:39
https://www.toutiao.com/a6706348363916247559/ 写给产品经理的机器学习算法入门,在文章中会忽略一些细节以及算法本身具体的实现方式。我想尽量用直白的语言、较少的数学知识给各位产品经理讲清楚各个算法的原理是什么。 机器学习的过程 机器学习的过程从本质上来说就是通过一堆的训练数据找到一个与理想函数(f)相接近的函数。在理想情况下,对于任何适合使用机器学习的问题在理论上是存在一个最优的函数让每个参数都有一个最合适的权重值,但在现实应用中不一定能这么准确得找到这个函数,所以我们要去找与这个理想函数相接近的函数,能够满足我们的使用那么我们就认为是一个好的函数。 这个训练数据的过程通常也被解释为在一堆的假设函数(Hypothesis set)中,它是包含了各种各样的假设,其中包括好的和坏的假设,我们需要做的就是从这一堆假设函数中挑选出它认为最好的假设函数(g),这个假设函数是与理想函数(f)最接近的。 机器学习过程 机器学习这个过程就好比在数学上,我们知道了有一个方程和一些点的坐标,用这些点来求这个方程的未知项从而得到完整的方程是什么。但在机器学习上我们往往很难解出来这个完整的方程是什么,所以我们只能通过各种手段求最接近理想情况下的未知项取值,使得这个结果最接近原本的方程。 什么问题适合用机器学习解决 机器学习不是万能的,并不能解决所有的问题

多项式回归

狂风中的少年 提交于 2019-11-26 21:13:50
目录 多项式回归 一、多项式回归 二、scikit-learn中的多项式回归 三、关于PolynomialFeatures 四、sklearn中的Pipeline 五、过拟合和欠拟合 六、解决过拟合问题 七、透过学习曲线看过拟合 我是尾巴 多项式回归 直线回归研究的是一个依变量与一个自变量之间的回归问题。 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)多项式回归模型是线性回归模型的一种。 多项式回归问题可以通过变量转换化为多元线性回归问题来解决。 一、多项式回归 import numpy as np import matplotlib.pyplot as plt x = np.random.uniform(-3, 3, size=100) X = x.reshape(-1, 1) y = 0.5 + x**2 + x + 2 + np.random.normal(0, 1, size=100) plt.scatter(x, y) plt.show() 如果直接使用线性回归,看一下效果: from sklearn.linear_model import LinearRegression lin_reg = LinearRegression() lin_reg.fit(X, y) y_predict = lin