本博文是博主在阿里云大学学习记录的笔记,未经博主允许禁止随意转载。
数据集获取方法:
链接:https://pan.baidu.com/s/1b6Nc3-QmHhQjH_uxZg3WCQ
提取码:ndv9
接下来将学习如何使用Python实现KNN分类算法。
说明:本实验的程序文件与数据在启动jupyter notebook后,就会在主目录中显示,可以直接打开查看并运行,但为了增加熟练度,达到最佳的学习效果,建议大家手动输入。
①导入程序运行所需的库。
import numpy as np
import pandas as pd
②读取鸢尾花数据集,并对数据集进行预处理。
# 读取鸢尾花数据集,header参数来指定标题的行。默认为0。如果没有标题,则使用None。
data = pd.read_csv(r"Iris.csv", header=0)
# 显示前n行记录。默认n的值为5。
# data.head()
# 显示末尾的n行记录。默认n的值为5。
#data.tail()
# 随机抽取样本。默认抽取一条,我们可以通过参数进行指定抽取样本的数量。
# data.sample(10)
# 将类别文本映射成为数值类型。
data["Species"] = data["Species"].map({"Iris-virginica": 0, "Iris-setosa": 1, "Iris-versicolor": 2})
# 删除不需要的Id列。
data.drop("Id", axis=1, inplace=True)
# data.duplicated().any()
# 查看数据集的记录数。
# len(data)
# 删除重复的记录。
data.drop_duplicates(inplace=True)
# len(data)
# 查看各个类别的鸢尾花具有多少条记录。
data["Species"].value_counts()
③定义KNN类,用于分类。类中定义两个预测方法,分为考虑权重与不考虑权重两种情况。
class KNN:
"""使用Python语言实现K近邻算法。(实现分类)"""
def __init__(self, k):