本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Trick:纯demo,心在哪里,结果就在那里
#加载示例数据集
from sklearn import datasets
"""
数据集是一个类似字典的对象,它保存有关数据的所有数据和一些元数据。
该数据存储在 .data 成员中,它是 n_samples, n_features 数组。
在监督问题的情况下,一个或多个响应变量存储在 .target 成员中
"""
iris = datasets.load_iris()
digits = datasets.load_digits()
#在数字数据集的情况下,digits.data 使我们能够得到一些用于分类的样本特征:
print(digits.data)
#digits.target 表示了数据集内每个数字的真实类别,也就是我们期望从每个手写数字图像中学得的相应的数字标记
print(digits.target)
#数据数组的形状
"""
数据总是二维数组,形状 (n_samples, n_features) ,尽管原始数据可能具有不同的形状。
在数字的情况下,每个原始样本是形状 (8, 8) 的图像,可以使用以下方式访问:
"""
print(digits.images[0])
"""
Enter : 转入编辑模式
Shift-Enter : 运行本单元,选中下个单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在其下插入新单元
Z : 恢复删除的最后一个单元
D,D : 删除选中的单元
Shift-M : 合并选中的单元
Ctrl-S : 文件存盘
"""
#学习和预测
"""
在数字数据集的情况下,任务是给出图像来预测其表示的数字。 我们给出了 10 个可能类
(数字 0 到 9)中的每一个的样本,我们在这些类上 拟合 一个 估计器 ,
以便能够 预测 未知的样本所属的类。
在 scikit-learn 中,分类的估计器是一个 Python 对象,
它实现了 fit(X, y) 和 predict(T) 等方法。
估计器的一个例子类 sklearn.svm.SVC ,实现了 支持向量分类 。
估计器的构造函数以相应模型的参数为参数,但目前我们将把估计器视为黑箱即可:
"""
from sklearn import svm
clf = svm.SVC(gamma = 0.001 ,C = 100.)
"""
我们把我们的估计器实例命名为 clf ,因为它是一个分类器(classifier)。
它现在必须拟合模型,也就是说,它必须从模型中 learn(学习) 。
这是通过将我们的训练集传递给 fit 方法来完成的。
作为一个训练集,让我们使用数据集中除最后一张以外的所有图像。
我们用 [:-1] Python 语法选择这个训练集,
它产生一个包含 digits.data 中除最后一个条目(entry)之外的所有条目的新数组
"""
clf.fit(digits.data[:-1], digits.target[:-1])
print(clf.predict(digits.data[-1:]))
[[ 0. 0. 5. ... 0. 0. 0.]
[ 0. 0. 0. ... 10. 0. 0.]
[ 0. 0. 0. ... 16. 9. 0.]
...
[ 0. 0. 1. ... 6. 0. 0.]
[ 0. 0. 2. ... 12. 0. 0.]
[ 0. 0. 10. ... 12. 1. 0.]]
[0 1 2 ... 8 9 8]
[[ 0. 0. 5. 13. 9. 1. 0. 0.]
[ 0. 0. 13. 15. 10. 15. 5. 0.]
[ 0. 3. 15. 2. 0. 11. 8. 0.]
[ 0. 4. 12. 0. 0. 8. 8. 0.]
[ 0. 5. 8. 0. 0. 9. 8. 0.]
[ 0. 4. 11. 0. 1. 12. 7. 0.]
[ 0. 2. 14. 5. 10. 12. 0. 0.]
[ 0. 0. 6. 13. 10. 0. 0. 0.]]
[8]
# 模型持久化
# 可以通过使用 Python 的内置持久化模块(即 pickle )将模型保存:
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)
No output
No output
No output
No output