KNN实战-图像识别

数据说明

是在循环0-9的数字一直循环500次所得到的数据,然后以手写照片的形式存在

识别的步骤

  • 加载数据
  • 构建目标值
  • 构建模型
  • 参数调优
  • 可视化展示

加载数据

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
# 记载数据
data = np.load('./digit.npy')
data

构建目标值

python 复制代码
# 构建基础的目标值
y = list(np.arange(0,10))*500
# 对生成的目标值进行排序,与图片的目标值进行对应
y.sort()
# 为了在拆分数据的时候可以正常拆分
y = np.array(y)

数据处理和数据拆分

数据处理

python 复制代码
X = data.reshape(5000,-1)
X.shape # 784:是图片的像素值 ,也就是图像的特征

数据拆分

python 复制代码
from sklearn.model_selection import train_test_split
X_tarin,X_test,y_train,y_test = train_test_split(X,y,# x,y的数据
test_size=0.05  # 验证集的占总数据的比重
,random_state=1024 # 随机数的种子)
display(X_tarin.shape,X_test.shape,y_train.shape,y_test.shape)

创建模型

python 复制代码
from sklearn.neighbors import KNeighborsClassifier
# 创建模型
model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_tarin,y_train)
# 数据分数
model.score(X_test,y_test)

训练数据的结果的分数

参数调优

python 复制代码
%%time
from sklearn.model_selection import GridSearchCV
prams = dict(n_neighbors = [5,7,9,12,15,17,21,23,30],
             weights=['uniform','distance'],
             p=[1,2])
estimator = KNeighborsClassifier()
gCV = GridSearchCV(estimator,prams,cv=5,scoring='accuracy')
gCV.fit(X_tarin,y_train)

%%time:获取当前程序的运行时间

获取最佳参数

python 复制代码
gCV.best_params_

获取平均分数

py 复制代码
gCV.best_score_

获取最佳模型

py 复制代码
gCV.best_estimator_

数据的验证与预测

python 复制代码
best_model = gCV.best_estimator_
y_predict = gCV.predict(X_test)
print('测试值:',y_predict)
print('真实值:',y_test)
best_model.score(X_test,y_test)

得到的结果(在得分上看模型的质量还是有所提升的)

可视化

python 复制代码
plt.figure(figsize=(5*2,10*3))
for i in range(50):
    plt.subplot(10,5,i+1)
    plt.imshow(X_test[i].reshape(28,28))
    true = y_test[i]
    predict = y_predict[i]
    plt.title(f'true:{true}\n'+f'predict:{predict}')

坚持学习,整理复盘

相关推荐
派大_星6 小时前
PyTorch CNN图片分类与数据增强实践
人工智能·深度学习·机器学习
2601_962297486 小时前
基于LangChain+LLM大模型+机器学习的恶意域名(流量)智能检测系统
机器学习·langchain·llm·恶意域名·流量检测
来让爷抱一个6 小时前
2026 姿态控制实战:八个姿势钉死动作,百智云精灵图把骨骼契约写进素材包
人工智能·机器学习
罗西的思考7 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 —(1)— 总体
人工智能·笔记·深度学习·学习·机器学习
DogDaoDao7 小时前
DexPIE:让人类手把手教灵巧手“回炉重造“——真实世界后训练 RL 深度拆解
深度学习·机器学习·机器人·人形机器人·运动轨迹·模仿学习·dexpie
其美杰布-富贵-李7 小时前
支持向量机 SVM:最大间隔、支持向量与核方法
机器学习
船厂电气自动化ai大模型8 小时前
AI大模型与数学 第73课 秩的核心定义、矩阵秩的通用求解方法
开发语言·数据结构·机器学习
Rocky Ding*17 小时前
【三年面试五年模拟】2026-09-06 拼多多 AI Agent研发岗秋招笔试4道算法题完整题解
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·拼多多
ai小陈19 小时前
PyTorch Profiler性能分析实战:定位GPU训练中的慢算子
人工智能·深度学习·机器学习·ai·性能优化·gpu算力
罗西的思考19 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(1)--- 总体
人工智能·算法·机器学习