数据挖掘-K-近邻分类器-Iris数据集分析-使用K-近邻分类器进行分类预测(四)

# coding: utf-8
#使用 scikit-learn库的K-近邻分类器完成分类
#1. 首先将数据集中的数据进行打乱
#2. 将数据分为训练集和测试集两部分
#3. 使用 k-means分类器进行分类训练,得到预测模型
#4. 使用模型对测试集进行测试,并与真实结果进行比较,计算错误率
import numpy as np
from sklearn import datasets
np.random.seed(0)
iris=datasets.load_iris()
x=iris.data
y=iris.target
#打乱数据集中的所有数据
# permutation函数: 随机排列   https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.permutation.html
i=np.random.permutation(len(iris.data))
#训练集: 取出打乱后的前140条数据
x_train=x[i[:-40]]   #前110条数据
y_train=y[i[:-40]]   #前110条数据对应的花的类型

#输出x_train, y_train
#x_train
#y_train

#测试集
x_test=x[i[-40:]]   #最后40条数据
y_test=y[i[-40:]]   #最后40条数据对应的花的类型

#使用k-近邻算法   引入kneighborsClassifier分类器,再使用fit()来训练
from sklearn.neighbors import KNeighborsClassifier
# KneighborsClassifier参数详解: http://blog.csdn.net/helloworld6746/article/details/50817427
# http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
knn=KNeighborsClassifier()   #使用构造函数创建分类器
knn.fit(x_train,y_train)     #调用fit方法训练分类器,得到预测模型

#下面使用这个模型进行预测
y_predicted=knn.predict( x_test )
#对比标准结果
y_test  

#计算正确率
accuracy=np.mean( y_predicted==y_test)*100
print(u"模型正确率为:{:.1f}%".format( accuracy))    # 95%



  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
k近邻分类器(k-nearest neighbors classifier)是一种常用的模式识别算法,可以用于分类任务。在iris数据集中,我们可以使用k近邻分类器来对鸢尾花进行分类。 k近邻分类器的基本思想是通过计算待分类样本与训练集中各个样本之间的距离,并选择距离最近的k个样本作为邻居,然后根据这些邻居的标签来预测分类样本的标签。常见的距离度量方法包括欧氏距离、曼哈顿距离等。 对于iris数据集,我们可以将其分为训练集和测试集,使用训练集来训练k近邻分类器,并使用测试集来评估分类器的性能。首先,需要导入iris数据集,并将其分为特征集和标签集。然后,我们可以使用训练集来拟合k近邻分类器,并使用测试集来评估其准确性。 下面是使用Python中的scikit-learn库实现k近邻分类器iris数据集进行分类的示例代码: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 导入iris数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建k近邻分类器并拟合训练集 knn = KNeighborsClassifier(n_neighbors=3) # 设置邻居数量为3 knn.fit(X_train, y_train) # 在测试集上进行预测 y_pred = knn.predict(X_test) # 输出分类器在测试集上的准确性 accuracy = knn.score(X_test, y_test) print("Accuracy:", accuracy) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangyingchengqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值