<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Какую задачу можно поставить для этого набора данных?
Step1:  Чтобы отобразить её на экране, нужно применить метод reshape. Целевая форма &mdash; $8 \times 8$.
Step2:  Возьмем один из методов прошлой лекции. Например, метод классификации, основанный на деревьях (CART).
Step3:  Почти у всех классов, отвечающих за методы классификации в scikit-learn, есть следующие методы
Step4:  Обучим классификатор на всех цифрах, кроме последних 10.
Step5:  Теперь попробуем классифицировать оставшиеся 10 картинок.
Step6:  Давайте посмотрим на "проблемные" числа
<ASSISTANT_TASK:>
Python Code:
%matplotlib inline
import matplotlib.pyplot as plt
n = 19
print("Каждая цифра представлена матрицей формы ", digits.data[n, :].shape)
Explanation: Какую задачу можно поставить для этого набора данных?
End of explanation
digit = 255 - digits.data[n, :].reshape(8, 8)
plt.imshow(digit, cmap='gray', interpolation='none')
plt.title("This is " + str(digits.target[n]))
plt.show()
Explanation: Чтобы отобразить её на экране, нужно применить метод reshape. Целевая форма &mdash; $8 \times 8$.
End of explanation
from sklearn.tree import DecisionTreeClassifier
Explanation: Возьмем один из методов прошлой лекции. Например, метод классификации, основанный на деревьях (CART).
End of explanation
clf = DecisionTreeClassifier(random_state=0)
Explanation: Почти у всех классов, отвечающих за методы классификации в scikit-learn, есть следующие методы:
- fit &mdash; обучение модели;
- predict &mdash; классификация примера обученным классификатором;
- score &mdash;оценка качества классификации в соответствии с некоторым критерием.
Чтобы создать дерево-классификатор, достаточно создать объект класса DecisionTreeClassifier
End of explanation
clf.fit(digits.data[:-10], digits.target[:-10])
Explanation: Обучим классификатор на всех цифрах, кроме последних 10.
End of explanation
errors = 0
for i in range(1, 11):
    k = clf.predict(digits.data[-i].reshape(1, -1))
    print("Классификатор предсказал число {}, на самом деле это {}. Числа {}совпали."
          .format(k[0], digits.target[-i], 
                  "" if k[0] == digits.target[-i] else "не "))
    
    if k[0] != digits.target[-i]:
        errors += 1
Explanation: Теперь попробуем классифицировать оставшиеся 10 картинок.
End of explanation
fig = plt.figure(figsize=(12, 4))
frame = 1
for i in range(1, 11):
    k = clf.predict(digits.data[-i].reshape(1, -1))
    if k[0] != digits.target[-i]:
        digit = 255 - digits.data[-i, :].reshape(8, 8)
        
        ax = fig.add_subplot(1, errors, frame)        
        ax.imshow(digit, cmap='gray', interpolation='none')
        ax.set_title("This is {}, recognized as {}".format(digits.target[-i], k[0]))
        frame += 1
Explanation: Давайте посмотрим на "проблемные" числа:
End of explanation
<END_TASK>