杜说机器学习: KNN帮你找到高富帅

KNN(K-Nearest Neighbor)是机器学习中一种基础的数据分类算法,这里我通过一个故事来给大家明白它到底有什么用。

从一个笑话开始。

相亲时,姑娘很漂亮,问小伙子:你有三室两厅的楼房么?

小伙子:没有。

姑娘又问:有宝马5么?

小伙子:没有。

姑娘很不高兴:那算了。

相亲结束。小伙子很沮丧,回去跟父母说了这事。

父亲愁眉苦脸:车好说,把咱的宾利卖了能买好几两宝马,

可是咱犯不上为了这事把咱的大别墅换成三室两厅的楼房啊。

在这个笑话里姑娘的相亲匹配算法有问题,太粗暴,太简单,并且没有把相亲标准数据化,标准定制的太笼统了。

不应该定三室两厅的标准,应该是看房子的大小,平米数。

也不能把车的标准定成上面品牌的车,应该看车子的价格。

导致错过了一段大好姻缘。

假如姑娘用KNN算法,来挑选相亲对象,那么她一定不会犯上面那样的错误。

我们来用KNN算法帮姑娘找到理想的结婚对象。

一般姑娘的相亲对象分为三类:

A(特别满意,恨不得明天就去领证),

B(感觉一般,可以相处一段时间再看看),

C(不满意,以后不想再联系)。

而判断相亲对象类型的标准2条,房子大小,车辆价格。

下面是几个别人家姑娘的男朋友的数据,我们这里作为参考(也叫样本数据):


杜说机器学习: KNN帮你找到高富帅_第1张图片

现在有个相亲对象,赵大平,情况是这样房子100平,车30万,

那他应该是什么类型的相亲对象那?

我们来计算一下他和上面的样本数据之间的差距(也叫距离),

这里我们使用曼哈顿距离(啥叫曼哈顿距离,百度)


杜说机器学习: KNN帮你找到高富帅_第2张图片

那我们对上面的数据按从小到大排个序:


杜说机器学习: KNN帮你找到高富帅_第3张图片

这里我们取前4个男生(当然也可以取3个,取5个,取的少不准,取的多准确,但是复杂,一般不超过20):

李有财(B类型),王小明(B类型),刘没钱(C类型),高很富(B类型)。

在这前4个距离赵大平最近的男生里,B类型的最多(3/4,也就是75%),

C类型的少(1/4,也就是25%)。

那么我们就取占比最大的类型,也认为赵大平是B类型的,可以处处。

这就是KNN算法。

也有同学会问:这么麻烦干嘛,姑娘以前的标准是简单,但是你的也太麻烦了,又是样本数据,又是排序的。能不能划分区间啊,房子大于500平米的特别满意,500平米到90平米的可以处处,不到90平米的PASS不行,这多简单。

但是现实情况比较复杂,好多事没有确定的边界。你设定90为边界,那来个89的那?按照区间的划分,这个就PASS掉了,可实际情况90和89差不多。没法子划区间。

下面可以关注下杜说机器学习的公众号:


杜说机器学习: KNN帮你找到高富帅_第4张图片

你可能感兴趣的:(杜说机器学习: KNN帮你找到高富帅)