1. 主页 > 网络营销 >

机器学习:基于Knn算法的用户属性判断方案设计

本文作者通过Knn算法举办了一次用户判定预测的流程,文章为作者按照自身履历所做出的总结,但愿通过此文可以或许加深你对Knn算法的认识。

呆板进修:基于Knn算法的用户属性判定方案设计

knn算法简介

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上较量成熟的要领,也是最简朴的呆板进修算法之一。knn的根基思路是:假如一个样本在特征空间中的k个最相似(即特征空间中最相近)的样本中的大大都属于某一个种别,则该样本也属于这个种别。

如下图所示,如何判定绿色圆应该属于哪一类,是属于赤色三角形照旧属于蓝色四方形?

假如K=3,由于赤色三角形所占比例为2/3,绿色圆将被鉴定为属于赤色三角形谁人类

假如K=5,由于蓝色四方形比例为3/5,因此绿色圆将被鉴定为属于蓝色四方形类。

呆板进修:基于Knn算法的用户属性判定方案设计

由于KNN最相近分类算法在分类决定时只依据最相近的一个可能几个样本的种别来抉择待分类样本所属的种别,而不是靠鉴别类域的要领来确定所属类此外,因此对付类域的交错或重叠较多的待分样本集来说,KNN要领较其他要领更为适合。

因此,k值的选择、间隔怀抱以及分类决定法则是k近邻算法的三个根基要素。

真实业务场景

某公司存在有一些数据样本(500*5矩阵),是关于人群属性的一些特征,但愿通过已知数据的特征,猜测出部门方针数据的性质,如果特征向量包括:

平均逐日游戏时长-game time

异性伴侣数-female friends

周末在家时长-stay-in time

用户接管范例-attr(attr是方针判定属性,同时也是标志属性)

呆板进修:基于Knn算法的用户属性判定方案设计

问题:我们需要按照已知的这些属性,判定最后一个样本的属性是“Y”照旧“N”

数据特征阐明

我们所拿到的这批数据是500*5的矩阵,以平均逐日游戏时长,异性伴侣数,周末在家时长为轴,将差异属性的点用差异颜色区分,操作matplotlib绘制散点图,最终结果如图。

由于这些测试数据在空间的漫衍很是会合,所以对付需要验证的点(红,绿两点),我们很容易区分出这些点的属性
团结本次的业务场景,我们将通过前三种特征的空间漫衍,对attr属性举办预测

呆板进修:基于Knn算法的用户属性判定方案设计

详细算法

在三维空间中,我们可以直观判定,那在详细的算法实现中,可以思量利用

n维空间的欧氏间隔:

通过以上公式,我们能对多维度数据举办阐明,获得方针与各点的间隔。

同时,细心的读者必定思量到,我们已知的这些特征,存在量级之间的差别,所以我们凡是需要通过归一化特征值,对消除差异量级造成的影响。因此,我们选用0-1尺度化(0-1 normalization)对原始数据的线性调动。

0-1尺度化:

在通过以上两步对数据预处理惩罚完成后,我们将所得的间隔举办排序,并选取符合的K值对方针数据举办预测。

呆板进修:基于Knn算法的用户属性判定方案设计

在此选择k=10(仅举例),可以发明,前10项中Y呈现的次数最多,因此我们可以认为方针数据的值为Y。

knn算法总结

在数据阐明团队确定好数据特征后,对相应数据举办收集及清洗,对各数据特征举办归一化处理惩罚(视详细业务场景定,或需特征思量权重),完成以上流程后,举办以下通用流程:

计较测试数据与各个练习数据之间的间隔;

凭据间隔的递增干系举办排序;

选取间隔最小的K个点;

确定前K个点地址类此外呈现频率;

返回前K个点中呈现频率最高的种别作为测试数据的预测分类。

最后,我们简朴总结一下Knn的合用场景

数据已存在标志特征,Knn是监视算法

样本数在100k以下,由于算法会对每个方针值举办多维度间隔计较,所以样本过大大概超负荷

样本非文本,或可转化为数值

以上即是通过Knn算法举办了一次用户判定预测的流程,文中所展示内容均为模仿数据,且选择了个中最简朴的判定属性。如文中有漏掉及不敷,请列位指出。

本文由摸索网(http://www.lnmosuo.com)发布,不代表摸索网立场,转载联系作者并注明出处:

联系我们

工作日:9:30-18:30,节假日休息