机器学习实战之线性回归

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

线性回归原理与推导

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

目标函数

要使这些点离拟合直线很近,我们需要用数学公式来表示。首先,我们要求的直线公式为: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 条评论
登录 后参与评论

相关文章

来自专栏杨熹的专栏

Sklearn 快速入门

学习资料:大家可以去莫烦的学习网站学到更多的知识。 本文结构: Sklearn 简介 选择模型流程 应用模型 ---- Sklearn 简介 Scikit...

3398
来自专栏有趣的Python和你

sklearn调包侠之学习曲线和Pipeline

1365
来自专栏有趣的Python和你

机器学习实战之线性回归

1235
来自专栏专知

Facebook AI发布新版本FairSeq序列到序列(Seq2Seq)学习工具,可生成故事与快速推断

【导读】Facebook AI Research发布(PyTorch)序列到序列学习工具集fairseq新版本:实现“Scaling Neural Machin...

1585
来自专栏YoungGy

KD树和LSH局部敏感哈希

文档结构 文档表示 距离度量 KD树 原理 构建 查询 复杂度 KD树的KNN KD树的逼近KNN 不适用高维数据 LSH LSH潜在的问题 LSH算法 复杂度...

2238
来自专栏程序生活

NLP面试-基于矩阵分解的推荐算法(转载)

原文:https://blog.csdn.net/google19890102/article/details/51124556

671
来自专栏大数据挖掘DT机器学习

深度学习、图像识别入门,从VGG16卷积神经网络开始

2644
来自专栏鸿的学习笔记

写给开发者的机器学习指南(四)

查全率是定义由给定查询和数据语料库的算法检索的相关性的大小。因此,给定一组文档和应该返回这些文档的子集的查询,查全率的值表示实际返回了多少相关文档。 此值计算如...

491
来自专栏AI科技大本营的专栏

AI 技术讲座精选:​通过学习Keras从零开始实现VGG网络

Keras代码示例多达数百个。通常我们只需复制粘贴代码,而无需真正理解这些代码。通过学习本教程,您将搭建非常简单的构架,但是此过程会带给您些许好处:您将通过阅读...

3498
来自专栏梦里茶室

西瓜书概念整理(chapter 1-2)熟悉机器学习术语

括号表示概念出现的其他页码, 如有兴趣协同整理,请到issue中认领章节 完整版见我的github:ahangchen 觉得还不错的话可以点个star ^_^ ...

32310

扫码关注云+社区