用外部库实现knn分类算法,并计算正确率

from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
cheng = load_iris()
# print(cheng.keys())
# print(cheng.data)
# print(cheng.target)
# print(cheng.target_names)
# print(cheng.DESCR)
# print(cheng.feature_names)
# print(cheng.filename)
trainX, testX, trainY, tesY = train_test_split(
    cheng.data, cheng.target, random_state=0)
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(trainX, trainY)
testy = knn.predict(testX)
zhv = np.mean(testy == tesY)
print(zhv)

查看代码

原文地址:https://www.cnblogs.com/lovelyemperor/p/10801273.html

时间: 2024-11-11 23:05:44

用外部库实现knn分类算法,并计算正确率的相关文章

监督学习算法_k-近邻(kNN)分类算法_源代码

因为自己想学着去写机器学习的源码,所以我最近在学习<机器学习实战>这本书. <机器学习实战>是利用Python2完成的机器学习算法的源代码,并利用机器学习方法来对实际问题进行分析与处理. (<机器学习实战>豆瓣读书网址:https://book.douban.com/subject/24703171/) 以下内容是我通过学习<机器学习实战>,以及我对k-近邻(kNN)分类算法的理解,所总结整理出的内容,其中kNN分类算法的源码为Python3的代码,希望大家

KNN分类算法实现手写数字识别

需求: 利用一个手写数字"先验数据"集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ?数据维度比较大,样本数比较多. ? 数据集包括数字0-9的手写体. ?每个数字大约有200个样本. ?每个样本保持在一个txt文件中. ?手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下: 数据集压缩包解压后有两个目录:(将这两个目录文件夹拷贝的项目路径下E:/KNNCase/digits/) ?目录trainingD

机器学习---K最近邻(k-Nearest Neighbour,KNN)分类算法

K最近邻(k-Nearest Neighbour,KNN)分类算法 1.K最近邻(k-Nearest Neighbour,KNN) K最近邻(k-Nearest Neighbour,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实

后端程序员之路 12、K最近邻(k-Nearest Neighbour,KNN)分类算法

K最近邻(k-Nearest Neighbour,KNN)分类算法,是最简单的机器学习算法之一.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合.该算法的功能有:从目标区域抽样计算欧式或马氏距离:在交叉验证后的RMSE基础上选择启发式最优的K邻域:计算多元k-最近邻居的距离倒数加权平均. 机器学习(一)——K-近邻(KNN)算法 - oYabea - 博客园http://www.cnblo

在Ignite中使用k-最近邻(k-NN)分类算法

在本系列前面的文章中,简单介绍了一下Ignite的线性回归算法,下面会尝试另一个机器学习算法,即k-最近邻(k-NN)分类.该算法基于对象k个最近邻中最常见的类来对对象进行分类,可用于确定类成员的关系. 一个适合k-NN分类的数据集是鸢尾花数据集,它可以很容易地通过UCI网站获得. 鸢尾花数据集由150个样本组成,来自3种不同种类的鸢尾花各有50朵(Iris Setosa, Iris Versicolour和Iris Virginica).以下四个特征可供每个样本使用: 萼片长度(cm) 萼片宽

KNN分类算法--python实现

一.kNN算法分析 K最近邻(k-Nearest Neighbor,KNN)分类算法可以说是最简单的机器学习算法了.它采用测量不同特征值之间的距离方法进行分类.它的思想很简单:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别

KNN分类算法补充

KNN补充: 1.K值设定为多大? k太小,分类结果易受噪声点影响:k太大,近邻中又可能包含太多的其它类别的点. (对距离加权,可以降低k值设定的影响) k值通常是采用交叉检验来确定(以k=1为基准) 经验规则:k一般低于训练样本数的平方根 2.类别如何判定最合适? 加权投票法更恰当一些.而具体如何加权,需要根据具体的业务和数据特性来探索 3.如何选择合适的距离衡量? 高维度对距离衡量的影响:众所周知当变量数越多,欧式距离的区分能力就越差. 变量值域对距离的影响:值域越大的变量常常会在距离计算中

kNN分类算法的Python实现

1.k-近邻算法实现 from numpy import * import operator def createDataSet(): group = array([[1.0, 1.1], [2.0, 2.0], [0, 0], [4.1, 5.1]]) labels = ['A', 'B', 'C', 'D'] return group, labels def classify0(inX, dataSet, labels, k): """ :param inX: 用于分类的

R语言学习-KNN临近算法

概念 1.监督学习:从给定标注的训练数据中学习出一个函数,根据这个函数为新数据进行标注. 2.无监督学习:从给定无标注的训练数据中学习出一个函数,根据这个函数为所有数据标注. KNN分类算法:通过对已知类别训练数据集的分析,从中发现分类规则,以此预测新数据的类别,分类算法属于监督学习的类型. KNN概念: 1.训练集:用来训练模型或确定模型参数的数据. 2.测试集:用来验证模型准确性的数据. 3.交叉验证:一般使用70%的数据作为训练集,剩下30%的数据作为测试集,测试集的测试结果使用交叉表形式