IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> k-近邻居算法 识别数字 -> 正文阅读

[开发工具]k-近邻居算法 识别数字

k-近邻居算法 识别数字?

k-近邻算法

有已经分类好的训练集,和一些需要你去分类的数据(暂且叫做目标)。欲分类,只需要算出 目标与各个训练集的距离,在找出距离最近的 k 个训练数据,这k个数据中哪种数据多,就将目标确定为什么种类。

?

数字样式如下:我们有数百个这种记录数字形状的txt文档,样式分别是1~9

运用这些文档对计算机进行训练,使之以后可以自动判断此类文档表示什么数字

我的代码展示,判断准确率为90%,有待提高

?

import os
import numpy as np


list_path = os.listdir('D:\\aaa编程之pycharm\\要来了吗,机器学习!\\k-近邻\\testDigits')
check_path = os.listdir('D:\\aaa编程之pycharm\\要来了吗,机器学习!\\k-近邻\\测试集')
print(check_path)


def read_allfile(list_path):
    list_number = len(list_path)
    returnData = np.zeros((list_number,32*32))
    list_order = 0
    returnlabel = []  # 训练集标签
    for filepath in list_path:
        fr = open('D:\\aaa编程之pycharm\\要来了吗,机器学习!\\k-近邻\\testDigits\\'+filepath)
        returnlabel.append(filepath[0])
        for i in range(32):
            line = fr.readline()
            for j in range(32):
                returnData[list_order,32*i+j] = int(line[j])
        list_order += 1
    return returnData,returnlabel
def read_allfile2(list_path):
    list_number = len(list_path)
    returnData = np.zeros((list_number,32*32))
    list_order = 0
    returnlabel = []  # 训练集标签
    for filepath in list_path:
        fr = open('D:\\aaa编程之pycharm\\要来了吗,机器学习!\\k-近邻\\测试集\\'+filepath)
        returnlabel.append(filepath[0])
        for i in range(32):
            line = fr.readline()
            for j in range(32):
                returnData[list_order,32*i+j] = int(line[j])
        list_order += 1
    return returnData,returnlabel
train_Data,train_label = read_allfile(list_path)
check_Data,check_label = read_allfile2(check_path)
print(check_Data)
print(check_label)
def classify(train_data,check_data,train_labels,k):
    train_number = train_data.shape[0]
    gass_label = []
    for line in check_data:
        temp_Mat = np.tile(line,(train_number,1))
        temp_Mat = (temp_Mat-train_data)**2
        distance = temp_Mat.sum(axis = 1)
        sort_number = distance.argsort()

        dict = {}
        for j in range(k):
            dict[train_labels[sort_number[j]]] = dict.get(train_labels[sort_number[j]],0) + 1
        # print(dict)
        dict = list(dict.items())
        # print(dict)
        temp_Mat = dict[0]
        for max in dict:
            if max[1] >= temp_Mat[1]:
                temp_Mat = max
        gass_label.append(temp_Mat[0])
    return gass_label

answer = classify(train_Data,check_Data,train_label,50)
print(answer)
def check(true,gass):
    chang = len(true)
    right_number = 0
    for i in range(chang):
        if true[i] == gass[i]:
            right_number += 1
    return right_number/chang
how = check(check_label,answer)
print(how)

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:42:51  更:2021-10-30 12:44:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:34:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码