logo资料库

scikit-learn 0.19 中文文档.pdf

第1页 / 共456页
第2页 / 共456页
第3页 / 共456页
第4页 / 共456页
第5页 / 共456页
第6页 / 共456页
第7页 / 共456页
第8页 / 共456页
资料共456页,剩余部分请下载后查看
scikit-learn 0.19 中文文档
用户指南
1. 监督学习
1.1. 广义线性模型
1.2. 线性和二次判别分析
1.3. 内核岭回归
1.4. 支持向量机
1.5. 随机梯度下降
1.6. 最近邻
1.7. 高斯过程
1.8. 交叉分解
1.9. 朴素贝叶斯
1.10. 决策树
1.11. 集成方法
1.12. 多类和多标签算法
1.13. 特征选择
1.14. 半监督学习
1.15. 等式回归
1.16. 概率校准
1.17. 神经网络模型(有监督)
2. 无监督学习
2.1. 高斯混合模型
2.2. 流形学习
2.3. 聚类
2.4. 双聚类
2.5. 分解成分中的信号(矩阵分解问题)
2.6. 协方差估计
2.7. 经验协方差
2.8. 收敛协方差
2.9. 稀疏逆协方差
2.10. Robust 协方差估计
2.11. 新奇和异常值检测
2.12. 密度估计
2.13. 神经网络模型(无监督)
3. 模型选择和评估
3.1. 交叉验证:评估估算器的表现
3.2. 调整估计器的超参数
3.3. 模型评估: 量化预测的质量
3.4. 模型持久化
3.5. 验证曲线: 绘制分数以评估模型
4. 数据集转换
4.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
4.2. 特征提取
4.3. 预处理数据
4.4. 无监督降维
4.5. 随机投影
4.6. 内核近似
4.7. 成对的矩阵, 类别和核函数
4.8. 预测目标 (y) 的转换
5. 数据集加载工具
6. 大规模计算的策略: 更大量的数据
7. 计算性能
教程
使用 scikit-learn 介绍机器学习
关于科学数据处理的统计学习教程
机器学习: scikit-learn 中的设置以及预估对象
监督学习:从高维观察预测输出变量
模型选择:选择估计量及其参数
无监督学习: 寻求数据表示
把它们放在一起
寻求帮助
处理文本数据
选择正确的评估器(estimator)
外部资源,视频和谈话
1.1. 广义线性模型 校验者: @专业吹牛逼的小明 @Gladiator 翻译者: @瓜牛 @年纪大了反应慢了 @Hazekiah @BWM-蜜蜂 下面是一组用于回归的方法,其中目标期望值 y是输入变量 x 的线性组合。 在数学概念中,如果 是预测值 value. 在整个模块中,我们定义向量 作为 coef_ 定义 作为 intercept_. 如果需要使用广义线性模型进行分类,请参阅 logistic 回归 . logistic 回归. 1.1.1. 普通最小二乘法 LinearRegression 适合一个带有系数 据(估计值)之间的残差平方和最小。其数学表达式为: 的线性模型,使得数据集实际观测数据和预测数 LinearRegression 会调用 fit 方法来拟合数组 X, y,并且将线性模型的系数 ``coef_``中: 存储在其成员变量 >>> 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]) 然而,对于普通最小二乘的系数估计问题,其依赖于模型各项的相互独立性。当各项是相关的,且 设计矩阵 的各列近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这会导致最小二乘估计对于 随机误差非常敏感,产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重共 线性(multicollinearity) 的情况可能真的会出现。 举例: Linear Regression Example 1.1.1.1. 普通最小二乘法复杂度 该方法使用 X 的奇异值分解来计算最小二乘解。如果 X 是一个 size 为 (n, p) 的矩阵,设 则该方法花费的成本为 , 1.1.2. 岭回归 Ridge 回归通过对系数的大小施加惩罚来解决 普通最小二乘法 (普通最小二乘)的一些问题。 岭系数 最小化一个带罚项的残差平方和, 其中, 鲁棒。 是控制收缩量复杂性的参数: , 的值越大,收缩量越大,因此系数对共线性变得更加 与其他线性模型一样, Ridge 采用 fit 将采用其 存储在其 coef_ 成员中: >>> from sklearn import linear_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`( 使用稀疏特征 的文本文档分类 ) 1.1.2.1. 岭回归的复杂度 这种方法与 普通最小二乘法 (普通最小二乘方法)的复杂度是相同的. 1.1.2.2. 设置正则化参数:广义交叉验证 RidgeCV 通过内置的 Alpha 参数的交叉验证来实现岭回归。 该对象与 GridSearchCV 的使用方法相 同,只是它默认为 Generalized Cross-Validation(广义交叉验证 GCV),这是一种有效的留一验证方 法(LOO-CV): >>> from sklearn import linear_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). 1.1.3. Lasso The Lasso 是估计稀疏系数的线性模型。 它在一些情况下是有用的,因为它倾向于使用具有较少参 数值的情况,有效地减少给定解决方案所依赖变量的数量。 因此,Lasso及其变体是压缩感知领域 的基础。 在一定条件下,它可以恢复一组非零权重的精确集 (见 Compressive sensing: tomography reconstruction with L1 prior (Lasso)).
在数学上,它由一个线性模型组成,以 为准。 其目标函数的最小化是: lasso estimate 解决了加上罚项 数向量的 -norm 范数。 的最小二乘法的最小化,其中, 是一个常数, 是参 Lasso 类的实现使用了 coordinate descent (坐标下降算法)来拟合系数。 查看 最小角回归 用于另 一个实现: >>> from sklearn import linear_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。它能够通过搜索所有可能的路径上的值来计 算系数。 举例: Lasso and Elastic Net for Sparse Signals (稀疏信号的套索和弹性网) Compressive sensing: tomography reconstruction with L1 prior (Lasso) (压缩感知:L1先验 (Lasso)的断层扫描重建) Note Feature selection with Lasso(使用 Lasso 进行 Feature 的选择) 由于 Lasso 回归产生稀疏模型,因此可以用于执行特征选择,详见 基于 L1 的特征选取 (基于L1的 特征选择). 1.1.3.1. 设置正则化参数 alpha 参数控制估计系数的稀疏度。 1.1.3.1.1. 使用交叉验证 scikit-learn 通过交叉验证来公开设置 Lasso alpha 参数的对象: LassoCV and LassoLarsCV。 LassoLarsCV 是基于下面解释的 :ref:`least_angle_regression`(最小角度回归)算法。
对于具有许多线性回归的高维数据集, LassoCV 最常见。 然而,LassoLarsCV 在寻找 alpha parameter 参数值上更具有优势,而且如果样本数量与特征数量相比非常小时,通常 LassoLarsCV 比 LassoCV 要快。 1.1.3.1.2. 基于信息标准的模型选择 有多种选择时,估计器 LassoLarsIC 建议使用 Akaike information criterion (Akaike 信息准则) (AIC)和 Bayes Information criterion (贝叶斯信息准则)(BIC)。 当使用 k-fold 交叉验证时, 正则化路径只计算一次而不是k + 1次,所以找到α的最优值是一种计算上更便宜的替代方法。 然 而,这样的标准需要对解决方案的自由度进行适当的估计,对于大样本(渐近结果)导出,并假设 模型是正确的,即数据实际上是由该模型生成的。 当问题严重受限(比样本更多的特征)时,他们 也倾向于打破。 举例: :ref:`sphx_glr_auto_examples_linear_model_plot_lasso_model_selection.py`(Lasso 型号选 择:交叉验证/AIC/BIC) 1.1.3.1.3. 与 SVM 的正则化参数的比较 根据估计器和模型优化的精确目标函数,在 alpha 和 SVM 的正则化参数之间是等值的,其中 C 是通
过 alpha = 1 / C 或者 alpha = 1 / (n_samples * C) 得到的。 1.1.4. 多任务 Lasso MultiTaskLasso 是一个估计多元回归稀疏系数的线性模型: y 是一个 (n_samples, n_tasks) 的二 维数组,其约束条件和其他回归问题(也称为任务)是一样的,都是所选的特征值。 下图比较了通过使用简单的 Lasso 或 MultiTaskLasso 得到的 W 中非零的位置。 Lasso 估计分散的 产生着非零值,而 MultiTaskLasso 的所有列都是非零的。 拟合 time-series model ( 时间序列模型 ),强制任何活动的功能始终处于活动状态。 举例: Joint feature selection with multi-task Lasso (联合功能选择与多任务Lasso) 在数学上,它由一个线性模型组成,以混合的 作为正则化器进行训练。目标函数最小化是: 其中 表示 Frobenius 标准: 并且 读取为: MultiTaskLasso 类中的实现使用了坐标下降作为拟合系数的算法。 1.1.5. 弹性网络
弹性网络 是一种使用L1,L2范数作为先验正则项训练的线性回归模型。 这种组合允许学习到一个只有 少量参数是非零稀疏的模型,就像 Lasso 一样, 但是它仍然保持 一些像 Ridge 的正则性质。我们可利 用 l1_ratio 参数控制L1和L2的凸组合。 弹性网络在很多特征互相联系的情况下是非常有用的。Lasso很可能只随机考虑这些特征中的一 个,而弹性网络更倾向于选择两个。 在实践中,Lasso 和 Ridge 之间权衡的一个优势是它允许在循环过程(Under rotate)中继承 Ridge 的稳定性。 在这里,最小化的目标函数是 ElasticNetCV 类可以通过交叉验证来设置参数 alpha ( ) 和 l1_ratio ( ) 。 Examples: Lasso and Elastic Net for Sparse Signals Lasso and Elastic Net 1.1.6. 多任务弹性网络 MultiTaskElasticNet 是一个对多回归问题估算稀疏参数的弹性网络: Y 是一个二维数组,形状是 (n_samples,n_tasks)。 其限制条件是和其他回归问题一样,是选择的特征,也称为 tasks.。 从数学上来说, 它包含一个用 先验 and 先验为正则项训练的线性模型 目标函数就是最小化: 在 MultiTaskElasticNet 类中的实现采用了坐标下降法求解参数。 在 MultiTaskElasticNetCV 中可以通过交叉验证来设置参数 alpha ( ) 和 l1_ratio ( ) 。 1.1.7. 最小角回归 最小角回归 (LARS) 是对高维数据的回归算法, 由Bradley Efron, Trevor Hastie, Iain Johnstone 和 Robert Tibshirani开发完成。 LARS和逐步回归很像。 在每一步,它寻找与响应最有关联的 预测。 当有很多预测由相同的关联时,它没有继续利用相同的预测,而是在这些预测中找出应该等角的方 向。
分享到:
收藏