监督学习之广义线性模型(最小二乘法)

本文主要搬运的是sklearn中文文档,然后自己又在此基础上补充了一些,欢迎转发学习。

广义线性模型

本章主要讲述一些用于回归的方法,其中目标值 y 是输入变量 x 的线性组合。 数学概念表示为:如果\hat{y} 是预测值,那么有:

                                \hat{y}(w,x) = w_{0}+  w_{1}x_{1}+w_{2}x_{2}+...+w_{p}x_{p}

在整个模块中,我们定义向量 w = (w_{1} , ..., w_{p})作为 coef_ ,定义w_{0} 为 intercept_ 。(coef的英文意思是系数,intercept的英文意思是截断,正好对应着线性回归中的斜率和截距,不过这个斜率是由很多个权重组成的)。

1、普通最小二乘法

主要用到sklearn中的linearRegression类,LinearRegression 拟合一个带有系数的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。其数学表达式为:

                                                        min(\vert \vert Xw - y \vert  \vert _{2}) ^2

如下图所示:

线性模型示例

下面介绍一下sklearn中LinearRegression的用法:

class sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)

参数:

fit_intercept::布尔型,默认为True

说明:是否对训练数据进行中心化,即是否需要b值,若果为False,则不需要。

normalize:布尔型,默认为False

说明:是否对数据进行归一化处理。

copy_X:布尔型,默认为True

说明:是否对X复制,如果选择False,则直接对原数据进行覆盖。(即经过中心化,归一化后,是否把新数据覆盖到原数据上),true则赋值X。

n_jobs :整型, 默认为1

说明:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

属性:

coef_ :数组型变量, 形状为(n_features,)或(n_targets, n_features)

说明:对于线性回归问题计算得到的feature的系数,即权重向量。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组(n_features,)。

intercept_ :数组型变量

说明:线性模型中的独立项,即b值。

singular_ :数组,形状为 (min(X, y),)

说明:矩阵X的奇异值,仅在X为密集矩阵时有效

rank_ : 整型

说明:矩阵X的秩,尽在X为密集矩阵时有效。

方法:

后续练习的时候会遇到,这里先放个截图。

参见Method

方法中参数解读:

fit(X,y,sample_weight=None):目的是拟合这个模型

            X:形状是(n_samples, n_features),是训练数据。

            y:形状是(n_samples, )或者(n_samples, n_targets),是目标值。

            samples_weight : 形状是(n_samples, ),默认值是None,是每个样本的权重。

get_params(deep=True):目的是获得这个estimator的参数值。函数返回是个字典,参数名映射到它们的值。

            deep:布尔类型,默认值为True,如果为真,将返回这个估计器的参数和包含的子对象,这些子对象是估计器。

predict(X) : 目的是利用这个模型进行预测。返回预测值,形状是(n_samples,),返回值是个浮点数。

            X:样本,形状是(n_samples, n_features)

            score(X,y,sample_weight = None):目的是决定系数R^2R^2解释如下:

set_params(**params) : 目的是获得这个评估器的参数,返回的是评估器实例。

            **params:是个字典,里面是评估器参数。


实例:

线性回归官网实例

补充说明:参数return_X_y控制输出数据的结构,若选为True,则将因变量和自变量独立导出

普通最小二乘法的复杂度:

该方法使用 X 的奇异值分解来计算最小二乘解。如果 X 是一个形状为 (n_samples, n_features)的矩阵,设n_{samples} \geq n_{features} ​​ , 则该方法的复杂度为 O(n_{samples} n_{fearures}^2)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容