K最近邻

杭州治疗白癜风效果最好的医院 https://m-mip.39.net/baidianfeng/mipso_4769940.html

knn算法,也叫k-最临近算法。全称K-NearestNeighbor。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个临近值来代表。换言之,近朱者赤近墨者黑。近邻算法就是将数据集合中每一个记录进行分类的方法。此处的K是指,在预测点周围的K个样本点的分类信息。

手动实现算法

导入所使用的库,数据集使用自带数据集。

importnumpyasnpfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromcollectionsimportCounter

导入数据,接收与分割数据

iris=datasets.load_iris()X=iris.datay=iris.targetX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)

定义距离函数

defeuc_dis(instance1,instance2):dist=np.sqrt(sum((instance1-instance2)**2))returndist

模型函数

#此处的k为所预测的点的周围的样本取值defknn_classify(X,y,testInstance,k=5):distances=[euc_dis(x,testInstance)forxinX]#kneighors返回的是distances列表中d阿索引#但由于distances列表所引述徐与上方的训练数据索引相同,所以kneighors也是上方训练数据的索引kneighors=np.argsort(distances)[:k]count=Counter(y[kneighors])returncount.most_



转载请注明地址:http://www.lingpigui.com/lgzq/7604.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章