pythonK-NN算法是什么?

来源:千锋教育
发布时间:2023-11-13 16:47:38
分享

python中K-NN算法是什么?

本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。

KNearestNeighbor算法⼜叫KNN算法,这个算法是机器学习⾥⾯⼀个⽐较经典的算法,总体来说KNN算法是相对⽐

较容易理解的算法。

1、定义

如果⼀个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某⼀个类别,则该样本也属于这个类别。(起源:KNN最早是由Cover和Hart提出的一种分类算法);俗话就是:根据“邻居”来推断出你的类别。

2、基本流程

(1)计算已知类数据集中的点与当前点之间的距离2)按距离递增次序排序

(2)选取与当前点距离最小的k个点

(3)统计前k个点所在的类别出现的频率

(4)返回前k个点出现频率最高的类别作为当前点的预测分类

3、实例

代码涉及sklean库,需要安装sklearn库。

fromsklearn.datasetsimportload_iris

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.preprocessingimportStandardScaler

fromsklearn.neighborsimportKNeighborsClassifier

#1.获取数据

iris=load_iris()

#2.数据基本处理:训练集的特征值x_train测试集的特征值x_test训练集的⽬标值y_train测试集的⽬标值y_test,

'''

x:数据集的特征值

y:数据集的标签值

test_size:测试集的⼤⼩,⼀般为float

random_state:随机数种⼦,不同的种⼦会造成不同的随机采样结果。相同的种⼦采样结果相同

'''

x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)

#3.特征工程-特征预处理

transfer=StandardScaler()

x_train=transfer.fit_transform(x_train)

x_test=transfer.transform(x_test)

#4.机器学习-KNN

#4.1实例化一个估计器

estimator=KNeighborsClassifier(n_neighbors=5)

#4.2模型训练

estimator.fit(x_train,y_train)

#5.模型评估

#5.1预测值结果输出

y_pre=estimator.predict(x_test)

print("预测值是:\n",y_pre)

print("预测值和真实值的对比是:\n",y_pre==y_test)

#5.2准确率计算

score=estimator.score(x_test,y_test)

print("准确率为:\n",score)

以上就是python中K-NN算法的介绍,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python上下文管理器closing的应用 python上下文管理器closing的应用1、应用场景closing适用于提供了close()实现的对象,比如网络连接、数据库连接等,也可以在自定义类时通过接口close()来执行所需要的资源“清理
  • python生成器切片的实现 python生成器切片的实现(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)1、想得到一个由迭代器生成的切片对象,但是标准切片操作并不能做到。函数itertools.
  • python如何使用__iter__()展现外部状态 python如何使用__iter__()展现外部状态(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)1、如果你想让你的生成器暴露外部状态给用户,别忘了你可以简单的将它
  • python生成器如何进行解析 python生成器如何进行解析(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)1、说明生成器解析其实就是列表解析的扩展,当我们明确需要使用小标访问的时候,使用列表解析
  • python生成器调用方法引发异常 python生成器调用方法引发异常(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)注意,在生成器已经执行时调用下面的任何生成器方法会引发ValueError异常。1、
  • pythonyield的使用注意 python中yield的使用注意(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)1、说明一旦在函数中使用了yield,它就变成了生成函数。但yield不能和retu