机器学习实战之线性回归

之前我们学习的机器学习算法都是属于分类算法,也就是预测值是离散值。当预测值为连续值时,就需要使用回归算法。本文将介绍线性回归的原理和代码实现。

线性回归原理与推导

如图所示,这时一组二维的数据,我们先想想如何通过一条直线较好的拟合这些散点了?直白的说:尽量让拟合的直线穿过这些散点(这些点离拟合直线很近)。

目标函数

要使这些点离拟合直线很近,我们需要用数学公式来表示。首先,我们要求的直线公式为:Y = X<sup>T</sup>w。我们这里要求的就是这个w向量(类似于logistic回归)。误差最小,也就是预测值y和真实值的y的差值小,我们这里采用平方误差:

求解

我们所需要做的就是让这个平方误差最小即可,那就对w求导,最后w的计算公式为:

我们称这个方法为OLS,也就是“普通最小二乘法”

线性回归实践

数据情况

我们首先读入数据并用matplotlib库来显示这些数据。

def loadDataSet(filename):

    numFeat = len(open(filename).readline().split('\t')) - 1

    dataMat = [];labelMat = []

    fr = open(filename)

    for line in fr.readlines():

        lineArr = []

        curLine = line.strip().split('\t')

        for i in range(numFeat):

            lineArr.append(float(curLine[i]))

        dataMat.append(lineArr)

        labelMat.append(float(curLine[-1]))

    return dataMat, labelMat
回归算法

这里直接求w就行,然后对直线进行可视化。

def standRegres(Xarr,yarr):

    X = mat(Xarr);y = mat(yarr).T

    XTX = X.T \* X

    if linalg.det(XTX) == 0:

        print('不能求逆')

        return

    w = XTX.I \* (X.T\*y)

    return w

算法优缺点

  • 优点:易于理解和计算
  • 缺点:精度不高

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark学习技巧

从数学到实现,全面回顾高斯过程中的函数最优化

作者: Jonathan Landy 机器之心编译 参与:白悦、蒋思源 高斯过程可以被认为是一种机器学习算法,它利用点与点之间同质性的度量作为核函数,以从输入的...

48010
来自专栏AI科技评论

开发 | 三年来,CNN在图像分割领域经历了怎样的技术变革?

AI科技评论按:卷积神经网络CNN是深度学习中最典型的算法之一,它可以将图片通过一系列的卷积、非线性、池(采样)、全连接层之后得到一个输出。这篇文章中,我们会一...

3866
来自专栏目标检测和深度学习

目标检测入门(二):模型的评测与训练技巧

文章结构 ? 检测模型的评测指标 目标检测模型本源上可以用统计推断的框架描述,我们关注其犯第一类错误和第二类错误的概率,通常用准确率和召回率来描述。准确率描述了...

5636
来自专栏新智元

无监督,无需匹配样本!英伟达提出基于GAN的无监督图到图迁移框架

【新智元导读】英伟达研究人员发表论文,提出图像到图像的无监督学习。实现方式值得一看。 大多数现有的图像到图像(image-to-image)迁移框架是基于监督学...

3529
来自专栏有趣的Python和你

机器学习实战之Logistic回归

Logistic回归涉及到高等数学,线性代数,概率论,优化问题。本文尽量以最简单易懂的叙述方式,以少讲公式原理,多讲形象化案例为原则,给读者讲懂Logistic...

1523
来自专栏SIGAI学习与实践平台

集成学习综述-从决策树到XGBoost

在之前缅怀金大侠的文章“永远的金大侠-人工智能的江湖”中提到:集成学习是机器学习中一种特殊的存在,自有其深厚而朴实的武功哲学,能化腐朽为神奇,变弱学习为强学习,...

1363
来自专栏CVer

[计算机视觉论文速递] 2018-03-30

通知:这篇文章有9篇论文速递信息,涉及目标检测、图像分割、目标跟踪、三维重建和立体匹配等方向 PS:由于时间问题,本文没有附上相应图示,还请见谅 前文回顾 Te...

37714
来自专栏人工智能头条

结合Scikit-learn介绍几种常用的特征选择方法

2385
来自专栏SIGAI学习与实践平台

随机森林概述

在SIGAI之前的公众号文章“大话AdaBoost算法”中我们介绍了集成学习的思想以及Boosting算法,今天的文章中我们将为大家介绍另外一种集成学习算法-随...

1552
来自专栏智能算法

结合Scikit-learn介绍几种常用的特征选择方法(上)

特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型...

9706

扫码关注云+社区