提交 0294e4e0 编写于 作者: L loopyme

remove other files

上级 3a65e576

要显示的变更太多。

To preserve performance only 1000 of 1000+ files are displayed.
---
permalink: /404.html
---
<script>window.location.href = '/';</script>
sklearn.apachecn.org
# 贡献指南
> 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)
可能有用的链接:
+ [英文官网](https://scikit-learn.org)
+ [中文翻译](https://sklearn.apachecn.org)
负责人:
* [@loopyme](https://github.com/loopyme):3322728009
* [飞龙](https://github.com/wizardforcel):562826179
* [片刻](https://github.com/jiangzhonglian):529815144
## 章节列表
* [安装 scikit-learn](docs/0.21.3/62.md)
* 用户指南
* [1. 监督学习](docs/0.21.3/1.md)
* [1.1. 广义线性模型](docs/0.21.3/2.md)
* [1.2. 线性和二次判别分析](docs/0.21.3/3.md)
* [1.3. 内核岭回归](docs/0.21.3/4.md)
* [1.4. 支持向量机](docs/0.21.3/5.md)
* [1.5. 随机梯度下降](docs/0.21.3/6.md)
* [1.6. 最近邻](docs/0.21.3/7.md)
* [1.7. 高斯过程](docs/0.21.3/8.md)
* [1.8. 交叉分解](docs/0.21.3/9.md)
* [1.9. 朴素贝叶斯](docs/0.21.3/10.md)
* [1.10. 决策树](docs/0.21.3/11.md)
* [1.11. 集成方法](docs/0.21.3/12.md)
* [1.12. 多类和多标签算法](docs/0.21.3/13.md)
* [1.13. 特征选择](docs/0.21.3/14.md)
* [1.14. 半监督学习](docs/0.21.3/15.md)
* [1.15. 等式回归](docs/0.21.3/16.md)
* [1.16. 概率校准](docs/0.21.3/17.md)
* [1.17. 神经网络模型(有监督)](docs/0.21.3/18.md)
* [2. 无监督学习](docs/0.21.3/19.md)
* [2.1. 高斯混合模型](docs/0.21.3/20.md)
* [2.2. 流形学习](docs/0.21.3/21.md)
* [2.3. 聚类](docs/0.21.3/22.md)
* [2.4. 双聚类](docs/0.21.3/23.md)
* [2.5. 分解成分中的信号(矩阵分解问题)](docs/0.21.3/24.md)
* [2.6. 协方差估计](docs/0.21.3/25.md)
* [2.7. 新奇和异常值检测](docs/0.21.3/26.md)
* [2.8. 密度估计](docs/0.21.3/27.md)
* [2.9. 神经网络模型(无监督)](docs/0.21.3/28.md)
* [3. 模型选择和评估](docs/0.21.3/29.md)
* [3.1. 交叉验证:评估估算器的表现](docs/0.21.3/30.md)
* [3.2. 调整估计器的超参数](docs/0.21.3/31.md)
* [3.3. 模型评估: 量化预测的质量](docs/0.21.3/32.md)
* [3.4. 模型持久化](docs/0.21.3/33.md)
* [3.5. 验证曲线: 绘制分数以评估模型](docs/0.21.3/34.md)
* [4. 检验](docs/0.21.3/35.md)
* [4.1. 部分依赖图](docs/0.21.3/36.md)
* [5. 数据集转换](docs/0.21.3/37.md)
* [5.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器](docs/0.21.3/38.md)
* [5.2. 特征提取](docs/0.21.3/39.md)
* [5.3 预处理数据](docs/0.21.3/40.md)
* [5.4 缺失值插补](docs/0.21.3/41.md)
* [5.5. 无监督降维](docs/0.21.3/42.md)
* [5.6. 随机投影](docs/0.21.3/43.md)
* [5.7. 内核近似](docs/0.21.3/44.md)
* [5.8. 成对的矩阵, 类别和核函数](docs/0.21.3/45.md)
* [5.9. 预测目标 (`y`) 的转换](docs/0.21.3/46.md)
* [6. 数据集加载工具](docs/0.21.3/47.md)
* [6.1. 通用数据集 API](docs/0.21.3/47.md)
* [6.2. 玩具数据集](docs/0.21.3/47.md)
* [6.3 真实世界中的数据集](docs/0.21.3/47.md)
* [6.4. 样本生成器](docs/0.21.3/47.md)
* [6.5. 加载其他数据集](docs/0.21.3/47.md)
* [7. 使用scikit-learn计算](docs/0.21.3/48.md)
* [7.1. 大规模计算的策略: 更大量的数据](docs/0.21.3/48.md)
* [7.2. 计算性能](docs/0.21.3/48.md)
* [7.3. 并行性、资源管理和配置](docs/0.21.3/48.md)
* [教程](docs/0.21.3/50.md)
* [使用 scikit-learn 介绍机器学习](docs/0.21.3/51.md)
* [关于科学数据处理的统计学习教程](docs/0.21.3/52.md)
* [机器学习: scikit-learn 中的设置以及预估对象](docs/0.21.3/53.md)
* [监督学习:从高维观察预测输出变量](docs/0.21.3/54.md)
* [模型选择:选择估计量及其参数](docs/0.21.3/55.md)
* [无监督学习: 寻求数据表示](docs/0.21.3/56.md)
* [把它们放在一起](docs/0.21.3/57.md)
* [寻求帮助](docs/0.21.3/58.md)
* [处理文本数据](docs/0.21.3/59.md)
* [选择正确的评估器(estimator.md)](docs/0.21.3/60.md)
* [外部资源,视频和谈话](docs/0.21.3/61.md)
* [API 参考](https://scikit-learn.org/stable/modules/classes.html)
* [常见问题](docs/0.21.3/63.md)
* [时光轴](docs/0.21.3/64.md)
## 流程
### 一、认领
首先查看[整体进度](https://github.com/apachecn/sklearn-doc-zh/issues/352),确认没有人认领了你想认领的章节。
然后回复 ISSUE,注明“章节 + QQ 号”(一定要留 QQ)。
### 二、校对
需要校对:
1. 语法
2. 术语使用
3. 文档格式
如果觉得现有翻译不好,重新翻译也是可以的。
### 三、提交
**提交的时候不要改动文件名称,即使它跟章节标题不一样也不要改,因为文件名和原文的链接是对应的!!!**
+ `fork` Github 项目
+ 将译文放在`docs/1.0`文件夹下
+ `push`
+ `pull request`
请见 [Github 入门指南](https://github.com/apachecn/kaggle/blob/master/docs/GitHub)
# 线性回归
>翻译者:[@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
```
```python
# 加载糖尿病数据集
diabetes = datasets.load_diabetes()
```
```python
# 只使用1个特征
diabetes_X = diabetes.data[:, np.newaxis, 2]
```
```python
# 划分训练,测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
```
```python
# 创建线性回归模型
regr = linear_model.LinearRegression()
# 训练这个模型
regr.fit(diabetes_X_train, diabetes_y_train)
# 使用模型做预测
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('解释方差得分(explained_variance_score): %.2f' % explained_variance_score(diabetes_y_test, diabetes_y_pred))
```
回归系数(coef_): [938.23786125]
均方误差(MSE): 2548.07
判断系数(r2_score): 0.47
解释方差得分(explained_variance_score): 0.53
```python
# 绘制输出
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
```
![png](data:image/png;base64,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)
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
# 3.4\. 模型持久化
校验者:
        [@why2lyj(Snow Wang)](https://github.com/why2lyj)
        [@小瑶](https://github.com/apachecn/scikit-learn-doc-zh)
翻译者:
        [@那伊抹微笑](https://github.com/apachecn/scikit-learn-doc-zh)
在训练完 scikit-learn 模型之后,最好有一种方法来将模型持久化以备将来使用,而无需重新训练。 以下部分为您提供了有关如何使用 pickle 来持久化模型的示例。 在使用 pickle 序列化时,我们还将回顾一些安全性和可维护性方面的问题。
## 3.4.1\. 持久化示例
可以通过使用 Python 的内置持久化模型将训练好的模型保存在 scikit 中,它名为 [pickle](https://docs.python.org/2/library/pickle.html):
```py
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0
```
在这个 scikit 的特殊示例中,使用 joblib 来替换 pickle(`joblib.dump` & `joblib.load`)可能会更有意思,这对于内部带有 numpy 数组的对象来说更为高效, 通常情况下适合 scikit-learn estimators(预估器),但是也只能是 pickle 到硬盘而不是字符串:
```py
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')
```
之后你可以使用以下方式回调 pickled model 可能在另一个 Python 进程中):
```py
>>> clf = joblib.load('filename.pkl')
```
Note
`joblib.dump``joblib.load` 函数也接收类似 file-like 的对象而不是文件名。 更多有关使用 Joblib 来持久化数据的信息可以参阅 [这里](https://pythonhosted.org/joblib/persistence.html).
## 3.4.2\. 安全性和可维护性的局限性
pickle(和通过扩展的 joblib),在安全性和可维护性方面存在一些问题。 有以下原因,
* 绝对不要使用未经 pickle 的不受信任的数据,因为它可能会在加载时执行恶意代码。
* 虽然一个版本的 scikit-learn 模型可以在其他版本中加载,但这完全不建议并且也是不可取的。 还应该了解到,对于这些数据执行的操作可能会产生不同及意想不到的结果。
为了用以后版本的 scikit-learn 来重构类似的模型, 额外的元数据应该随着 pickled model 一起被保存:
* 训练数据,例如:引用不可变的快照
* 用于生成模型的 python 源代码
* scikit-learn 的各版本以及各版本对应的依赖包
* 在训练数据的基础上获得的交叉验证得分
这样可以检查交叉验证得分是否与以前相同。
由于模型内部表示可能在两种不同架构上不一样,因此不支持在一个架构上转储模型并将其加载到另一个体系架构上。
如果您想要了解更多关于这些问题以及其它可能的序列化方法,请参阅这个 [Alex Gaynor 的演讲](http://pyvideo.org/video/2566/pickles-are-for-delis-not-software).
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
octocat, squirrel, shipit
Copyright (c) 2012 GitHub Inc. All rights reserved.
bowtie, neckbeard
Copyright (c) 2012 37signals, LLC. All rights reserved.
feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
Copyright (c) 2012 id Software. All rights reserved.
trollface
Copyright (c) 2012 whynne@deviantart. All rights reserved.
All other images
Copyright (c) 2012 Apple Inc. All rights reserved.
THE MIT LICENSE (MIT)
Copyright © 2014 Hassan Khan, http://hassankhan.me <contact@hassankhan.me>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* adjusted for gitbook styling. original css from emojify.js */
.emoji {
width: 1em;
height: 1em;
display: inline-block;
margin-top: 0;
background-size: contain;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册