【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)

这篇具有很好参考价值的文章主要介绍了【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

KNN算法简介

KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。

KNN算法的思想非常简单:对于任意n维输入向量,分别对应于特征空间中的一个点,输出为该特征向量所对应的类别标签或预测值。

KNN算法是一种非常特别的机器学习算法,因为它没有一般意义上的学习过程。它的工作原理是利用训练数据对特征向量空间进行划分,并将划分结果作为最终算法模型。存在一个样本数据集合,也称作训练样本集,并且样本集中的每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。

输入没有标签的数据后,将这个没有标签的数据的每个特征与样本集中的数据对应的特征进行比较,然后提取样本中特征最相近的数据(最近邻)的分类标签。

一般而言,我们只选择样本数据集中前k个最相似的数据,这就是KNN算法中K的由来,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的类别,作为新数据的分类。

KNN分类算法的分类预测过程十分简单并容易理解:对于一个需要预测的输入向量x,我们只需要在训练数据集中寻找k个与向量x最近的向量的集合,然后把x的类别预测为这k个样本中类别数最多的那一类。

KNN算法中只有一个超参数k,k值的确定对KNN算法的预测结果有着至关重要的影响。接下来,我们讨论一下k值大小对算法结果的影响以及一般情况下如何选择k值。

如果k值比较小,相当于我们在较小的领域内训练样本对实例进行预测。这时,算法的近似误差(Approximate Error)会比较小,因为只有与输入实例相近的训练样本才会对预测结果起作用。

但是,它也有明显的缺点:算法的估计误差比较大,预测结果会对近邻点十分敏感,也就是说,如果近邻点是噪声点的话,预测就会出错。因此,k值过小容易导致KNN算法的过拟合。

同理,如果k值选择较大的话,距离较远的训练样本也能够对实例预测结果产生影响。这时候,模型相对比较鲁棒,不会因为个别噪声点对最终预测结果产生影响。但是缺点也十分明显:算法的近邻误差会偏大,距离较远的点(与预测实例不相似)也会同样对预测结果产生影响,使得预测结果产生较大偏差,此时模型容易发生欠拟合。

因此,在实际工程实践中,我们一般采用交叉验证的方式选取k值。通过以上分析可知,一般k值选得比较小,我们会在较小范围内选取k值,同时把测试集上准确率最高的那个确定为最终的算法超参数k。

使用KNN进行水果分类

部分数据如下

【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)

预测结果和精确度如下

 【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)

部分代码如下

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
#导入水果数据并查看数据特征
fruit = pd.read_csv('fruit_data.txt','\t')
# 获取属性
X = fruit.iloc[:,1:]
# 获取类别
Y = fruit.iloc[:,0].T
# 划分成测试集和训练集
fruit_train_X,fruit_test_X,fruit_train_y,fruit_test_y=train_test_split(X,Y,test_size=0.2, random_state=0)
#分类eighborsClassifier()
#对训练集进行训练
knn.fit(fruit_train_X, fruit_train_y)
#对测试集数据的水果类型进行预测
predict_result = knn.predict(fruit_test_X)
print('测试集大小:',fruit_test_X.shape)
print('真实结果:',fruit_test_y)
print('预it_test_y))

 绘制KNN分类器图

分类结果如下 可以看到鸢尾花数据集大致分为三类

【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)

 部分代码如下

import numpy as np
from sklearn import neighbors, datasets
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 建立KNN模型,使用前两个特征
iris = datasets.load_iris()
irisData = iris.data[:, :2]   # Petal length、Petal width特征
irisTarget = iris.target
clf = neors.KNeighborsClassifier(5) # K=5
clf.fit(irisData, irisTarget)

#绘制plot 
ColorMp = ListedColormap(['#005500', '#00AA00', '#00FF00'])
X_min, X_max = irisData[:, 0].min(), irisData[:, 0].max()
Y_min
label = clf.predict(np.c_[X.ravel(), Y.ravel()])
label = label.reshape(X.shape) 
#绘图并显示
plt.figure()
plt.pcolormesh(X,Y,label,cmap=ColorMp)
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~文章来源地址https://www.toymoban.com/news/detail-429775.html

到了这里,关于【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习之Python使用KNN算法对鸢尾花进行分类

    要求: (1)数据集划分为测试集占20%; (2)n_neighbors=5; (3)评价模型的准确率; (4)使用模型预测未知种类的鸢尾花。 (待预测数据:X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]]) iris数据集有150组,每组4个数据。 第一步:引入所需库 第二步:划分测试集占20% test_size为

    2024年02月08日
    浏览(40)
  • 机器学习实战:Python基于Logistic逻辑回归进行分类预测(一)

    1.1 Logistic回归的介绍 逻辑回归( Logistic regression ,简称 LR )是一种经典的二分类算法,它将输入特征与一个sigmoid函数进行线性组合,从而预测输出标签的概率。该算法常被用于预测离散的二元结果,例如是/否、真/假等。 优点: 实现简单。Logistic回归的参数可以用极大似然

    2024年02月08日
    浏览(42)
  • 机器学习实战:Python基于DT决策树模型进行分类预测(六)

    1.1 决策树的介绍 决策树(Decision Tree,DT)是一种类似流程图的树形结构,其中内部节点表示特征或属性,分支表示决策规则,每个叶节点表示结果。在决策树中,最上方的节点称为根节点。它学习基于属性值进行分区。它以递归方式进行分区,称为递归分区。这种类似流程

    2023年04月27日
    浏览(61)
  • 机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化

    什么是knn算法? KNN算法是一种基于实例的机器学习算法,其全称为K-最近邻算法(K-Nearest Neighbors Algorithm)。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是:对于一个新的输入样本,通过计算它与训练集中所有样本的距离,找到与它距离最近的K个训练集样

    2024年02月03日
    浏览(41)
  • 机器学习实战:Python基于支持向量机SVM-RFE进行分类预测(三)

    1.1 支持向量机的介绍 支持向量机( Support Vector Machine,SVM )是一种监督学习的分类算法。它的基本思想是找到一个能够最好地将不同类别的数据分开的超平面,同时最大化分类器的边际(margin)。SVM的训练目标是最大化间隔(margin),即支持向量到超平面的距离。 具体地,

    2024年02月05日
    浏览(64)
  • 用K近邻(KNN)机器学习算法进行股票走势预测-Python

    K近邻(KNN,K-Nearest Neighbors)是最简单的机器学习算法之一,可用于回归和分类。KNN是一种“惰性”学习算法,从技术上讲,它不训练模型来进行预测。K近邻的逻辑是,假设有一个观测值,这个观测值被预测属于离它k个最近观测值中所占比例最大的那一个类。KNN方法是直接尝试

    2024年02月04日
    浏览(54)
  • 【Python机器学习】决策树、逻辑回归、神经网络等模型对电信用户流失分类实战(附源码和数据集)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 该实例数据来自kaggle,它的每一条数据为一个用户的信息,共有21个有效字段,其中最后一个字段Churn标志该用户是否流失   可用pandas的read_csv()函数来读取数据,用DataFrame的head()、shape、info()、duplicated()、nunique()等来初步

    2024年02月03日
    浏览(49)
  • 机器学习KNN最邻近分类算法

    KNN (K-Nearest Neighbor) 最邻近分类算法,其核心思想“近朱者赤,近墨者黑”,由你的邻居来推断你的类别。 图中绿色圆归为哪一类? 1、如果k=3,绿色圆归为红色三角形 2、如果k=5,绿色圆归为蓝色正方形 参考文章 knn算法实现原理:为判断未知样本数据的类别,以所有已知样

    2024年04月10日
    浏览(68)
  • 机器学习——kNN算法之红酒分类

    目录 StandardScaler的使用 KNeighborsClassifier的使用 代码实现 数据集介绍 数据集为一份红酒数据,总共有 178 个样本,每个样本有 13 个特征,这里不会为你提供红酒的标签,你需要自己根据这 13 个特征对红酒进行分类。部分数据如下图: StandardScaler的使用 由于数据中有些特征的

    2024年02月11日
    浏览(38)
  • 【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 is_array() 可以 「检测」 变量是不是 「数组」 类型。 语法 参数 $var :需要检

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包