欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模型,忽悠吗?--数据挖掘中的模式介绍 博客分类: BI 数据挖掘Excel网络应用JBossIDEA 

程序员文章站 2024-03-23 11:31:34
...
2007年1月12日

今天去探访了一家航空货运客户,了解了一些需求,是一个很标准的数据仓库项目。现有的面包黄油系统(业务系统)有很多,foc,icargo,xx等等,现在他们做统计、预算要用到一批报表,报表的数据源都是手工从各个系统的查询界面抓取到excel里面,然后再把excel手工制作成报表的样子。
好一个恶梦般的报表制作过程啊,数据仓库正是为了解决这个恶梦而产生的。但是老板今天没有着重介绍关于数据仓库的东西,而是引导他们认识“模型”这个东西,我想原因大概有两个:
1)挖掘更多的需求。
他们手工制作那批报表是几个小姑娘在做,客户“低估”了小姑娘的价值,也同时低估了这个系统的价值,只有挖出更多的需求才能赚钱。
2)推出关键竞争力:模型
一起来竞争这个项目还有两家公司,我们只是候选人之一,所以得有有竞争力的东西拿上台面来。老板选择了“模型”,这个竞争力刚在前不久的一个项目中胜出了,那家客户对老板提出的模型很感兴趣,所以选择了我们。
那什么是“模型”?
例子就是今天提到油价对他们成本的影响,他们估计油价占成本的50%左右,而且油价非常不稳定,所以导致收益也跟着波动,于是这里的模型就是收益随油价波动的一个相关曲线,继而可以设定油价预警线,在这个油价的时候收益可能只有5%,所以需要预警了,这个是只有一个油价因素的简单模型,实际情况得加入货物重量,飞行时间,维修费用等等因素建立一个互相制约的模型,进而可以根据某几个因素的变动从而对其他因素作出调整以达到收益最大化。
这个idea看起来很诱人,先不管它,再来看看数据挖掘中是怎么对模型作出定义和解释的。
很不幸,在data mining中他们不叫做模型,而是叫做模式(pattern),不过还好,名字不同,意义相通。
DM的功能就是:指定的DM任务中要找的模式,DM任务又分为描述(descriptive)和预测(predictive),那dm就是指定描述和预测的模式。也是说模式是dm的一个目标,模式经过评估和表示后就是知识,dm这个知识发现过程(kdd)也就结束了。
模式包括
1)概念/类描述:特征化和区分
比如顾客的概念包括:bigSpenders和bugetSpenders,这两个名词就是一个概念,每个概念都有它自己的特征,这就是特征化,每个概念都有用来区分和其他概念不同的东西,这个就是区分。
dm找到这种模式可以做什么?比如特征化后发现购买国产mp3的顾客都是bugetSpender,比如象我。
2)关联分析(association analysis)
关联分析就是发现关联规则(association rule)
关联规则是形如 X=>Y 的东西,即 A1C A2^ ...^Am => B1^ B2^ ... ^Bn 这种形式,其中Ai(i属于[1,m]) Bj(j属于[1,n])是属性-值对(attribute-value pairs),X=>Y 解释为:“满足X中的条件的数据多半也满足Y中条件”
比如:age(x,20...29) ^ income(x,20k...29k) => buys(x,"ipod") [support=2%,confidence=60%]
//support是支持度,就是所有数据中符合这条规则的数据占比
//confidence是置信度,就是满足规则左边条件的客户60%的可能买ipod.我买的是meizu的,但是不属于那另外的40%,-_-
最近在做规则评分的项目,用上了jboss rules (drools),这条规则用drools的drl语法就是:
When
        c:Customer(20<=age,age<=29 , 20000<=income,income<=29000)
then
        c.buys(new Mp3("ipod"));
drools里面的规则的置信度都是100%的 -_-
dm中把以上属性或谓词(predicate,例如buys这个动作)称之为纬度,于是上面这条规则就是多维关联规则(multidimensional association rule)了,好拉风的名词。
3)分类(classification)和预测(prediction)
    分类和前面的“类描述”很容易混淆。
    分类是:找出描述并区分数据类或概念的模型(model)或函数,以便能用模型预测类标记为未知的对象类。
    导出模型(derived model)是基于训练数据(training data,就是已知数据)的分析,它可以用多种形式来表达,比如分类(if-then)规则,判定树(decision trees),数学公式,神经网络(neural networks)
     分类可以用来预测数据对象的类标记,当被预测的值是数值数据时,通常称之为预测。
    4)聚类分析(clustering analysis)
     过程:本着最大化类内的相似性,最小话类间的相似性的原则进行聚类或分组
    5)孤立点分析
    孤立点(outlier):和一般的不一样的那些家伙。在一些应用中,比如欺诈分析,罕见的事情反而更有趣。孤立点分析也成为孤立点挖掘(outlier mining)
   6)演变分析(evolution analysis)
        描述行为随时间变化的规律和趋势,并对其建模。这个在计量经济学里面专门有时间序列分析来整。
     OK,就这些了,了解了这些模式对数据挖掘也就有了一个大概的了解了,因为dm也有人称之为模式分析,大致的过程就是发现上面这些模式或者运用这些模式,还不一定全用上。

     回到今天俺老板力推的模型,实际上就是一个关联分析,这个我在学计量经济学的时候还整了个关于各种电脑配件价格和一些市场因素的关联小模型来忽悠过老师,不过建立一个收益、成本因素的关联模型来给客户就不是那么好忽悠了。关于忽悠,dm中也有介绍,就是模式是不是有趣(interesting)的。怎么衡量是否有趣呢,有两个比较重要的指标,就是前面提到的confidence和support.
    这次客户对我们的idea的评价是很有意思,看起来也就是很有趣了,不过只有建立模型并找到模式才能知道他们的confidence和support是多少了,希望是真正的有趣。