在写线性模型之前,我先概述下普通的最小二乘法。
一、最小二乘法
最小二乘法就是普通的无约束优化问题,具体请看吴立德教授的 https://www.bilibili.com/video/av10289610/?p=17.
有了最小二乘法的概念,我们再来看看机器学习中的线性模型。
二、线性模型
由于线性模型的函数是凸函数,所以它的最优化解的一阶充分必要条件为一阶导数为0。
三、LinearRegression
有了原理之后,我再向大家介绍使用sklearn中的LinearRegression。一个简单的例子如下。
>>> from sklearn import linear_model
>>> reg = linear_model.LinearRegression()
>>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
>>> reg.coef_
array([ 0.5, 0.5])
下面我对LinearRegression的参数进行如下说明:
Parameters :
fit_intercept : boolean, optional, default True
模型是否使用截距,也就是模型中的独立变量b。值默认为True,如果值为False,则不会计算截距。
normalize : boolean, optional, default False
数据样本X在训练之前是否需要标准化,如果 fit_intercept = False,则此参数忽略。标准化的原理和
sklearn.preprocessing.StandardScaler一样。
copy_X : boolean, optional, default True
当值为True的时候,即可保证训练过程不会修改原来的数据样本,否则有可能修改原来的数据样本。
n_jobs : int, optional, default 1
计算时使用的CPU数目。
Attributes:
coef_ : array, shape (n_features, ) or (n_targets, n_features)
线性回归的参数,即模型中的W。
intercept_ : array
截距,即模型中的独立变量b
Methods:
fit
(X, y[, sample_weight])
拟合模型,即利用数据样本训练,得到模型的参数。
predict
(X)
对输入的新数据样本进行回归预测。
score
(X, y[, sample_weight])
返回模型在数据样本X、y上的得分。得分计算公式R2定义。
以上就是这次的线性模型的内容。