手写体数字识别代码KNN
时间: 2025-01-24 21:52:30 浏览: 25
### 实现手写体数字识别的KNN算法
对于手写体数字识别,可以采用`scikit-learn`库中的`KNeighborsClassifier`来构建KNN模型。下面展示了一个完整的例子,该实例利用了MNIST数据集的一部分——digits数据集来进行训练和测试。
```python
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, accuracy_score
# 加载数据集并查看基本信息
digits = load_digits()
X_data = digits.data
y_label = digits.target
# 数据标准化处理
ss = StandardScaler(with_mean=True)
X_std = ss.fit_transform(X_data)
# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(
X_std, y_label, test_size=0.25, random_state=22)
# 构建KNN分类器,默认参数设置
knn = KNeighborsClassifier(n_neighbors=5, weights='uniform')
knn.fit(X_train, y_train)
# 预测过程
predictions = knn.predict(X_test)
# 输出预测结果以及准确度评价指标
print(classification_report(y_test, predictions))
accuracy = accuracy_score(y_test, predictions) * 100
print(f'准确率:{accuracy:.2f}%')[^4]
```
上述代码实现了对手写数字图像的数据加载、预处理(标准化)、划分训练集和测试集、创建KNN分类器对象、拟合模型、做出预测,并最终打印出详细的性能报告及整体准确率。
阅读全文
相关推荐


















