前言
原来经常在别人博客、书或者论文中上看到weka这个数据挖掘工具,经常被用于试验数据测试、真实数据分析等。今天无意中翻阅到IBM技术博客中对weka有一个系统教程:“用weka进行数据挖掘”,教程分为1、2、3三部分(链接见参考文章1,非常不错,推荐大家阅读),看完文章后对数据挖掘几种常见的技术有了一定的了解,现谈谈个人的理解。
在实际的数据挖掘与其他计算机工程应用中经常会遇到:如何通过已知的数据或者条件来预测未知事物的属性或者用户的喜好等。例如,在分析恶意程序或者文档中经常提到的贝叶斯分类算法;著名的亚马逊在你购买某种商品时给你显示的“你可能感兴趣的”;《大数据时代》书中提到的基于以往的航班信息推断航班是否晚点或者飞机票价格等,这些都是利用数据挖掘的相关技术来实现的,可能我们现在可以做的跟实际的工程应用相差很远,但是通过学习至少可以对这些技术有所了解。
Weka是什么
谈了这么久,还没有说到Weka是什么。weka可以看作是一个数据挖掘的工具,可以对格式化的数据进行分析并给出分析结果或者构建一个模型,我们可以从这些分析结果发现某些特征或者可以利用这个模型来分析其它同类数据。IBM系统文章中主要介绍了weka的四类数据挖掘技术:回归、分类树/决策树、群集、最近邻。这四类技术基本上囊括了数据挖掘的核心思路,通常我们在文章或者论文中看到贝叶斯、SVM等各类算法在weka中都有集成,同时weka还提供开发接口,可以直接将这些算法快速集成到自己的项目或者程序中。
四类技术
这里主要是对回归、分类、群集和最近邻这四类技术做一个概念阐述,具体如何操作可以参照IBM系列教程一步一步做,相信通过教程中的试验可以对weka和数据挖掘技术有一个简单的认识。
回归技术
回归技术,用来基于其他的示例数据预测一个数值输出。在IBM系列教程1中,主要用一个房子定价来阐述该类技术的用途,简单地说就是通过对周围出售房子的配置和价格进行统计,然后推算附件地区特定配置房子的房价。
例:房子定价。房子的价格(因变量)是很多自变量 — 房子的面积、占地的大小、厨房是否有花岗石以及卫生间是否刚重装过等的结果。所以,不管是购买过一个房子还是销售过一个房子,您都可能会创建一个回归模型来为房子定价。这个模型建立在邻近地区内的其他有可比性的房子的售价的基础上(模型),然后再把您自己房子的值放入此模型来产生一个预期价格。
分类技术
分类技术,即分类树或决策树,用来创建一个实际的分支树来预测某个未知数据点的输出值。在IBM系列教程2中,主要是预测的是对BMW促销活动的反应。
例:促销活动。BMW经销店正在启动一个推销计划,试图向其老客户推销两年延保。通过对原来顾客的数据分析来构建模型,从而判定一个人是否有延保需求,要求模型的准确率要尽可能高。此时可以通过对原来购买车主的收入水平、第一辆BMW购买的年/月、最近的BMW购买的年/月、是否过去曾响应过延保计划这个参数来作为实验数据,然后通过特定算法来构建模型,最近通过剩余部分数据来判定模型的准确性。
群集技术
群集技术,可用它来创建数据组(群集)并从中识别出趋势和其他规则。在IBM系列教程2中,主要是通过对人们的行为来区分是否有购买汽车的需求等。
例:行为特征研究。BMW 经销店保留了人们如何在经销店以及展厅行走、他们看了哪些车以及他们最终购车的机率的记录。经销店期望通过寻找数据内的模式挖掘这些数据并使用群集来判断其客户是否有某种行为特点。
最近邻
最近邻技术。这种算法非常适合于寻找接近于一个未知数据点的那些数据点并使用来自这些值的已知输出来预测未知输出。我向您展示了这种数据挖掘为何对在线购物网站上的推荐产品功能非常理想。通过一些数据挖掘,像亚马逊这样的站点可以快速(对于这类站点是最起码的,因为有数千台计算机)告诉您与您类似的其他顾客购买的东西。
核心思想
数据挖掘最为重要的一点:正确的模型必须用于正确的数据。只有在了解常见的数据挖掘技术后才能在实际应用中快速选择最适合的技术和算法。 PS:weka里面算法很多,得找点文章研究下如何在weka中使用常见的算法才行。