线性回归-1-线性回归入门

一、线性回归概述

I‘m Linear Regression, One of the most important mathematical models and Mother of Models.

线性回归模型形式简单、易于建模,简单到让人怀疑其是否有研究价值以及使用价值。但实际上,线性回归模型可以说是最重要的数学模型之一,蕴含着机器学习中很多重要的思想,很多功能更强大的非线性模型(nonlinear nodel)都是建立在它的基础之上,可以被称为是“模型之母”

二、简单线性回归

2.1、简单线性回归的定义

在机器学习算法中,算法大体被分为分类回归两种类型,比如kNN算法属于分类(Classification),即label为离散类别型(categorical variable),如:颜色类别、手机品牌、是否患病等。

而线性回归是属于回归(regression),即label为连续数值型(continuous numerical variable),如:房价、股票价格、降雨量等。

那么什么是简单线性回归?

  • 简单,是指只有一个样本特征,即只有一个自变量;
  • 线性,是指方程是线性的;
  • 回归,是指用方程来模拟变量之间是如何关联的。

2.2、简单的小例子

首先引入一个数据源,该数据源中保存了工作年限与薪水的若干条相关信息

income = pd.read_csv(r'./file/Salary_Data.csv')
income.head()

通过seabourn绘制工作年限与收入之间的散点图

# 导入第三方模块
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 绘制散点图
sns.lmplot(x = 'YearsExperience', y = 'Salary', data = income, ci = None, fit_reg=False)
# 显示图形
plt.show()

通过对数据源的可视化会发现工作年限与薪水存在着一定的线性关系,那么我们是否可以画出一条直线,最大程度的拟合样本特征和样本数据标记之间的关系。如下图所示:

sns.lmplot(x = 'YearsExperience', y = 'Salary', data = income, ci = None)
plt.show()

2.3、求解的基本思路

通过上图发现,这条直线是我们初中就学过的一个一次函数 y = ax + b,那么我们如何求出参数ab的值呢?下面是简单的推导过程:

首先,则对于每个样本点x^{(i)},根据我们的直线方程,预测值为:\hat{y}^{(i)}=a x^{(i)}+b

我们所期望的是当选取合适的ab后,直线方程能够尽可能地拟合真实情况,换句话说,就是真实值y^{(i)}与方程得到的预测值\hat{y}^{(i)}之间的差距尽可能的小

这二者直接的值有可能为正也有可能为负,因此使用绝对值来表示二者之间的差距:|y^{(i)}-\hat{y}^{(i)}|

但是在线性回归中,我们需要找极值,需要函数可导,而 y=|x|不是一个处处可导的函数,因此很自然地想到可以使用:(y^{(i)}-\hat{y}^{(i)})^2

考虑所有样本,我们推导出:\sum_{i=1}^{m}\left(y^{(i)}-\hat{y}^{(i)}\right)^{2}
最终我们目标变为:已知训练数据样本x、y ,找到a和b的值,使\sum_{i=1}^{m}\left(y^{(i)}-a{x}^{(i)}-b\right)^{2}尽可能小

2.4、损失函数与风险函数

2.4.1、损失函数

在2.3节的思路中,我们的目的是找到一组参数,使得真实值与预测值之间的差距尽可能地小,也就是损失的部分尽量小。

在机器学习中,我们使用损失函数(loss function)(也有算法是衡量拟合的程度,称函数为效用函数(utility function))来描述没有拟合的部分,损失函数是衡量预测模型预测期望结果表现的指标,用来度量模型一次预测的好坏。损失函数越小,模型的鲁棒性越好。
\sum_{i=1}^{m}\left(y^{(i)}-a{x}^{(i)}-b\right)^{2}

常见的损失函数有一下几种:

  • 0-1损失函数:用来表述分类问题,当预测分类错误时,损失函数值为1,正确为0
  • 平方损失函数:用来描述回归问题,用来表示连续性变量,为预测值与真实值差值的平方。(误差值越大、惩罚力度越强,也就是对差值敏感)L(Y, f(X))=(Y-f(X))^2
  • 绝对损失函数:用在回归模型,用距离的绝对值来衡量L(Y, f(X))=|Y-f(X)|
  • 对数损失函数:是预测值Y和条件概率之间的衡量。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取反。L(Y, f(X))=-\log P(Y | X)

以上损失函数是针对于单个样本的,但是一个训练数据集中存在N个样本,N个样本给出N个损失,如何进行选择呢?

这就引出了风险函数。

2.4.2、风险函数

期望风险:对所有样本预测错误程度的均值【全局】

期望风险是损失函数的期望,用来表达理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失。又叫期望损失/风险函数。期望风险是全局的,基于所有样本点损失函数最小化。期望风险是全局最优,是理想化的不可求的。
R_{e x p}=E_{p}[L(Y, f(X))]=\int_{X \times Y} L(y, f(x)) \cdot P(x, y) d x d y

经验风险:多次预测的错误程度的均值【局部】

模型f(X)关于训练数据集的平均损失,称为经验风险或经验损失。经验风险是局部的,基于训练集所有样本点损失函数最小化。经验风险是局部最优,是现实的可求的。

其公式含义为:模型关于训练集的平均损失(每个样本的损失加起来,然后平均一下)
R_{e x p}=\frac{1}{n} \sum_{i=1}^{n} L(Y, f(X))

经验风险最小的模型为最优模型。在训练集上最小经验风险最小,也就意味着预测值和真实值尽可能接近,模型的效果越好。公式含义为取训练样本集中对数损失函数平均值的最小。

期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本数据集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险

因此很自然地想到用经验风险去估计期望风险。但是由于训练样本个数有限,可能会出现过拟合的问题,即决策函数对于训练集几乎全部拟合,但是对于测试集拟合效果过差。因此需要对其进行矫正

结构风险:经验风险 + 正则项(惩罚项)

R_{s r m}=\frac{1}{n} \sum_{i=1}^{n} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f)

结构风险最小化:当样本容量不大的时候,经验风险最小化容易产生“过拟合”的问题,为了“减缓”过拟合问题,提出了结构风险最小理论。结构风险最小化为经验风险与复杂度同时较小。

通过公式可以看出,结构风险:在经验风险上加上一个正则化项(regularizer),或者叫做罚项(penalty) 。正则化项是J(f)是函数的复杂度再乘一个权重系数(用以权衡经验风险和复杂度)

2.5、参数学习算法的基本思路

对于所有的参数学习模型来说,推导思路大致为:

  1. 通过分析问题,确定问题的损失函数或者效用函数
  1. 然后通过最优化损失函数或者效用函数,获得机器学习的模型

区别在于模型不同,建立的目标函数不同,优化的方式也不同。

2.6、最小二乘法

回归到之前的问题,如何计算\sum_{i=1}^{m}\left(y^{(i)}-a{x}^{(i)}-b\right)^{2}的最小值呢?这里引入最小二乘法的概念

最小二乘法源于法国数学家阿德里安的猜想:

对于测量值来说,让总的误差的平方最小的就是真实值。这是基于,如果误差是随机的,应该围绕真值上下波动。

....推导过程未完待续

最小二乘法得到a、b的表达式:

a=\frac{\sum_{i=1}^{m}\left(x^{i}-\bar{x}\right)\left(y^{i}-\bar{y}\right)}{\sum_{i=1}^{m}\left(x^{(i)}-\bar{x}\right)^{2}} \quad b=\bar{y}-a \bar{x}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容