python中K-NN算法是什么?
本文教程操作环境:windows7系统、python 3.9.1,DELL G3电脑。
K Nearest Neighbor算法⼜叫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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。