6.17. 机器学习 | python 应用场景 |《python 最佳实践指南 2018 2018》| python 技术论坛-大发黄金版app下载

未匹配的标注

python 有着海量的可用于数据分析、统计以及机器学习的库,这使得 python 成为很多数据科学家所选择的语言。

下面我们列出了一些被广泛使用的机器学习及其他数据科学应用的 python 包。

scipy 技术栈

scipy 技术栈由一大批在数据科学中被广泛使用的核心辅助包构成,可用于统计分析与数据可视化。由于其丰富的功能和简单易用的特性,这一技术栈已经被视作实现大多数数据科学应用的必备品了。

scipy 技术栈由以下包组成(已链接到其文档):

该技术栈当然也包括与其绑定在一起的 python,这就不列在上述列表中了。

安装

想要安装这套完整的技术栈,或者只是想安装一些独立的包的话,您都可以参考下这份 。

注意:我们强烈建议您使用 ,它可以为您实现无缝化安装与维护数据科学包。

scikit-learn

scikit 是 python 的一个免费且开源的机器学习库。它提供了很多现成的函数来实现很多机器学习算法,比如线性回归(linear regression),各种分类器(classifiers),支持向量机(support vector machines),k均值聚类(k-means),神经网络( neural networks)等。scikit 也提供了一些可以直接用于训练和测试的示例数据集。

由于其速度快、健壮且易于使用的特点,scikit 已成为大多数机器学习应用当中最为广泛使用的库之一。

安装

通过 pypi 安装:

pip install -u scikit-learn

通过 conda 安装:

conda install scikit-learn

scikit-learn 也已经预装在 anaconda(上面提到过)中了。如需更多 scikit-learn 的安装指导,请参考 。

示例

在这个示例中,我们在  上训练了一个简单的分类器,这一数据集是绑定在 scikit-learn 里面的。

该数据集中取了花朵的四种特征:花萼长度,花萼宽度,花瓣长度以及花瓣宽度,并基于此把数据集中的花朵数据分成了三个种类(视作标签):山鸢尾(setosa),杂色鸢尾(versicolor)以及维吉尼亚鸢尾(virginica)。在数据集中,标签使用数字代替:0(setosa),1(versicolor)和2(virginica)。

我们将 iris 数据集中的数据打乱顺序,并将其划分为彼此分离的训练集和测试集:最后10个数据点用于测试,其他的都用于训练。之后我们在训练集上训练一个分类器,再在测试集上进行预测。

from sklearn.datasets import load_iris
from sklearn import tree
from sklearn.metrics import accuracy_score
import numpy as np
#载入 iris 数据集
iris = load_iris()
x = iris.data # 获得数据的数组
y = iris.target # 获得每项数据对应的标签(即答案)的数组
# 获得标签对应的名称,即花朵的三个种类的名称
y_names = iris.target_names
# 获得顺序被随机打乱的索引,用于把数据集划分为训练集和测试集
test_ids = np.random.permutation(len(x))
#把数据和标签划分为训练集和测试集
#最后10个数据点分给测试集,其他的都分给训练集
x_train = x[test_ids[:-10]]
x_test = x[test_ids[-10:]]
y_train = y[test_ids[:-10]]
y_test = y[test_ids[-10:]]
# 使用决策树分类器
clf = tree.decisiontreeclassifier()
# 使用训练集来训练(拟合)我们的分类器
clf.fit(x_train, y_train)
# 在测试集上进行预测
pred = clf.predict(x_test)
print pred # 打印出预测的标签,即花朵种类
print y_test # 打印出真实的标签
print (accuracy_score(pred, y_test))*100 # 打印出预测精度

由于我们对于数据集的划分是随机的,并且分类器在每一轮迭代中都进行了训练,所以我们得到的精度可能多种多样。运行上面的代码后,我们可以得到以下输出结果:

[0 1 1 1 0 2 0 2 2 2]
[0 1 1 1 0 2 0 2 2 2]
100.0

第一行包含的是我们的分类器在测试集上所预测的标签(即花朵种类),第二行包含的是数据集中所给出的真实的花朵种类。这一次我们得到了100%的预测精度。

关于scikit-learn的更多内容,可以查看这篇 。

本文章首发在 大发黄金版app下载 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 cc 协议,如果我们的工作有侵犯到您的权益,请及时联系大发黄金版app下载。

原文地址:https://learnku.com/docs/python-guide/20...

译文地址:https://learnku.com/docs/python-guide/20...

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图