算法梳理之线性回归
1.机器学习常用名词概念
- 损失函数(loss function):是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的健壮性就越好。一般是针对单个样本i。
- 代价函数(cost function):是定义在整个训练集上面的,是所有样本误差的总和的平均,也就是损失函数总和的平均。
- 目标函数(object function):通俗的理解就是我们所关心的目标与相关影响因素的一种函数关系,等于经验风险+正则化项。
- 正则化:正则化即为对学习算法的修改,旨在减少泛化误差而不是训练误差。
- 过拟合:模型过度学习,导致模型复杂度变高且在测试集上预测集上预测效果不好,这种情况就叫做过拟合(overfitting)。
- 泛化能力: 指机器学习到的模型对未知数据的预测能力。在实际情况中,我们通常通过测试误差来评价学习方法的泛化能力。
2、线性模型
在我们实际生活中普遍存在着变量之间的关系,有确定的和非确定的。确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),比如人的身高和体重,一样的身高体重是不一样的。
线性模型(Linear Model)是机器学习中应用最广泛的模型,指通过样本
特征的线性组合来进行预测的模型。给定一个d维样本[x1, · · · , xd]T,其线性组合函数为
f(x, w) = w0 + w1x1 + w2x2 + · · · + wdxd
= wTx
当只有一个属性时:
当有多个属性时:
矩阵求导:
3、对数几率回归
4、损失函数推导
损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的Φ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θ值。损失函数大致分为两类:分类问题的损失函数和回归问题的损失函数,这里主要探讨回归问题的损失函数。
均方误差:
均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和。
平均绝对值误差(也称L1损失)
平均绝对误差(MAE)是另一种用于回归模型的损失函数。MAE是目标值和预测值之差的绝对值之和。
5、损失函数求解
梯度下降法
6、sklearn中的线性模型
在skearn中,我们可以用sklearn.linear_model来创建线性模型,然后用fit函数去训练模型,然后用predict去预测,还可以用score函数去预测同时计算预测的准确度。
from sklearn.linear_model import LinearRegression
LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)
解释参数含义如下:
1.fit_intercept:布尔值,指定是否需要计算线性回归中的截距,即b值。如果为False,
那么不计算b值。
2.normalize:布尔值。如果为False,那么训练样本会进行归一化处理。
3.copy_X:布尔值。如果为True,会复制一份训练数据。
4.n_jobs:一个整数。任务并行时指定的CPU数量。如果取值为-1,则要使用所有可用的CPU。
用到的方法:
1.fit(X,y):训练模型。
2.predict(X):用训练好的模型进行预测,并返回预测值。
3.score(X,y):返回预测性能的得分。计算公式为:score=(1 - u/v)
其中u=((y_true - y_pred) ** 2).sum(),v=((y_true - y_true.mean()) ** 2).sum()
score最大值是1,但它可能是负值(表示预测效果太差)。score越大,预测性能越好。