提交 5f27c820 编写于 作者: B barrycg

proofread files in Linear-Models

上级 2691f7c6
......@@ -2,13 +2,13 @@
# 分类特征稀疏的文本
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
这个例子展示了如何使用scikit-learn使用单词包方法根据主题对文档进行分类。本例使用scipy.sparse矩阵来存储特征,并演示各种能够有效处理稀疏矩阵的分类器。
这个例子展示了如何使用scikit-learn中的单词包方法,根据主题对文档进行分类。本例使用scipy.sparse中的矩阵来存储特征,并演示各种能够有效处理稀疏矩阵的分类器。
本例中使用的数据集是20条新闻组数据集。它将自动下载,并进行缓存。
本例中使用的数据集是20条新闻组数据集。通过scikit-learn可以自动下载该数据集,并进行缓存。
条形图表示每个分类器的精度、训练时间(已归一化)和测试时间(已归一化)。
下述条形图展示了各个不同分类器,其信息包括精度、训练时间(已归一化)和测试时间(已归一化)。
```python
......
......@@ -2,9 +2,9 @@
# Lasso和Elastic Net(弹性网络)在稀疏信号上的表现
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
价Lasso和弹性网络在手动生成的附加噪声的稀疏信号上的表现。并将估计系数与真实值进行了比较。
估了Lasso回归模型和弹性网络回归模型在手动生成的,并附加噪声的稀疏信号上的表现,并将回归系数与真实值进行了比较。
```python
......
......@@ -2,11 +2,11 @@
# Lasso和Elastic Net(弹性网络)
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
使用坐标下降实现Lasso和Elastic Net(弹性网络)(L1和L2罚项)。
系数可以强制设定为正。
回归系数可以被强制设定为正。
```python
......
# Lasso模型选择:交叉验证/ AIC / BIC
# Lasso模型选择:交叉验证 / AIC / BIC
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
本示例利用Akaike信息判据(AIC)、Bayes信息判据(BIC)和交叉验证,来选择Lasso估计器正则化参数alpha的最优值。
本示例利用Akaike信息判据(AIC)、Bayes信息判据(BIC)和交叉验证,来筛选Lasso回归的正则化项参数alpha的最优值。
用LassoLarsIC得到的结果是基于AIC/BIC判据的。
通过LassoLarsIC得到的结果,是基于AIC/BIC判据的。
基于信息判据的模型(AIC/BIC)选择非常快,但它依赖于对自由度的正确估计,它假设模型是正确,对大样本(渐近结果)进行推导,也就是数据实际上是由该模型生成的。当问题条件很差时(特征数大于样本数时),它会崩溃。
这种基于信息判据(AIC/BIC)的模型选择非常快,但它依赖于对自由度的正确估计。该方式的假设模型必需是正确, 而且是对大样本(渐近结果)进行推导,即,数据实际上是由该模型生成的。当问题的背景条件很差时(特征数大于样本数),该模型选择方式会崩溃。
对于交叉验证,我们使用20的2种算法来计算Lasso路径:LassoCV类实现的坐标下降和LassoLarsCV类实现的最小角度回归(Lars)。这两种算法给出的结果大致相同,但它们在执行速度和数值误差来源方面有所不同。
对于交叉验证,我们使用20-fold的2种算法来计算Lasso路径:LassoCV类实现的坐标下降和LassoLarsCV类实现的最小角度回归(Lars)。这两种算法给出的结果大致相同,但它们在执行速度和数值误差来源方面有所不同。
Lars仅为路径中的每个弯折计算路径解决方案。因此,当只有很少的扭结时,也就是当只有很少的特征或样本时,它是非常有效的。此外,它能够计算完整的路径,而不需要设置任何元参数。与它相反的是,坐标下降算法计算预先指定的网格上的路径点(本示例中我们使用缺省值)。因此,如果网格点的数量小于路径中的扭结的数量,则效率更高。如果特征数量非常大,并且有足够的样本来选择大量特征,那么这种策略就非常有趣。在数值误差方面,Lars会对相关程度高的变量积累更多的误差,而坐标下降算法只会在网格上采样路径。
Lars仅为路径中的每个拐点计算路径解决方案。因此,当只有很少的弯折时,也就是很少的特征或样本时,它是非常有效的。此外,它能够计算完整的路径,而不需要设置任何元参数。与之相反,坐标下降算法计算预先指定的网格上的路径点(本示例中我们使用缺省值)。因此,如果网格点的数量小于路径中的拐点的数量,则效率更高。如果特征数量非常大,并且有足够的样本来选择大量特征,那么这种策略就非常有趣。在数值误差方面,Lars会因变量间的高相关度而积累更多的误差,而坐标下降算法只会采样网格上路径。
注意观察alpha的最优值是如何随着每个fold而变化的。这说明了为什么在尝试评估通过交叉验证选择参数的方法的性能时需要交叉验证:这种参数的选择对于不可见的数据可能不是最优的。
注意观察alpha的最优值是如何随着每个fold而变化。这是为什么当估交叉验证选择参数的方法的性能时,需要使用嵌套交叉验证的原因:这种参数的选择对于不可见数据可能不是最优的。
```python
......
......@@ -2,10 +2,9 @@
# 多任务Lasso实现联合特征选择
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
多任务lasso允许在多个回归问题上完成训练,并在多个任务之间强制选择相同的特征。这个示例模拟了连续的测量,每个时刻都是一个任务,并且相关的特征数值随着时间变化趋势相同。多任务lasso强制要求在一个时间点选择的特征适用于所有时间点。这使得多任务LASSO的特征选择更加稳定。
>校验者:[@barrycg](https://github.com/barrycg)
多任务lasso允许多元回归问题上进行合并训练,并在多个任务间强制选择相同的特征。这个示例模拟了部分序列测量,每个任务都是即时的,并且相关的特征幅值趋向相同时,又会随时间变化而震动。多任务lasso强制要求在一个时间点选择的特征必需适用于所有时间点。这使得多任务LASSO的特征选择更加稳定。
```python
import matplotlib.pyplot as plt
......
......@@ -2,23 +2,27 @@
# 线性回归
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
本例仅使用糖尿病数据集的第一个特征,来展示线性回归在二维数据上的表现。线性回归确定一个界限(即图中直线),目标是使得数据集中的实际值与线性回归预测值之间的残差平方和最小。
本例仅使用`糖尿病数据集`的第一个特征,来展示线性回归在二维空间上的表现。下图中的直线, 即是线性回归所确定的一个界限,其目标是使得数据集中的实际值与线性回归所得的预测值之间的残差平方和最小。
计算了系数、残差平方和和方差分数。
同时也计算了回归系数、残差平方和以及解释方差得分,来判断该线性回归模型的质量。
> *原文解释和代码不符合*:
>>实际上计算了回归系数, 均方误差(MSE),判定系数(r2_score)
>>>判定系数和解释方差得分并不绝对相等,当实际值和预测值之间的误差均值为0时,两者相同,否则数值上有着略微误差。均方误差和残差平方和虽然都是定义预测值和实际值的偏离关系,但是数值大小的差距较大。
>>>> 解释方差得分函数: explained_variance_score()。
```python
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score,explained_variance_score
from sklearn.metrics import mean_squared_error, r2_score, explained_variance_score
```
```python
# 加载数据集
# 加载糖尿病数据集
diabetes = datasets.load_diabetes()
```
......@@ -54,14 +58,16 @@ diabetes_y_pred = regr.predict(diabetes_X_test)
```python
# 评价预测结果
print('回归系数(coef_):', regr.coef_)
print("均方残差(MSE): %.2f"% mean_squared_error(diabetes_y_test, diabetes_y_pred))
print('解释方差得分(r2_score): %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
print("均方误差(MSE): %.2f"% mean_squared_error(diabetes_y_test, diabetes_y_pred))
print('判断系数(r2_score): %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
# 额外增加
print('解释方差得分(explained_variance_score): %.2f' % explained_variance_score(diabetes_y_test, diabetes_y_pred))
```
回归系数(coef_): [938.23786125]
均方差(MSE): 2548.07
解释方差得分(r2_score): 0.47
均方差(MSE): 2548.07
判断系数(r2_score): 0.47
解释方差得分(explained_variance_score): 0.53
```python
......
......@@ -2,13 +2,15 @@
# 岭系数对回归系数的影响
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
展示了估计量系数的共线性效应
本实例展示了回归模型系数间的共线性
岭回归是本例中使用的预测模型。每种颜色表示系数向量的不同特征,岭系数alpha是正则化参数。这个例子还显示了将岭回归应用于高病态矩阵的有效性。对于这样的矩阵,目标变量的微小变化会导致计算权重的巨大差异。在这种情况下,设置一定的正则化(alpha)来减少这种变化(噪声)是有用的
`岭回归` 是本例中使用的预测模型。每种颜色都分别表示不同特征下的回归系数向量,岭系数alpha是正则化项的参数。下图表示了岭系数作为变量参数,回归系数在岭回归模型中的变化
当alpha很大时,正则化效应是平方损失函数的主要影响因素,岭系数趋于零。在路径的末端,当alpha趋近零且解趋向于普通最小二乘时,岭系数表现出较大的波动。在实践中,有必要对alpha进行调优,以便在两者之间保持平衡。
这个例子还显示了将岭回归应用于高病态矩阵的有效性。在高病态矩阵中,一些变量的微小变化会导致计算权重(回归系数)的巨大差异。在这种情况下,设置一个确定的正则化项(alpha)可以减少这种不良差异(噪声)。
当alpha很大时,正则化项是平方损失函数的主要影响因子,回归系数的影响趋于零。在路径的末端,当alpha趋近零时,损失函数会慢慢变成普通最小二乘,回归系数表现出较大的波动。在实践中,有必要对alpha进行调优,以便在两者之间保持平衡。
......
......@@ -2,15 +2,15 @@
# 压缩感知_断层重建
>翻译者:[@Loopy](https://github.com/loopyme)
>校验者:未完成校验
>校验者:[@barrycg](https://github.com/barrycg)
这个例子从一组沿不同角度获得的平行投影来重建图像。这样的数据集是在CT中获得的。
这个例子展示了从一组沿不同角度获得的平行投影来重建图像的过程。这样的数据集是在CT(计算机断层扫描)中获得的。
在没有任何样本得先验信息的情况下,重建图像所需的投影数与图像的线性大小l(以像素为单位)相同。为了简单起见,我们在这里考虑一个稀疏图像,其中只有对象边界上的像素具有非零值(例如:这些数据可以对应于细胞材料)。但是请注意,大多数图像在不同的基础上是稀疏的,比如方波。只获得了l/7的投影,因此有必要利用关于样品的现有信息(稀疏性):这是压缩感知的一个例子。
在没有任何样本得先验信息的情况下,重建图像所需的投影数与图像的线性大小l(以像素为单位)相同。为了简单起见,我们在这里考虑稀疏图像,其中只有对象边界上的像素具有非零值(例如:这些数据可以对应于细胞材料)。但是请注意,大多数图像在不同的基(basis)上是稀疏的,比如Haar小波 。只获得了l/7的投影,因此有必要利用关于样品的现有信息(稀疏性):这是压缩感知的一个例子。
层析投影操作是一个线性变换。除了与线性回归对应的数据保真项外,我们还对图像的L1范数进行了惩罚,以解释其稀疏性。由此产生的优化问题称为套索。我们使用类sklearn.linear_model.Lasso,它是使用坐标下降算法实现的。重要的是,这种算法在稀疏矩阵上的计算效率比这里使用的投影运算更高。
层析投影操作是一种线性变换。除了线性回归对应的数据保真项外,我们还对图像的L1范数进行了惩罚,以解释其稀疏性。由此产生的优化问题称为Lasso。我们使用类sklearn.linear_model.Lasso,它是使用坐标下降算法实现的。重要的是,这种在稀疏阵上算法的计算效率比这里投影算子更高。
即使在投影中添加了噪声,L1罚项重建得到的结果也会是零误差(所有像素都被成功地标记为0或1)。相比之下,L2罚项(sklearn.linear_model.Ridge)会产生大量标记错误,也就是在重构图像上会观察到伪影,这与L1罚项相反。特别要注意的是在角上分隔像素的圆形伪影,它造成的投影比中央部分少。
即使在投影中添加了噪声,L1罚项重建得到的结果也会是零误差(所有像素都被成功地标记为0或1)。相比之下,L2罚项(sklearn.linear_model.Ridge)会产生大量标记错误,也就是在重构图像上会观察到伪影,这与L1罚项相反。特别要注意的是,角落里分隔像素的圆形伪影所形成的投影比中央部分少。
```python
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册