凡谈机器学习,开山之作必是线性模型。何故?线性是数学表征中最为简单的一种,从而线性模型简单、高效,除了用于初步探索数据分布之外,更是建立机器学习模型中的首选,因为越是简单的模型,泛化性越高,大道至简,所言不虚。本文从数学原理到代码实现,希望能够尽可能的深扒线性模型。
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 普通线性回归
给定数据集
其中:
我们需要学习的模型为: