机器学习之KNN实现手写数字
大家好我是木木,只从2022年11月30日发布ChatGPT后,迅速火热起来,人工智能作为当下最火的行业之一,很多人对它充满了好奇,接下来做个好玩的东西,使用KNN实现预测手写数字并将预测结果和实际图像画出来。
·
大家好我是木木,只从2022年11月30日发布ChatGPT后,大模型迅速火热起来,人工智能作为当下最火的行业之一,很多人对它充满了好奇,接下来做个好玩的东西,使用KNN实现预测手写数字并将预测结果和实际图像画出来。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsRegressor
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
# 加载手写数字数据集
X, y = load_digits(return_X_y=True)
# 切分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=3)
# 建模并训练
knn = KNeighborsRegressor().fit(X_train, y_train)
# 预测并评估模型性能
y_pred = knn.predict(X_test)
accuracy = np.mean(y_pred == y_test)
print(f"Accuracy: {accuracy}")
images_and_predictions = list(zip(X_test[:50], y_pred[:50]))
plt.figure(figsize=(10, 5), dpi=100)
for index, (image, prediction) in enumerate(images_and_predictions):
plt.subplot(5, 10, index + 1)
plt.axis("off")
plt.imshow(image.reshape(8, 8), cmap=plt.cm.gray_r, interpolation="nearest")
plt.title(f"Prediction: {prediction}", fontsize=6)
plt.tight_layout() # 自动调整子图布局,避免重叠
plt.show()
效果展示:
如图:蓝色框是预测准确率,红色框是预测的结果,绿色框是实际值

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)