基于KNN算法的手写数字识别py全代码实例
时间: 2024-09-27 08:12:39 浏览: 38
基于KNN (K-Nearest Neighbors) 算法的手写数字识别通常会涉及到数据预处理、特征提取、训练模型以及预测等步骤。以下是使用Python中的sklearn库进行手写数字识别的一个简单全代码实例:
```python
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
# 加载MNIST数据集(包含手写数字)
digits = datasets.load_digits()
# 数据预处理
X = digits.data
y = digits.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 特征缩放,提高KNN的性能
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建并训练KNN分类器
knn = KNeighborsClassifier(n_neighbors=5) # 可以尝试调整邻居数量
knn.fit(X_train, y_train)
# 预测
predictions = knn.predict(X_test)
# 评估性能
accuracy = knn.score(X_test, y_test)
print(f"Accuracy: {accuracy * 100}%")
# 示例性可视化
plt.imshow(digits.images[0], cmap=plt.cm.gray_r)
plt.show()
阅读全文