20120620数据挖掘经验谈

http://db365.net/home.php?mod=space&uid=19鉴于CSDN无故删除博文,本博客不再更新,暂时迁至http://www.db365.net


商业智能群199567325,2012年6月20号《数据挖掘经验谈》,讲解者:ltd,本文整理者蓝天星月。

6月20日晚9点由大神ltd讲解数据挖掘

先抛个砖

有一大堆已知公式,类似A 操作B = C、AX 操作BY = CZ 这种

要求从里面推导出每一个因子 操作 另一个因子的结果

求思路

比如,A 操作A = ?

A 操作 B = ?

从数据的角度去想啊,不求100%准确

别绕到离散数学上去了

 

首先,什么是挖掘

挖掘能做什么

在我看来,万物皆数据,一切尽可挖

关键在于看问题的角度

恩!挖掘我认为这都是看客户!给主题咱们区做挖掘!对吗!

对于刚才那块砖

从高等数学的角度,那个是运算符推导。

从离散数学的角度,是逻辑演算

至于从数据的角度,就是聚类了

挖掘,本质上就是从一大堆错综复杂的线团里面找到那个头

线团,就是平时我们面对的数据了

线头,就是需要我们去发现的模式

很多时候,我们会面对大量、复杂的数据。很容易就陷入到细节、内部机制而无法自拔

挖掘的目的就是从大量、复杂的数据中找规律。不拘泥于细节,不受限于内部机制

做挖掘有几个要点

1,要有效果预期和推倒重来的心理准备……

2,模式、模型、算法都不是固定的。不是说聚类模型不能用决策树,也不是说神经网络只能做分类判定。换个思路一想可能就豁然开朗了

效果预期是指

挖掘不是万能药,也不可能做到100%。做精细化营销的,能提升4成肯定是上帝。做天气预报的,50%准确率就能保住饭碗。

在你动手之前,你要有个预期或者说计划。期望能达到多少准确率。

这个在挖掘上有个概念叫准确度,即你发现的模式套用在对照组上能有多少准确率。

通常80%以上就可以采用了

同时,衡量挖掘是否成功,还有另一个指标。有趣度

有个很简单的解释。你挖掘半天,结果发现1+1会100%等于2。这虽然是个绝对准确的模式,但却是个有趣度=0的……

同时,衡量挖掘是否成功,还有另一个指标。有趣度

有个很简单的解释。你挖掘半天,结果发现1+1会100%等于2。这虽然是个绝对准确的模式,但却是个有趣度=0的……

问:有趣度是否能理解成业务价值发现的指数?

答:

也就是你这个模式的价值

ok

第一部分,挖掘的目的、目标。结束

-------------------------------

提问:

1.我的问题

 在什么情况下

需要做数据挖掘

答:其实,很多很多地方都可以用到数据挖掘。

只是看你用这个思路去想没有

我们现在的模型,准确度阀值80%,有趣度阀值10%

2。思路?挖的这个是一个理论值 还是一个精确值啊

就是说这个只是理论上的准确

答:这个是可以验证的。

挖掘通过最久的历史来模拟最近的未来。

3。 数据挖掘

真正玩起来

投入有多大

答:很耗时间,特别看boss的气度

4。有趣度阀值怎么定得,有定量得计算吗

答:挖掘,挖的是模式

准确度和有趣度都只是这个模式的衡量指标而已

两个指标都有计算方式

5。公式给我看看

答: 貌似公式比较复杂

通常,会挖掘出大量的模式。各自有不同准确度及有趣度

按阀值来决定哪些模式可用,哪些抛弃

6。有趣度阀值,还是不知道怎么算出来

答:阀值是你自己定的……

7。有趣度怎么算,举个例子

答:你认为多少有趣度能产生效果,就是多少

算法思路很简单,实现比较麻烦

模式与现有数据模糊匹配越高,准确度越高。

模式与现有数据完全匹配越低,有趣度越高……

阀值倒确实是拍的比较多。看经验,看项目要求

啤酒和尿布那个例子

很少有用户同时买啤酒和尿布。模式准确度=同时买的人数/总体人数。肯定不高

但有很多用户同时买啤酒+ABCDE,ABCDE+尿布。这个模式的有趣度就比较高。= 1/6

 

------------------------------

 

现在是第二部分,如何做挖掘

做挖掘,首先第一点是预估模式

拿到一大堆数据,杂乱无章的

首要的任务是猜测,这里面会包含什么样的模式

猜测有什么样的规律隐藏在里面

------------------------

提问

8.有哪些模型?雪花或者星型吗??

答:呵呵,这和雪花星型是两回事了

模式的意思是规律,或者内在联系

-----------------------

通常书上把挖掘模式分为分类、聚类、回归、时序、预测等几大类

我认为挖掘就3类,分类、聚类、时序

最简单的例子,什么叫模式

男人找女朋友,这个模式的准确度很高,有趣度不高……

回归,分为连续回归和离散回归

连续回归直接用时序。离散回归用分类

比如现在给你一大堆荷兰男女结婚的数据

要分析模式。

会得到3种,男男、女女、男女

分类模式的主要特征是:有样本、有判定要求,无时效性。

最经典的例子就是贷款

银行根据以往经验,结合你的情况来决定给不给贷款,贷多少款

不考虑其他因素,你今天去申请贷款和明天去贷款,应该结果是一样的

聚类模式的主要特征是:单个体多样本,没有已知判定,无时效性。

最简单的例子就是啤酒和尿布了。

每个人每次都会买一些东西。总会有些东西的组合是某一群人都喜闻乐见的。

比如欧洲杯期间,小食、卤菜、啤酒饮料放一起卖肯定卖得好……

两个的核心差异就在于有没有预定判定。

比如银行贷款,他的最终结果,贷还是不贷,贷多少就是判定

而聚类就没有这样的判定

你要看欧洲杯,就要买啤酒和小菜也好。

你恨欧洲杯,就要买性感内衣、榔头、高音喇叭也好……

 分类 模式已知

 聚类 模式未知

分类,只是结果的列表已知

需要找出的是,为什么或者如何产生结果

聚类,结果未知

需要找出的就是联系

第三种,时序模式

特征最为明显,凡是有时效性的,都算时序。

比如天气预报、股市、你的身高预测

时序的特点就是

当前的结果是由一大堆历史影响的

你今天进入的河,和你昨天进入的不是同一条

但同时,别人今天能进入你进入那条河……

第一句话是时序的概念

第二句就是时序挖掘的核心思想了

彩票、股市这种东西影响因素太多

已经不是挖掘能搞定的了

呵呵,表扯到因果论上去了

真正时序算法,通过马尔科夫链,已经没有因果了

时序分析,只能得到一个几率

就好像天气预报,明天降雨概率50%

这个是第三部分了,经典模型和经典算法……

好了,回到正题

3种模式都讲到了

当拿到一个挖掘课题,首要任务就是划分这是哪种模式。或者说,你认为它是哪种模式

马尔科夫链,会在第三部分的经典模型算法里面再提到。先不管这个

同一个课题,你从分类的角度看,觉得可能有结果。换成聚类的角度,也可能有结果。

这中间如何权衡主要就看经验了。

考虑到挖掘是种迭代式开发,随便选哪个开始都没什么区别……

能自己划分的最好,不能划分的就假定。

挖掘的过程就是不断尝试不断迭代

我曾经做一个聚类模式,光模型就换了4个,阀值尝试了无数次……

最终有一个准确度80,有趣度11的……

刚好及格

假定一个模式以后

接下来就是考虑模型和算法了

这两者是相辅相成的

一般都从经典模型入手

比如分类模式主要有贝叶斯模型、决策树模型、神经网络模型

聚类模式主要是距离聚类、密度聚类、关联聚类

时序最简单,就时序和时序聚类

不同的模型有不同的算法

一般来说,某个模型只是指定了其算法的核心点。其他实现无所谓

比如贝叶斯,其关键就是条件概率。

A出现时有多大机会出现B

至于这个具体是什么,有可能A是中弹、B是死亡;或者A是买车、B是买保险;etc。

根据具体指义的不同,其算法实现也可能有差异。这点就只有自己把握了

而决策树对我们来说可能最好理解

一大堆的if else、case when……

给定一个样本,一个个if下去最终结果就出来了

神经网络是最麻烦的,也是最实用的。

因为它是唯一一个能自主反馈的模型。

具体的话太复杂,懒得打字了,哈哈哈

严格来说决策树的判定结果是离散的

有可能出现1、2、3这种分支

总结下,因为分类模式是已知判定范围。

所以它挖掘的目的就在于找出判定条件

不管是贝叶斯、决策树还是神经网络,核心都在找到判定度量上。

具体算法有很多,这里就不一一列举了

而对于聚类模式就复杂的多了

贝叶斯网络

在我看来,这就是贝叶斯+神经网络的集合体而已

贝叶斯是基于概率的推导

神经网络本身是基于计算函数的推导

贝叶斯网络只是把计算函数改成概率计算而已……

以前神经网络上1+1=2,现在贝叶斯网络告诉你,1+1有50%<=2,50%>=2……哈哈哈

当然,这种模型也有它的可取之处

只是我个人不太喜欢而已

结合模糊集来看,贝叶斯网络很实用

模糊集的核心就在于,A和B两个集合的计算结果是个不定值,上限可能是A,下限可能是B

这在现实生活中有很多应用

当然,这种模型用起来相当痛苦

有人打120报警,你该如何安排救护车?

你知道有两人打架,你能确认什么时候人会挂么……

挂的越早越需要救护车,挂的越晚越不需要救护车

哈哈哈

这就是模糊集的概念了

很多样本都只是一个范围,或者说一个上限一个下限

而你挖掘的目标,就是在这个上下限条件内找一个符合条件的上下限……

模糊的条件,模糊的结果

这就是模糊集和贝叶斯网络这种不好玩的东西……

建议,一开始不要摸这个,越看头越晕

对准确挖掘有了解了再说

实际上,通过离散化和桶化,很多模糊挖掘都能转化为准确挖掘

这是另一个问题了,在这里不讨论

回到聚类上

聚类的经典也是核心模型就是散点图。

撒一大把豆子在地上,看能画出什么图形来

这就是聚类

实际应用中,一大把豆子就是样本

画出的图形就是你要找的模式

画图形的方法主要是3种,也就是刚才提到的3种模型,距离聚类、密度聚类、关联聚类

问:这三种有使用情景吗

答:模型没有使用情景的限制

模式才有

模型只是实现方式的不同而已。同一个问题,既可以用距离,也可以用密度

 

 

直观来说,距离聚类就是在图上画圆圈。

在哪个位置画多大的园能把最多的点包进去

很容易就想到了,这是最简单,也最粗糙的模型

算法效率很高,准确度不高

密度聚类呢,就是在图上画等高线

豆子越多的地方,‘海拔’就越高

最后,根据你期望的准确度、有趣度来决定选多高的‘海拔’

最后一种关联聚类

你的豆子突然都有磁性了,有些能吸到一起,有些会跑开老远

等豆子稳定下来了再看,哦,有几个大圈出来了……

说不定连电磁场都出来了,哈哈哈

从这3种模型很容易就看出来

距离聚类的核心在于如何计算圆的半径,

密度聚类的核心在于计算‘海拔’也即是密度,

关联的核心在于计算‘力场’

至于具体怎么算,高数、电磁学上面一大把的经典算法

唯一要关注的就一点。

距离聚类的半径有可能不是豆子的距离,而是重量……

密度聚类的海拔有可能是浮力

关联更纠结,万一有些区域断电了呢

这些模型重要的是思路,而不是具体实现

好了,现在模式定了,模型有了,算法也在设计了

那就拿样本开刀了么?

还有很重要的一步要做

很多资料上都提到过

训练集和对照集,或者叫什么训练组、参考组

这个在挖掘里面是很重要的

如果直接拿样本开刀

只要你的模式、模型、算法没有错误

出来的结果准确度绝对是100%

能理解吧

因为你是为整个样本发现了一个模式

一个庞大、但很可能有冗余的模式

那么,如何来评估你这个模式的准确度

等到下个用户来申请贷款,你判定一次贷给他1E试试?

那肿么可能……老板会直接开了你的

一般而言,在开工以前

会将样本划分为训练集和对照集两部分。

为了尽可能减少误差,有时甚至会用不同的随机数选择样本来生成多个训练集对照集,再来进行多次模式训练

偷懒的话,随机取吧,前一半训练,后一半对照

或者单数训练,双数对照

这个无所谓

提问:

9.:对照得是不是要少一点好,而且,我觉得训练和对照要随机分配一下

答:多少问题都不大

为了准确度,采用多次切分训练和对照还更有效

比如ABCD4个样本

第一次以AB训练,CD对照

第二次以AC训练,BD对照

第三次以BCD训练,A对照

这么3次下来,准确度会准确很多

但这样有个问题,3次训练的结果,很有可能差异很大。为什么?

比如,拿AB训练(两个都是异性结婚)

得到结果,异性结婚

结果拿到CD来对照(一同性,一异性)

好嘛,你的模式准确度只有50%……

有可能训练集的差异,有可能你的模式有问题。甚至可能模型算法都有问题

不坏,取训练和对照的方法很多

我只是说我习惯随机取而已,我懒,哈哈

到这里,模式准确度怎么计算,应该很清楚了吧?

 

有趣度的计算刚才提过了

这里再换个说法

假如我们来挖掘太阳系9大行星的位置。

会发现,太阳原来是太阳系的中心……

恭喜你,在哥白尼之前,你的有趣度是100%

当然,请当心火刑……

而在我们读书的时候,你的有趣度就是0了……大家都知道了

算出准确度和有趣度了,模式就可以评估了。

接下来,就该丢到线上去测试了

去给用户发放贷款吧

亲,你个人资产不足1E,我们不能贷1E给你……

有趣度高的模式会是这样

亲,你长得太丑,我们不贷给你……

接下来,就是获取反馈,调整样本

修正模式或者重新训练了

继续迭代

整个挖掘流程就这么搞定了

 

结束!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值