数据挖掘概述


数据挖掘(Data Mining)是指通过系统分析从大量数据中提取隐藏于其中的规律, 并用这些规律来预测未来或指导未来工作的科学。 这里所说的规律包括看似杂乱的数据中的关联性,数据中的模式等。 由于近年来互联网数据和金融交易数据等的几何增长,如何从这些数据中提取有用信息的需求也随之膨胀。 而近年来计算技术和存储技术的飞速发展也为数据挖掘技术的日臻完善提供了条件。

“数据”可以是计算机可以处理的任何数字,文字,图片等。例如以下是数据挖掘中经常遇到的数据:

  • 公司运营数据如销售,成本,库存,财会等;
  • 公司客户数据如购买纪录,联系方式等;
  • 行业销售,行业预测,宏观经济数据等;
  • 描述数据的数据,如数据定义,意义,关联等。

数据挖掘技术如今被广泛应用于互联网,金融,零售等行业。例如百度谷歌等是通过复杂的挖掘算法来 评估网页对于用户搜索关键词的相关度,对广告点击率进行预测等。谷歌每年收获几百亿美元,百度每年收入几 百亿人民币,这其中数据挖掘功不可没。电子商务巨头亚马逊和亿贝等则通过数据挖掘来预测用户 购买某一商品的可能性,以及推荐相关商品和个性化商品等;零售巨头沃马特很早就已经通过分析顾客 购买纪录来寻找不同商品之间的关联性,从而做到更合理上架不同品类商品;商业银行会通过分析 历史存贷款及还款纪录来预测客户的贷款风险;近年来越来越多的对冲 基金也开始依赖于数据挖掘技术来预测证券的价格走势和寻找投资机会,甚至证券交易监管部门也 会通过分析证券交易数据来发现内线交易。

从广义上说,数据挖掘包括数据采集和数据的抽象化。数据的采集顾名思义就是数据的获取过程。 而数据的抽象化则是指将各种各样格式的数据抽象成一组数字,以便于挖掘算法来对这些数据进行 处理。 以银行对贷款风险的预测为例,每一个贷款申请可以用以下一组特性来抽象地表达:

  • 申请人年龄;
  • 申请人职业;
  • 申请人年收入;
  • 贷款用途;
  • 贷款额度。

以上特征中,申请人年龄,年收入,以及贷款额度都可以自然地用数字来表达,而申请人职业和贷款用途 则不可以。不过我们可以人为地将各种职业和各种贷款用途用数字来表示,比如职业如果是工程师则用1来表示,销售人员 用2来表示,管理人员用3来表示,贷款用途如果是买房则用1来表示,买车用2来表示,创办企业用3来表示等等。 这样假设某一贷款申请人年龄为30,职业是工程师,年收入60000,贷款用途是买车,贷款额度是100000,则该申请就可以 抽象成(30,1,60000,2,100000)这组数字,而这组数字也经常被称做该笔贷款的特性向量(Feature Vector)。 当然实际应用当中,为了让预测更为准确,每一个贷款申请会用更多的特性 来表示。

狭义上的数据挖掘则通常仅指对已经采集好和抽象化的数据进行挖掘。

数据挖掘的方法通常被分成监督式学习(supervised learning)和非监督式学习(unsupervised learning)。

监督式学习是基于一组已经被标注好的训练数据建立模型来对未来数据尽量准确地进行自动标注。 训练数据通常由多个训练样本组成,而训练样本可以来源于历史数据或人工标注。 仍以上面提到的银行对贷款风险的预测为例,银行可以从历史贷款纪录中提炼非常好的训练数据。我们以1 表示贷款最后被按期偿还,-1表示贷款最后未被按期偿还。假设银行有200000笔已经完全偿还或已经被确认 无法偿还的贷款,那么我们将这200000笔贷款分别抽象成上文中提到的特性向量,就可以得到一组形式如下 的训练数据:

申请人年龄 申请人职业 申请人年收入 贷款用途 贷款额度 是否还清贷款
样本1 30 1 60000 2 100000 1
样本2 35 2 100000 1 500000 1
样本3 25 2 40000 2 120000 -1
样本200000 24 3 80000 3 180000 1

有了这组训练数据,监督式学习就可以通过分析它来提炼规律从而对未来的贷款能否获得按期偿还进行预测。 监督式学习中常用的算法有 支持向量机逻辑回归,决策树等。

不同于监督式学习,非监督式学习中的样本没有任何标注。非监督式学习的任务通常是找出已知样本数据的分布规律。由非监督 式学习找出的已知样本的分布规律可以用来对将来的样本进行预测。例如银行可以通过对其信用卡用户的购买 纪录进行分析,进而找出最优的模型来描述该用户每笔交易的金额的分布。假设某用户共产生了n笔购买纪录,每笔购买纪录 的金额分别为x1, x2, ..., xn,一个比较简单常用的方法就是用高斯分布来描述这组数据, 这只需我们计算出这组数据的均值和方差。由了这组数据的均值和方差之后,我们认为该用户将来的购买行为也会基本服从这 一分布。如果该用户某天产生了一笔远离该分布的交易(如超出均值5个方差),我们就可以判断该笔交易有可能是由于帐号被 盗等原因造成的,从而采取必要的措施以防止给用户或银行造成损失。

非监督式学习的常用方法有贝叶斯分析,EM(Expectation Maximization)算法,K-means聚类, 主成分分析(Principal Component Analysis),隐马尔科夫链(Hidden Markov Model)等。

扫码关注云算网公众号,及时获取云算网相关信息:
云算网订阅号

喜欢我们的网站吗?
将本站加入收藏夹

对我们的网站有建议吗?
给我们来信吧。