作者:empty 页数:510 出版社:empty |
scikit-learn(sk learn) 官方文档中文版
1.监督学习1.1.广义线性模型本章主要讲述一些用于回归的方法,其中目标值y是输入变量x的线性组合,数学概念表示为:如果y是预测值,那么有:y(w, z) =wo+w1T 1+.+Wpp在整个模块中, 我们定义向量w=(w 1, 5, wp) 作为coef_, 定义w 0作为intercept_。如果需要使用广义线性模型进行分类, 请参阅logs tic回归.
1.1.1.普通最小二乘法Linear Regression拟合一个带有系数T=(W 1.Wp) 的线性模型, 使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。其数学表达式为:min ll Xw-yll’Linear Regression会调用fit方法来拟合数组X, y, 并且将线性模型的系数w存储在其成员变量coef中:>>>from sk learn import linear_model>>>reg=linear_model.Linear Regression()>>>reg.fit([[6, 0] , [1, 1] , [2, 2] ] , [0, 1, 2] )Linear Regression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)>>>reg.coef_array([e.5,0.5])然而,对于普通最小二乘的系数估计问题,其依赖于模型各项的相互独立性。当各项是相关的,且设计矩阵X的各列近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这种特性导致最小二乘估计对于随机误差非常敏感,可能产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重共线性(multicollinearity) 的情况可能真的会出现。
1.1.1.1.普通最小二乘法的复杂度示例:线性回归示例
该方法使用X的奇异值分解来计算最小二乘解。如果X是一个形状为(n_samples,n_features) 的矩阵, 设n samples≥nr eatures, 则该方法的复杂度为O(n samples n/ear ures)1.1.2.岭回归Ridge回归通过对系数的大小施加惩罚来解决普通最小二乘法的一些问题。岭系数最小化的是带罚项的残差平方和,min lXw-yll+a||w其中,α2U是控制系数收缩量的复杂性参数:xx的值越大,收缩量越大,模型对共线性的鲁棒性也更强。与其他线性模型一样, Ridge用fit方法完成拟合, 并将模型系数w存储在其>>>from sk learn import linear model>>>reg=linear_model.Ridge(alpha=.5)>>>reg.fit([[6, 0] , [e, 8] ,[1,1]],[0,.1,1])Ridge(alpha=B.5, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, random_state=None, solver='auto', to l=0.001)array([0.34545455, 0.34545455] )这种方法与普通最小二乘法的复杂度是相同的.1.1.2.2.设置正则化参数:广义交叉验证Ridge cv通过内置的关于的alpha参数的交叉验证来实现岭回归。该对象与Grid Search CV的使用方法相同, 只是它默认为Generalized Cross-Validation(广义交叉验证GCV) , 这是一种有效的留一验证方法(LOO-CV) :>>>from sk learn import linear_model>s>reg=linear_model.Ridge CV(alphas=[0.1, 1.0, 10.0]>s>reg.fit([[e, e] , [0, 8] , [1, 1] ] , [8, .1, 1] )Ridge CV(alphas=[0.1, 1.0, 10.0] , cv=None, fit_intercept=True, scoring=N指定cv属性的值将触发(通过Grid Search CV的] 交叉验证。例如, cv=10将触发10折的交叉验证, 而不是广义交叉验证(GCV) 。