python 广义线性模型_【Scikit-Learn 中文文档】广义线性模型 - 监督学习 - 用户指南 | ApacheCN...

下面是一组用于回归的方法,其中目标期望值 y是输入变量 x 的线性组合。 在数学概念中,如果

是预测值 value.

在整个模块中,我们定义向量

作为coef_定义

作为intercept_.

如果需要使用广义线性模型进行分类,请参阅logistic 回归.logistic 回归.

的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。其数学表达式为:

LinearRegression会调用fit方法来拟合数组 X, y,并且将线性模型的系数

存储在其成员变量``coef_``中:

>>>

>>>fromsklearnimportlinear_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])

然而,对于普通最小二乘的系数估计问题,其依赖于模型各项的相互独立性。当各项是相关的,且设计矩阵

的各列近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这会导致最小二乘估计对于随机误差非常敏感,产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重共线性(multicollinearity) 的情况可能真的会出现。

举例:

该方法使用 X 的奇异值分解来计算最小二乘解。如果 X 是一个 size 为 (n, p) 的矩阵,设

,则该方法花费的成本为

Ridge回归通过对系数的大小施加惩罚来解决普通最小二乘法(普通最小二乘)的一些问题。 岭系数最小化一个带罚项的残差平方和,

其中,

是控制收缩量复杂性的参数:

, 的值越大,收缩量越大,因此系数对共线性变得更加鲁棒。

与其他线性模型一样,Ridge采用fit将采用其

存储在其coef_成员中:

>>>

>>>fromsklearnimportlinear_model>>>reg=linear_model.Ridge(alpha=.5)>>>reg.fit([[0,0],[0,0],[1,1]],[0,.1,1])Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, random_state=None, solver='auto', tol=0.001)>>>reg.coef_array([ 0.34545455,  0.34545455])>>>reg.intercept_0.13636...

举例:

:ref:`sphx_glr_auto_examples_linear_model_plot_ridge_path.py`( 作为正则化的函数,绘制岭系数 )

:ref:`sphx_glr_auto_examples_text_document_classification_20newsgroups.py`( 使用稀疏特征的文本文档分类 )

这种方法与普通最小二乘法(普通最小二乘方法)的复杂度是相同的.

RidgeCV通过内置的 Alpha 参数的交叉验证来实现岭回归。 该对象与 GridSearchCV 的使用方法相同,只是它默认为 Generalized Cross-Validation(广义交叉验证 GCV),这是一种有效的留一验证方法(LOO-CV):

>>>

>>>fromsklearnimportlinear_model>>>reg=linear_model.RidgeCV(alphas=[0.1,1.0,10.0])>>>reg.fit([[0,0],[0,0],[1,1]],[0,.1,1])RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,normalize=False)>>>reg.alpha_0.1

参考

“Notes on Regularized Least Squares”, Rifkin & Lippert (technical report,course slides).

TheLasso是估计稀疏系数的线性模型。 它在一些情况下是有用的,因为它倾向于使用具有较少参数值的情况,有效地减少给定解决方案所依赖变量的数量。 因此,Lasso及其变体是压缩感知领域的基础。 在一定条件下,它可以恢复一组非零权重的精确集 (见Compressive sensing: tomography reconstruction with L1 prior (Lasso)).

在数学上,它由一个线性模型组成,以

为准。 其目标函数的最小化是:

lasso estimate 解决了加上罚项

的最小二乘法的最小化,其中,

是一个常数,

是参数向量的

-norm 范数。

Lasso类的实现使用了 coordinate descent (坐标下降算法)来拟合系数。 查看最小角回归用于另一个实现:

>>>

>>>fromsklearnimportlinear_model>>>reg=linear_model.Lasso(alpha=0.1)>>>reg.fit([[0,0],[1,1]],[0,1])Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,normalize=False, positive=False, precompute=False, random_state=None,selection='cyclic', tol=0.0001, warm_start=False)>>>reg.predict([[1,1]])array([ 0.8])

对于较低级别的任务,同样有用的是:func:lasso_path。它能够通过搜索所有可能的路径上的值来计算系数。

举例:

Note

Feature selection with Lasso(使用 Lasso 进行 Feature 的选择)

由于 Lasso 回归产生稀疏模型,因此可以用于执行特征选择,详见基于 L1 的特征选取(基于L1的特征选择).

alpha参数控制估计系数的稀疏度。

scikit-learn 通过交叉验证来公开设置 Lassoalpha参数的对象:LassoCVandLassoLarsCV。LassoLarsCV是基于下面解释的 :ref:`least_angle_regression`(最小角度回归)算法。

对于具有许多线性回归的高维数据集,LassoCV最常见。 然而,LassoLarsCV在寻找alphaparameter 参数值上更具有优势,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值