如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇

Posted 报告,今天也有好好学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇相关的知识,希望对你有一定的参考价值。

为什么我们需要学习线性回归呢?

线性回归是解决回归类问题最常使用的算法模型,其算法思想和基本原理都是由多元统计分析发展而来,但在数据挖掘和机器学习领域中,也是不可多得的行之有效的算法模型。一方面,线性回归蕴藏的机器学习思想非常值得借鉴和学习,并且随着时间发展,在线性回归的基础上还诞生了许多功能强大的非线性模型。

可见,学习线性回归确实非常重要。

1 概述

在正式进入到回归分析的相关算法讨论之前,我们需要对有监督学习算法中的回归问题进行进一步的分析和理解。虽然回归问题和分类问题同属于有监督学习范畴,但实际上,回归问题要远比分类问题更加复杂

首先是关于输出结果的对比,分类模型最终输出结果为离散变量,而离散变量本身包含信息量较少,其本身并不具备代数运算性质,因此其评价指标体系也较为简单,最常用的就是混淆矩阵以及ROC曲线。而回归问题最终输出的是连续变量,其本身不仅能够代数运算,且还具有更"精致"的方法,希望对事物运行的更底层原理进行挖掘。即回归问题的模型更加全面、完善的描绘了事物客观规律,从而能够得到更加细粒度的结论。因此,回归问题的模型往往更加复杂,建模所需要数据所提供的信息量也越多,进而在建模过程中可能遇到的问题也越多。

2 线性回归与机器学习

我们在进行机器学习算法学习过程中,仍然需要对线性回归这个统计分析算法进行系统深入的学习。但这里需要说明的是,线性回归的建模思想有很多理解的角度,此处我们并不需要从统计学的角度来理解、掌握和应用线性回归算法,很多时候,利用机器学习的思维来理解线性回归,会是一种更好的理解方法,这也将是我们这部分内容讲解线性回归的切入角度。

3 线性回归的机器学习表示方法

3.1 核心逻辑

任何机器学习算法首先都有一个最底层的核心逻辑,当我们在利用机器学习思维理解线性回归的时候,首先也是要探究其底层逻辑。值得庆辛的是,虽然线性回归源于统计分析,但其算法底层逻辑和机器学习算法高度契合。

在给定n个属性描绘的客观事物 z = ( x 1 , x 2 , . . . , x n ) z=(x_1,x_2,...,x_n) z=(x1,x2,...,xn)中,每个 都用于描绘某一次观测时事物在某个维度表现出来的数值属性值。当我们在建立机器学习模型捕捉事物运行的客观规律时,本质上是希望能够综合这些维度的属性值来描绘事物最终运行结果,而最简单的综合这些属性的方法就是对其进行加权求和汇总,这即是线性回归的方程式表达形式: y ^ = w 0 + w 1 x i 1 + w 2 x i 2 + . . . + + w n x i n \\hat y=w_0+w_1x_{i1}+w_2x_{i2}+...++w_nx_{in} y^=w0+w1xi1+w2xi2+...++wnxin w w w被统称为模型的参数,其中 w 0 w_0 w0被称为截距(intercept), w 1 w_1 w1~ w n w_n wn被称为回归系数(regression coeffiffifficient),有时也是使用 β \\beta β或者 θ \\theta θ来表示。这个表达式,其实就和我们小学时就无比熟悉的 y = a x + b y=ax+b y=ax+b是同样的性质。其中 x i 1 x_{i1} xi1是我们的目标变量,也就是标签。 是样本 i i i上的特征不同特征。如果考虑我们有m个样本,则回归结果可以被写作: y ^ = w 0 + w 1 x 1 + w 2 x 2 + . . . + + w n x n \\hat y=w_0+w_1x_{1}+w_2x_{2}+...++w_nx_{n} y^=w0+w1x1+w2x2+...++wnxn其中 y y y是包含了m个全部的样本的回归结果的列向量(结构为(m,1),由于只有⼀列,以列的形式表示,所以叫做列向量)。注意,我们通常使用粗体的小写字母来表示列向量,粗体的大写字母表示矩阵或者行列式。我们可以使用矩阵来表示这个方程,其中 可以被看做是⼀个结构为(n+1,1)的列矩阵, 是⼀个结构为(m,n+1)的特征矩阵,则有: [ y ^ 1 y ^ 2 y ^ 3 . . . y ^ m ] = [ 1 x 11 x 12 x 13 . . . x 1 n 1 x 21 x 22 x 23 . . . x 2 n 1 x 31 x 32 x 33 . . . x 3 n . . . 1 x m 1 x m 2 x m 3 . . . x m n ] ∗ [ w ^ 1 w ^ 2 w ^ 3 . . . w ^ n ] \\begin{bmatrix} \\hat y_1 \\\\ \\hat y_2 \\\\ \\hat y_3 \\\\ ... \\\\ \\hat y_m \\\\ \\end{bmatrix}=\\begin{bmatrix} 1 & x_{11} & x_{12} & x_{13} & ... & x_{1n} \\\\ 1 & x_{21} & x_{22} & x_{23} & ... & x_{2n} \\\\ 1 & x_{31} & x_{32} & x_{33} & ... & x_{3n} \\\\ ... \\\\ 1 & x_{m1} & x_{m2} & x_{m3} & ... & x_{mn}\\end{bmatrix} * \\begin{bmatrix} \\hat w_1 \\\\ \\hat w_2 \\\\ \\hat w_3 \\\\ ... \\\\ \\hat w_n \\\\ \\end{bmatrix} y^1y^2y^3...y^m=111...1x11x21x31xm1x12x22x32xm2x13x23x33xm3............x1nx2nx3nx以上是关于如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇的主要内容,如果未能解决你的问题,请参考以下文章

机器学习经典算法源码分析系列-- 线性回归

机器学习系列6 使用Scikit-learn构建回归模型:简单线性回归多项式回归与多元线性回归

sklearn实现一元线性回归 Python机器学习系列

机器学习算法概述第一章——线性回归

机器学习笔记—指数分布簇和广义线性模型

机器学习100天:011 回归模型评估指标