一.问题描述
用Python语言实现机器学习KNN算法,并用鸢尾花数据集测试。
二.算法设计
1.算法流程图
2.具体实现步骤
(1)定义一个My_KNN()函数实现KNN分类算法;
(2)函数参数设为鸢尾花的训练集和测试集;
(3)定义对应的三个列表用来存放测试数据与整个数据的欧氏距离;
(4)定义一个distance列表存放测试数据与所有训练数据的距离;
(5)定义三个整形变量分别表示三类鸢尾花与测试数据的邻近个数;
(6)调用math和numpy库中的函数计算测试数据与鸢尾花数据集的欧氏距离,并存入对应的列表,最后计算结束后,将distance列表按照升序重新排列;
(7)利用循环判断distance中的距离在哪一个列表中,即该类邻近个数自增,循环次数为k次;
(8)判断三类邻近个数的大小,个数最多的那一类即为测试数据的类别;
(9)利用循环判断测试集中正确的结果个数,并用公式计算出预测结果的准确性。
三.程序实现
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 15 15:40:39 2019
@author: fanghejun
"