现在先简化问题,只尝试识别一个数字,比如数字5.那么这个“数字5检测器”就是一个二分类器的示例,它只能区分两个类别:5和非5.先为此分类任务创建目标向量:

    1. y_train_5 = (y_train == 5)
    2. y_test_5 = (y_test == 5)

    接着挑选一个分类器并开始训练。一个好的初始选择是随机梯度下降(SGD)分类器,使用Scikit-Learn的SGDClassifier类即可。这个分类器的优势是能够有效处理非常大型的数据集。这部分是因为SGD独立处理训练实例,一次一个(这也使得SGD非常适合在线学习),稍后我们将会看到。此时先创建一个SGDClassifier并在整个驯良集上进行训练:

    from sklearn.linear_model import SGDClassifier
    sgd_clf = SGDClassifier(random_state=42)
    sgd_clf.fit(X_train,y_train_5)
    

    SGDClassifier在驯练时是完全随机的(因此得名“随机”),如果你希望得到可复现的结果,需要设置参数random_state。
    现在可以用它来检测数字5的图片了:

    >>> sgd_clf.predict([some_digit])
    array([True])
    >>> sgd_clf.predict([X[0],X[1]])
    array([ True, False])
    

    分类器猜X[0]这个图像代表5,看起来这次它猜对了,那么,下面评估一下这个模型的性能。