用 WEKA 进行数据挖掘,第 3 部分: 最近邻和服务器端库
2010-06-23 00:00:00 来源:WEB开发网并且,此算法不只限于预测顾客购买哪个产品。它还可被用来预测一个 Yes/No 的输出值。考虑上述例子,如果我们将最后一列改为(从顾客 1 到顾客 4)“Yes,No,Yes,No,”,那么用 1-最近邻模型可以预测第 5 个顾客会说 “Yes”,如果用一个 2-最近邻算法也会得到预测结果 “Yes”(顾客 1 和 3 均说 “Yes”),若用 3-最近邻模型仍会得到 “Yes”(顾客 1 和 3 说 “Yes”,顾客 2 说 “No”,所以它们的平均值是 “Yes”)。
我们考虑的最后一个问题是 “我们应该在我们的模型中使用多少邻?” 啊哈 — 并不是每件事都这么简单。为了确定所需邻的最佳数量,需要进行试验。并且,如果要预测值为 0 和 1 的列的输出,很显然需要选择奇数个邻,以便打破平局。
针对 WEKA 的数据集
我们将要为我们的最近邻示例使用的数据集应该看起来非常熟悉 — 这个数据集就与我们在上一篇文章的分类示例中所用的相同。该示例关于的是一个虚构的 BMW 经销店及其向老客户销售两年延保的促销活动。为了回顾这个数据集,如下列出了我在上一篇文章中曾介绍过的一些指标。
延保的以往销售记录中有 4,500 个数据点。数据集中的属性有:收入水平 [0=$0-$30k, 1=$31k-$40k, 2=$41k-$60k, 3=$61k-$75k, 4=$76k-$100k, 5=$101k-$150k, 6=$151k-$500k, 7=$501k+]、顾客首辆 BMW 购买的年/月、最近一辆 BMW 购买的年/月、顾客是否在过去对延保的促销有过响应。
清单 2. 最近邻 WEKA 数据
@attribute IncomeBracket {0,1,2,3,4,5,6,7}
@attribute FirstPurchase numeric
@attribute LastPurchase numeric
@attribute responded {1,0}
@data
4,200210,200601,0
5,200301,200601,1
...
更多精彩
赞助商链接