X.d 笔记

小Web,大世界

0%

数据挖掘笔记四:介绍

写完了前三个小部分发现连介绍部分都没写,所以说预处理有多么重要。

技术人员对大数据的印象会和有不同、各种名词,算法,会让人敬而远之,就像搞程序一样,外行人认为是技术牛X,内行人看着都是狗屎代码。

数据挖掘介绍

可能大家已经看过不少大数据介绍的视频了,很多介绍诸如大数据知道哪里会犯罪,大数据知道你正在电脑上干嘛,大数据知道哪些货好卖了,甚至还有视频放屁说大数据能预测双色球中奖号码!也许你会觉得很酷,认为大数据就是这么牛,然后再一看算法,又完全不知道如何套用,就一直把美好存心中了,唯一的用处就是每每别人讨论大数据时,可以插上两句话,让别人认为你有点内行。

见的多了的词汇

大数据、机器学习、云计算、数据挖掘,这些是一个概念吗?为何这些关键字总会一起出现?

大数据一般就是指用普通服务器无法处理的数据,比如TB级别的数据,如果要对数据进行一些处理,比如搜索这么多数据中的一条记录,很难通过一个服务器,一个程序去搞定。大数据技术就是解决这类问题的,一般大数据会与数据挖掘产生一定的关系,因为大数据如果不进行挖掘,数据就如一座矿山停在那里,山里面的金矿一直在山里面。大数据处理技术一般可以很好的为下一步的数据挖掘服务,企业的核心竞争力也是在数据挖掘这一块。

数据挖掘也并不是一门独立的学科,是由各种各样的知识,聚焦在一起,去大数据里面探索金矿的知识,包括了数学如概率统计、线性代数、微积分等,计算机科学:如计算机理论、数据结构与算法、可视化技术,根据要挖掘的数据性质不同,还需要专业业务知识,各种社科知识等。总之只要你手上的工作是从数据里面找出有用的数据,不一定非得是大数据,那么你就可以说你在做数据挖掘了。

云计算:当你有了数据之后,写出了算法之后,想去跑一跑,但如果算法需要的计算量很大,那个人电脑估计就独木难支了,可以去云计算服务器去买,云计算和传统的服务器的区别就是用多少,买多少,不用了就不给钱了,扩展起来也容易。

机器学习,专指数据挖掘里面的学习,和计算机相关的部分,里面有很多算法,很多技巧,将数据挖掘的理论知识变为可能。深度学习,实际上就是神经网络算法多加几层而已。

笔记不会做太多的介绍,总之,不要看太多的软文,放手去做才是最重要的,并不像你想的那么难呢?不要去看那些离我们太远的分析,最好就是拿身边在用的数据就行。

数据挖掘解决问题

Classification : 分类问题、预测问题

分类问题是指给定一些已知的数据进行训练,得出一个模型,再来一个未知的数据,可以根据模型算出这条数据属于什么类别。

比如我们平常在程序中将用户每天操作多次分类为活跃用户,按充值的额度将玩家分类为低中高,就是很简单的分类器,没有高端算法,目的明确,简单明了,直接有效,去解决问题时,也要因时而宜,可以简单搞定的东西,就不要过分追求高大上了。

但比较高大上的系统就不是这么几个简单的判断就能搞定的了的了,比如网站上常出现的“猜你喜欢”,实际上也是一个分类器,把商品、广告、文章的类别根据浏览者的兴趣进行分类,又比如你上传一个图片,程序怎么知道你上传的图片是否是XX的,总之,分类的运用场景很多。

预测问题,算不上是分类,但和分类从本质上来说都是一样的,都是属于监督学习,不同的是,通常分类问题预测的是一个Catagory,而预测问题往往通过回归,比如最简单的线性回归,预测出来的是一个数值类型。

Clustering:聚类问题

聚类问题,通常和非监督学习做一个词义上的绑定(如果说到非监督可以直接想到聚类),和分类问题其实都是分类,不同的是,聚类事先并不知道具体的类别,比如 一组数据[18,16,15,88,85,86]通过某个聚类算法后,就被聚为了两类,分别是[18,16,15],[88,85,86]。

正如上面所说,聚类问题通常用来解决未知类型的分类问题,就是你都不知道数据可以分类哪些类,那就让算法帮你分吧。

Association :关联分析

在京东和亚马逊上买东西,加到购物车后,会出现一些关联的商品推荐你去购买与商品相关或可以组合使用的商品,超市购物架上的商品摆放是乱摆的吗?如何做一个套餐打包一些东西做组合促销?很多这样的问题也可以用算法,用数据来帮你做出决策。

其实关联问题、推荐系统等都是属于分类问题,只不过应用的多了,算法和业务上都与普通的关联又有一些区别,所以就单独拿出来做一个新的问题。

算法

根据IEEE去年的排行,总结了机器学习领域应用最普遍的十大算法:

  1. C4.5决策树
  2. K-Mean
  3. 支持向量机
  4. Apriori
  5. 最大期望算法
  6. PageRank
  7. AdaBoost
  8. KNN
  9. 朴素贝叶斯
  10. 分类回归树

十大算法只能算是一个抛砖引玉的,在实际场景中未必是你最适用的算法。

数据挖掘中要注意的问题

幸存者偏差 Survivorship bias

杀人、灭口,电视里经常发生的事情,在数据里面也有时会出现,有时你拿到的那部份数据是不能反映实际问题的数据,而能反映实际问题的数据已经被干掉了。

如下图:是二战期间,法国的统计学家研究战斗机的中弹情况,目的是根据中弹的分布密集度情况对中弹比较密集的地方的装甲进行加固。

datamining5

但实际情况是,统计学家拿到的数据都是能活着回来的飞机的中弹情况,那些被击中要害的飞机基本都坠毁了。

其实在实际情况中,这样的事情很常见,比如统计局,谁能知道他们的数据是哪来的,最能反映情况的数据都“死”掉了。当然人家是GOV,有这么点偏差不会影响业务,照样可以垄断主场,但在企业中如果这个地方的数据有问题就会死的很惨了。

观察者偏见

观察者偏见,主要会对结果的客观性造成一些影响,原因会有很多,大部分来自于设计算法的个人,也有很多部分来自于领导、产品、销售等。

但是,除了观察者偏见外,有时还需要注意主体偏见,比如航空公司做调查选择航班的主要考虑因素,安全,价格,基本上大多数都会选择安全,但实际买票的过程中,驱使选择航班的往往还是价格居多

小结

  1. 这个是数据挖掘入门介绍,我居然把它放到了数据预处理之后才写,说明数据预处理有多重要了吧=.=!
  2. 后面会说到很多机器学习的算法,主要理解原理和算法的组成部分,公式之类的就没强记的必要了。
  3. 数据挖掘重在探索未知世界,找出数据中的隐藏的关系,不要把已经得出的结论多次浪费时间重新证明。