KNN基础知识

目录

KNN基本思想(K-Nearest Neighbor)

 距离定义:

距离计算:

连续性数据

 对iris进行KNN聚类:


KNN基本思想(K-Nearest Neighbor)

KNN是分类算法

原理:投票

步骤: 1. 算距离:给定目标,计算它与训练集中的每个样本的距离        

2. 找邻居:找到距离最近的k个样本,作为给定目标的近邻          

3. 做分类:根据这k个近邻归属的主要类别,来对给定目标分类               

 距离定义:

距离函数d(x,y)应满足的准则:

距离计算:

连续性数据

连续型数据距离: 设             和              为坐标系中的两个点

闵可夫斯基距离(Minkowski Distance

时为欧几里得距离(Euclidean Distance

时为曼哈顿距离(Manhattan Distance

时为切比雪夫距离(Chebyshev Distance

 

余弦相似度Cosine Similarity

注:余弦相似度只与向量方向有关,与向量长短无关。;受向量平移影响

 皮尔逊相关系数(Pearson Correlation

注:皮尔逊相关系数具有平移不变性和尺度不变性

散型数据距离

汉明距离(Hamming Disstance编辑距离

将字符串s1变为s2所需要的做的最小替换次数

例:10111011001001的汉明距离为 2

tonedroses的汉明距离为3

杰卡德相似度(Jaccard Similarity:用于比较有限样本集之间的相似性和差异性

其中,AB为两个有限集合

汉明距离(Hamming Disstance编辑距离

  将字符串s1变为s2所需要的做的最小替换次数

        例:10111011001001的汉明距离为 2

            tonedroses的汉明距离为3

   杰卡德相似度(Jaccard Similarity:用于比较有限样本集之间的相似性和差异性

     其中:    为用户A没看过而用户B看过的电影

               为用户A看过而用户B没看过的电影

               为用户A看过且用户B看过的电影

 对iris进行KNN聚类:

import numpy as np
from sklearn import datasets
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
 
 
iris = datasets.load_iris()
 
train_data, test_data, train_label, test_label = train_test_split(iris.data, iris.target, test_size=0.2, random_state=0) #训练集占百分之八十,测试集占百分之二十
 
mlp = MLPClassifier(hidden_layer_sizes=(20,3),random_state=1)
mlp.fit(train_data,train_label)
 
pre = mlp.predict(test_data)
print("Training set score: %f" % mlp.score(train_data, train_label))
print("Test set score: %f" % mlp.score(test_data, test_label))
print("真实:")
print(test_label)
print("预测:")
print(pre)
 

结果如下: 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值