发明名称 基于改进最近邻算法的忠诚度预测方法
摘要 本发明公开了一种基于改进最近邻算法的忠诚度预测方法。该方法包括:在忠诚度分类预测时,首先利用贝叶斯算法对数据集进行预处理,筛选出非忠诚客户和忠诚客户(包含忠诚度高的客户和忠诚度低的客户);再用最近邻算法对忠诚客户做进一步分类,从而得到高忠诚度客户,完成忠诚度预测。本发明降低K值即选择多少个邻居对最近邻算法的影响;减少其内存开销;具有明显的时间优势;提高忠诚度分类的准确率。
申请公布号 CN106372670A 申请公布日期 2017.02.01
申请号 CN201610804842.1 申请日期 2016.09.06
申请人 南京理工大学 发明人 朱虹;李千目
分类号 G06K9/62(2006.01)I;G06Q10/04(2012.01)I 主分类号 G06K9/62(2006.01)I
代理机构 南京理工大学专利中心 32203 代理人 王玮
主权项 一种基于改进最近邻算法的忠诚度预测方法,其特征在于包括以下步骤:步骤1,已知忠诚度类别的训练数据集D,其包含N个属性和M个忠诚度类别,将属于同一忠诚度类别的训练数据个数除以训练数据集D的总个数,获得该类的先验概率即P(C<sub>i</sub>);步骤2,待分类未知类别的测试数据集X,其包含N个属性,计算测试数据集X中一条测试数据的指定属性列上指定值出现的概率,即类条件概率P(X|C<sub>i</sub>);步骤3,在训练数据的基础上预测一条测试数据的忠诚度类别即P(X|C<sub>i</sub>)P(C<sub>i</sub>);步骤4,重复步骤1‑3,直到将测试数据集X遍历完毕;步骤5,将测试数据集X的类别标签为忠诚客户的数据放入集合S中,集合S包括忠诚度高的客户和忠诚度低的客户,此时将集合S作为测试数据集;步骤6,设置一个长度为j且按距离由大到小排列的优先级队列,用于存储最近邻训练元组;步骤7,随机从已知类别的原训练数据集D中提取j个元组作为初始的最近邻元组;步骤8,设F<sub>1</sub>=(f<sub>11</sub>,f<sub>12</sub>,...,f<sub>1n</sub>)和F<sub>2</sub>=(f<sub>21</sub>,f<sub>22</sub>,...,f<sub>2n</sub>)为2个样本特征向量,f<sub>ij</sub>代表样本F<sub>i</sub>的第j个特征的值,则F<sub>1</sub>和F<sub>2</sub>的欧式距离公式为<img file="FDA0001110417680000011.GIF" wi="599" he="141" />根据该公式从S中取一条测试数据,分别计算其与这j个元组的距离d,且将训练元组的忠诚度类别和距离存入该优先级队列;步骤9,计算训练数据集D中某条训练数据与该条测试数据的距离d,将其距离d与优先级队列中的距离最大值d<sub>max</sub>比较;如果d&lt;d<sub>max</sub>,则删除优先级队列中与之距离最大的元组,将当前该条训练数据的类别和距离存入优先级队列;否则舍弃该条训练数据,访问下一条训练数据;重复此步骤,直至训练数据集D遍历完毕;步骤10,将队列j中占多数的忠诚度类别作为测试元组的类别,从而得到高忠诚度客户,重复步骤7‑9,直到将测试数据集S遍历完毕;步骤11,计算该算法所消耗的时间T;读入目标数据集O,其为测试数据集X的真实类别,并读入上述所有测试数据集的预测类别,将其与目标数据集O进行逐一比较,从而获取算法的正确率W。
地址 210094 江苏省南京市玄武区孝陵卫200号