"""第 01 课：用一个小型神经网络认识手写数字。
运行环境：Python 3.12，scikit-learn 1.7.2。
安装：python -m pip install scikit-learn==1.7.2
运行：python deep-learning-intro.py
数据随 scikit-learn 提供；本例不需要 GPU。
"""
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier

digits = load_digits()
X = digits.data / 16.0
y = digits.target
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)
model = MLPClassifier(
    hidden_layer_sizes=(32, 16), max_iter=400,
    early_stopping=True, random_state=42
)
model.fit(X_train, y_train)
accuracy = model.score(X_test, y_test)
prediction = model.predict(X_test[:1])[0]
print(f"测试集准确率：{accuracy:.1%}")
print(f"第一张测试图片：预测 {prediction}，真实标签 {y_test[0]}")
