本篇是数据挖掘技术的主体部分,系统介绍了数据挖掘的相关技术及其这些技术的应用实例。该部分又分三个层次:
1)数据挖掘前期的一些技术,包括数据的准备(收集数据、数据质量分析、数据预处理等)和数据的探索(衍生变量、数据可视化、样本选择、数据降维等)。
2)数据挖掘的核心六大类方法,包括关联规则、回归、分类、聚类、预测和诊断。对于每类方法,则详细介绍了其包含的典型算法,包括基本思想、应用场景、算法步骤、MATLAB实现程序、应用实例。
3)数据挖掘中特殊的实用技术,包含两章内容,一是关于时序数据挖掘的时间序列技术;二是智能优化方法。该层次也是数据技术体系中不可或缺的技术。时序数据是数据挖掘中的一类特殊数据,所以针对该类特殊的数据类型,介绍了时间序列方法。另外,数据挖掘离不开优化,所以又以一章智能优化方法介绍了两个比较常用的优化方法,遗传算法和模拟退火算法。
数据的准备
从雅虎获取交易数据
其中雅虎与MATLAB有接口,所以可以利用MATLAB从雅虎获得这些交易数据,取的程序如P4-1所示。运行该程序,可以得到深市主板的数据,对该程序略作修改,就可以获得沪市和创业板的数据。这里,作为例子,只用深市的交易数据作为研究对象。
从大智慧获取财务数据
从Wind获取高质量数据
数据质量分析方法
值分析
值分析通常是进行数据质量分析的第一步,它可以帮助我们在总体上分析数据的自然分布情况。比如,数据是否只有唯一值,该变量中有多少空值等。值分析是我们常用方法中最简单的一种,它的分析信息统计简便,信息含义清晰易理解,同时也是最有效的分析方法,因为它能够快速地给出明确的结论。
统计分析
统计分析是统计量对数据进行统计学特征的分析,常用的统计量有均值、最小值、最大值、标准差、极差和一些拓展统计量。常用的拓展统计量有以下几个:
1)众数(Mode) :变量中发生频率最大的值。众数不受极端数据的影响,并且求法简便。当数值或被观察者没有明显次序(常发生于非数值性资料)时特别有用。例如:用户状态有正常、欠费停机、申请停机、拆机、销号这几种可能,该变量的众数是“正常”则是正常的。
2)分位数( Median) :将数据从小到大排序,小于某个值的数据占总数的百分比。例如,我们通常所说的中位数就是50%分位数,即小于中位数的所有值占总数的50%。
3)中位数:中位数可避免极端数据,代表着数据总体的中等情况。如果总数个数是奇数,按从小到大的顺序,取中间的那个数,如果总数个数是偶数个,按从小到大的顺序,取中间那两个数的平均数。
4)偏度:正态分布的偏度为0,偏度<0称分布具有负偏离,偏度>0称分布具有正偏离。若知道分布有可能在偏度上偏离正态分布时,可用偏度来检验分布的正态性。偏度的计算公式为:
频次与直方图分析
直方图和频次图都是一种用柱状图表示数据分布特征的分析方式。通过直方图和频次图可以有效地观测出数据分布的两个重要特征:集中趋势和离散趋势。直方图适用于对大量连续性数据进行整理加工,找出其统计规律,以便对其总体分布特征进行推断。频次图是为了计算离散型数据各值分布情况的统计方法,它有助于理解某些特殊数值的意义,同时它也可以支持多个维度组合分布情况。频次与直方图分析方法在提供更细节信息的同时,也存在必须人工分析的局限。同时,很多时候需要借助一些业务经验。
数据预处理
数据清洗
数据清理的主要任务是填充缺失值和去除数据中的噪声。
缺失值处理
噪声过滤
回归法
均值平滑法
离群点分析
小波去噪
数据变换
标准化
离散化