“_____鸢尾花识别_____“-------文章中有源码

简介: “_____鸢尾花识别_____“-------文章中有源码

实验目的

使用Python实现K近邻

实验原理

(1)计算测试与各个训练数据之间的距离;

(2)按照距离的递增关系进行排序;

(3)选取距离最小的K个点;

(4)确定前K个点所在类别出现的概率;

(5)返回前K个点中出现概率最高的类别作为测试数据的预测分类。

(1) 鸢尾花识别。

import numpy as np
import pandas as pd
def getdata(path):
    data=pd.read_csv(path,encoding='gbk')
    return np.array(data)
def getlength(data,target,k):
    temp=[]
    for i in data:
        temp.append(np.sum((i[:-1]-target)**2))
    #print(temp)
    #float ('inf')
    indexList=[]
    for i in range(k):
        indexList.append(np.argmin(temp))
        #temp[np.array(temp)]=('inf')
        temp[np.argmin(temp)] = np.max(temp)
    return indexList
def KNNs(data,indexList):
    dic={0:0,1:0,2:0}
    for i in indexList:
        dic[data[i][-1]]+=1
    Maxnum=0
    Maxindex=0
    for i in dic:
        if dic[i]>Maxnum:
            Maxnum=dic[i]
            Maxindex=i
    #print(dic)
    return Maxindex
if __name__=='__main__':
    dic = {0: 'setosa', 1: 'versicolor', 2: 'virginnica'}
    path='iris_training.csv'
    data= getdata(path)
    #print(data)
    target=np.array([5,3,1,0.5])
    try:
        while True:
            k = (input("请输入k(退出请输入quit):"))
            if k=='quit':
                print("退出成功")
                break
            k=int(k)
            #getlength(data,target,k)
            indexList=getlength(data,target,k)
            n=KNNs(data,indexList)
            print(dic[n])
    except Exception as e:
        print("输入出错,请重新输入")

image.png

目录
相关文章
|
9月前
|
算法 Python
yolov5障碍物识别-雪糕筒识别(代码+教程)
yolov5障碍物识别-雪糕筒识别(代码+教程)
|
9月前
|
机器学习/深度学习 编解码 监控
手把手改进yolo训练自己的数据(坑洼路面识别)
手把手改进yolo训练自己的数据(坑洼路面识别)
|
计算机视觉 Python
最快速度写出一个识别效果——OpenCV模板匹配(含代码)
最快速度写出一个识别效果——OpenCV模板匹配(含代码)
655 0
|
C++ 计算机视觉 Python
Python Yolov5路面裂缝识别检测识别
Python Yolov5路面裂缝识别检测识别
224 0
|
9月前
|
机器学习/深度学习 算法框架/工具 计算机视觉
使用Python实现图像分类与识别模型
使用Python实现图像分类与识别模型
112 2
使用Python实现图像分类与识别模型
|
8月前
|
机器学习/深度学习 编解码 文字识别
【开源】轻松实现车牌检测与识别:yolov8+paddleocr【python源码+数据集】
【开源】轻松实现车牌检测与识别:yolov8+paddleocr【python源码+数据集】
|
9月前
|
机器学习/深度学习 数据可视化 数据库
R语言对MNIST数据集分析:探索手写数字分类
R语言对MNIST数据集分析:探索手写数字分类
|
9月前
|
机器学习/深度学习 编解码 算法
Python实现视频人脸检测识别功能
Python实现视频人脸检测识别功能
150 0
|
数据采集 数据可视化 数据格式
3D检测数据集 DAIR-V2X-V 转为Kitti格式 | 可视化
本文分享在DAIR-V2X-V数据集中,将标签转为Kitti格式,并可视化3D检测效果。
296 0
|
机器学习/深度学习 算法 算法框架/工具
机器学习项目实战识别mnist数据集识别图片数字
机器学习项目实战识别mnist数据集识别图片数字
163 0

热门文章

最新文章