使用KNN近邻法进行鸢尾花的分类

       邻近算法,或者说K最邻近(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。近邻算法就是将数据集合中每一个记录进行分类的方法。

  1. 使用sklearn框架的load_iris()函数获得鸢尾花的数据集
  2. 再通过sklearn框架model_selection模块导入分割函数train_test_split()得到训练的数据集,测试的数据集,训练的标签集,测试的标签集
  3. 再使用KNN分类器对象进行机器假学习训练,带入测试数据集进行预测,得到的结果与训练的标签集进行比较。

load_iris()函数: 数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性(分别是:花萼长度,花萼宽度,花瓣长度,花瓣宽度)。可通过这4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类的鸢尾花中的哪一类。
Iris里有两个属性iris.data,iris.target。data是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,一共有150条记录。
 

代码如下:

# 从sklearn框架的datasets数据集导入loadt_iris函数
from sklearn.datasets import load_iris
# sklearn框架model_selection模块导入分割函数train_test_split()
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
def load_data():
    # load_iris():获得鸢尾花数据集150条
    data = load_iris()
    return data['data'], data['target']


if __name__ == "__main__":
    # 1.准备训练的数据集和标签集
    x, y = load_data()
    # print(x)
    # 2.准备测试的数据集:将数据集和标签集,按照某种比例分割
    # test_size:分割后测试数据占总数据的比例
    # 该函数返回 训练的数据集,测试的数据集,训练的标签集,测试的标签集
    x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.1/3)
#test_size=0.1/3:取五条数据作为测试的数据集
    # 3.构造knn分类器对象,指定k超参数
    # print("x_tr",x_train,"x_test",x_test)
    classifier=KNeighborsClassifier(n_neighbors=5)
    # 4.机器假学习训练
    classifier.fit(x_train, y_train)
    # 5.带入测试数据集进行预测
    pre = classifier.predict(x_test)
    print("预测:",pre)
    print("真实数据",y_test)

打印出:预测: [1 1 1 2 0]
真实数据 [1 1 1 2 0]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值