python完整代码 用sklearn实现手写数字识别。手写字体数据集是一个8*8的矩阵,共有64个特征。请使用KNN对手写字进行识别。
时间: 2024-10-26 09:04:14 浏览: 28
Python实现手写数字识别(神经网络、mnist数据集).zip
5星 · 资源好评率100%
在Python中,我们可以使用scikit-learn库(sklearn)结合MNIST手写数字数据集来进行简单的手写数字识别。以下是一个基本的示例,展示如何使用KNN(K-Nearest Neighbors)算法进行分类:
```python
# 首先,导入必要的库
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载数据(MNIST数据集已经被加载到sklearn的fetch_openml函数)
digits = fetch_openml('mnist_784', version=1)
X, y = digits.data, digits.target
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 数据预处理:标准化数值特征
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 创建并训练KNN模型,这里我们选择k=5作为邻居数
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train_scaled, y_train)
# 进行预测
y_pred = knn.predict(X_test_scaled)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
#
阅读全文