【基础数据挖掘技术】KNN简单聚类

KNN聚类技术

图为年龄与收入,是否会购买杂志

KNN就是选定一个K为半径,样本为原点的圆,如果圆内那个类别偏多,那么我们就将该样本分为该类。K为超参数,由于我们自己确定。

KNN理论基础:同一个集群的客户将表现出相同的行为。

所以集群与相邻的客户相同,它不是一种机器学习方法

劣势:效率低下,因为不能确定K所以要多次尝试。

很难解释为什么使用KNN聚类效果会比naïve prediction的预测好。

KNN与Naïve Prediction结果概率对比:

我们发现正确概率确实大很多。

实际运用KNN的3个步骤

数据的预处理(Data Preprocessing)保证属性(age vs Income)的度量(比例)scale没有问题。记得标准化

距离的计算(Distance Caculation):选择哪种距离计算公式

预测概率的推算(Predicted Probability)

步骤1:标准化

我们这里使用极值正规划(Min-max Normalization)【0,1】

转变效果如下:

步骤2几种距离计算:

曼哈顿距离(一次方),这个是街道距离,不是直线距离

其中的R公式如下:

欧式距离(二次方)

就是我们经典的距离公式了,直线距离

二者的差距在于p的把控最终公式为

当p等于1时为曼哈顿距离

当p等于2时为欧式距离

Python配件中就是以改变p来改变距离公式

步骤3:

比如有一个分3类的距离,测试数据样本为T,k=5.结果如下

最近一笔的目标为A类

第二近的一笔目标属性为B类

第三近的一笔目标属性为A类

第四近的一笔目标属性为C类

第五近的一笔目标属性为A类

则我们预测该笔目标属性值为A,准确率为3/5

案例1给下列疾病诊断数据,字段一是病人代号,后面的输入字段(喉咙痛、发烧、淋巴腺肿胀、充血,头疼)以及目标字段(诊断结果)

 

利用KNN预测下列病人的诊断结果(K=3)

Distance(Yes,No)=1

DIStance(YES,YES)=0

Distance(No,No)=0

两客户的distance计算方式采用截取距离

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晴天qt01

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

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

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

打赏作者

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

抵扣说明:

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

余额充值