从原理到代码之线性模型

凡谈机器学习,开山之作必是线性模型。何故?线性是数学表征中最为简单的一种,从而线性模型简单、高效,除了用于初步探索数据分布之外,更是建立机器学习模型中的首选,因为越是简单的模型,泛化性越高,大道至简,所言不虚。本文从数学原理到代码实现,希望能够尽可能的深扒线性模型。

1. 背景引入

机器学习模型中有用于回归的,有用于分类的,二者区别:回归预测的指标值为连续值,分类预测的类别值为离散值。可以用如下例子做一个形象解释:

回归问题:根据父母双方的身高,预测孩子的身高(预测值Υ为连续值)

样本编号        父亲身高(cm)(Χ1)   母亲身高(cm)(Χ2)   孩子身高(cm)(Υ)  
0   175.4   163.2   174.7  
1   168.2   170.8   182.8  
2   170.5   155.6   168.3  

 

 

 

 

 

分类问题:根据适龄男青年的条件(“是/有”用“1”表示,“否/无”用“0”表示),预测有无女朋友(预测值Υ为离散值)

样本编号        身高(cm)(Χ1)   颜值(满分10分)(Χ2)   财富(万RMB)(Χ3)   是否从事IT行业(Χ4)   有无女朋友(Υ)  
0   174.5   8   40   1   0  
1   162.5   4   4000   0   1  
2   188.3   7   30   0   0  
3   176.8   6   80   1   1  

 

 

 

 

 

 

按照上述表格,每一行是一个样本,每一列是一维特征。线性模型既可以用于回归问题,又可以用于分类问题,其本质是找到与特征x1,x2等对应的权重参数Θ1,Θ2等,之后进行线性组合,即建立如下数学表达式(其中Θ0为偏置项),从而预测y值。权重参数表征每个特征在预测中的重要性。

从原理到代码之线性模型

2. 概述

给定样本

从原理到代码之线性模型

,我们用列向量表示该样本

从原理到代码之线性模型

样本有n种特征,我们用x(i)表示样本

从原理到代码之线性模型

的第i个特征。线性模型的形式为:

从原理到代码之线性模型

其中:

从原理到代码之线性模型

称为权重向量,其中每个分量是每个特征对应的权重,直观地表达了各个特征在预测中的重要性。

“线性”本质是一系列一次特征的线性组合,在二维空间中是一条直线,在三维空间中是一个平面,推广至n维空间,可以理解为广义线性模型,常见的包括岭回归、lasso回归、Elastic Net、逻辑回归、线性判别分析等。

3. 原理

3.1 普通线性回归

给定数据集

从原理到代码之线性模型

其中:

从原理到代码之线性模型

我们需要学习的模型为:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxwdd.html