数据挖掘-07-基础应用案例

  1. 1. 背景需求
    1. 1.1. 变压器
    2. 1.2. 信用贷款
  2. 2. 神经网络
    1. 2.1. PB
    2. 2.2. 实证检验
  3. 3. 金融时间线序列概况
    1. 3.1. 小波降噪
    2. 3.2. 向量机
    3. 3.3. 指数预测

背景需求

变压器

在变压器运行的运行周期中,油温状态是影响变压器运行和负载能力的重要因素。所以变压器油温异常的甄别对变压器及线路的安全运行具有很高的实用价值。为了及时发现变压器油温异常,就需要对变压器平时正常运行时油温的状况有清晰的了解并作为比对基准。

采用大数据的方法,通过聚类分析,挖掘出变压器正常运行的油温分布状况,为及时发现油温异常提供了判断依据。

把正常运行油温分成几个区间段,分析各区间段的油温出现次数分布,并计算出该区间段的油温次数分布中心点。而根据中心点的偏离程度即阈值作为设备异常的预判是有较大参考价值的。

信用贷款

评估机构会利用信用评分模型对客户的信息进行量化分析,从而评定客户的信用等级,可以更好地控制风险,减少不良贷款的发生率。

主流的有两种方法进行信用评价,多重判别分析和神经网络,并且发现神经网络分类器的预测结果显著优于统计回归模型。之后,有更多专家将神经网络和回归及基因算法在客户信用评分中进行了对比。

神经网络

神经网络(NN),就是构建一个含有输入层、输出层和隐含层的模型,其中隐含层可以有多层,这组输入和输出单元相互连接,单元之间的每个连接都设置一个权重。输入层中神经元数目根据数据集中的属性数目确定,输出层为一个神经元,经过训练,设定迭代次数和误差及求出每个神经元的权重,确定模型,对输入数据进行预测。

由于“反向传播”的英文叫做Back-Propagation,所以这个算法也常常被学者简称为BP算法。反向传播算法分为两步进行:正向传播:输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,传向输出层。反向传播:把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以使误差信号趋向最小。 BP算法的实质是,求取误差函数最小值问题。

  • 以人脑中的神经网络为启发。
  • 1980年刚出现的时候不被看好,因为数据少,计算能力弱。
  • 理论上,如果隐藏层足够多的话,可以模拟任何函数。
  • 前一层中加权求和,然后根据非线性方程转化为输出
  • 神经网络即可以用来做分类(classification)问题,也可以解决回归(regression)问题
    • 对于分类问题,如果是2类,可以用一个输出单元表示(0和1分别代表2类)
    • 如果多余2类,每一个类别用一个输出单元表示,所以输入层的单元数量通常等于类别的数量
  • 没有明确的规则来设计最好有多少个隐藏层,根据实验测试和误差,以及准确度来实验并改进

准确度的计算 – 交叉验证 cross validation
K折交叉验证 k fold cross validation


目的:对比经过神经网络后输出层预测值(predicted value)与真实值(target value)之间的误差去更新权重和偏向,多次迭代后,权重和偏向趋于一个很小的值(波动)。
准备工作:数据集,学习率(0~1之间),初始化的权重和偏向。

PB

正向:

Ij=iwijOi+θjI_{j}=\sum_{i} w_{i j} O_{i}+\theta_{j}

Oj=11+eIjO_{j}=\frac{1}{1+e^{-I_{j}}}

反向:
对于输出层:

Errj=Oj(1Oj)(TjOj)E r r_{j}=O_{j}\left(1-O_{j}\right)\left(T_{j}-O_{j}\right)

对于隐藏层:

Errj=Oj(1Oj)kErrkwjkE r r_{j}=O_{j}\left(1-O_{j}\right) \sum_{k} E r r_{k} w_{j k}

权重更新:

Δwij=(l)ErrjOiwij=wij+Δwij\begin{array}{l} \Delta w_{i j}=(l) E r r_{j} O_{i} \\ w_{i j}=w_{i j}+\Delta w_{i j} \end{array}

偏向更新:

Δθj=(l)Errjθj=θj+Δθj\begin{array}{l} \Delta \theta_{j}=(l) E r r_{j} \\ \theta_{j}=\theta_{j}+\Delta \theta_{j} \end{array}

终止条件:

  1. 权重的更新低于某个阈值
  2. 预测的错误率低于某个阈值
  3. 达到预设一定的循环次数

实证检验

BPNN在WEKA中表现为MultiLayerPerceptron,其具体可调节参数有L,M,N。其中L为学习率,M为冲量,N为迭代次数。第一组实验:对数据进行10 - folds Cross – validation(L=0.3,M=0.9,N=500,使用数据集为China Credit Data)。实验结果如下:

1.HitRate:命中率,即预测准确的数据量的百分比。

HitRate=TN+TPTN+FN+TP+FP\text {HitRate}=\frac{\mathrm{TN}+\mathrm{TP}}{\mathrm{TN}+\mathrm{FN}+\mathrm{TP}+\mathrm{FP}}

2.Type1 error: 将bad数据预测为good数据的百分比。

 Type1error =FPTP+FP\text { Type1error }=\frac{\mathrm{FP}}{\mathrm{TP}+\mathrm{FP}}

3.Type2 error:将good数据预测为bad数据的百分比

 Type2error =FNTN+FN\text { Type2error }=\frac{\mathrm{FN}}{\mathrm{TN}+\mathrm{FN}}

第二组实验:对数据进行10-folds Cross – validation(L=0.3,M=0.9,N=500,使用数据集为German Credit Data)。实验结果如下:

BPNN的预测比较平衡,对GOOD和BAD的准确率维持在接近水准,由于当今贷款机构对贷款违约率的的关注度逐渐减少,而倾向于对收益率的重视,以后分析的工作会从纯风险评估发展到风险和收益的综合评估。

金融时间线序列概况

金融市场的数据大都是时间序列数据,指这些数据是按照时间的排序取得的一系列观测值,如股票或期货价格、货币利率、外汇利率等。这些数据具有复杂的变化规律,而利用数学方法对其进行分析和研究将有助于制定更为精确的定价和预测决策,对于金融投资与风险管理活动具有重要的意义。

金融市场中数据由于各种偶然因素的影响,即使不存在暗箱操作,或没有什么重要新闻、重要政策出台,也会表现一种小幅的随机波动。这些随机波动可以看成是信号的噪声,不具有分析和预测的价值,而且这些随机波动往往严重地影响了进一步的分析和处理。因而在做金融事件序列的建模分析之前,往往对数据进行预处理,消除这些噪音。

小波降噪

小波消噪的步骤:

  1. 小波分解
    选择合适的小波函数和小波分解的层次,计算时间序列S0到第N层的小波分解
  2. 阈值处理
    将分解得到的小波系数进行阈值处理,来区分信号的噪声。
  3. 小波消噪及重构
    1. 强制降噪
    2. 阈值降噪
      • 默认阈值消噪
      • 软硬阈值消噪

支持向量机(support vector machine, SVM)是数据挖掘中的一项新技术,是借助于最优化方法解决机器学习问题的新工具。

向量机

支持向量机目前主要用于解决分类问题和回归问题。而股市行为预测通常为预测股市数据的走势和预测股市数据的未来数值。当我们把走势看做两种状态(涨,跌)时,问题便转化为了分类问题。预测股市未来的价格是典型的回归问题。

在解决小样本、非线性及高维模式中表现出特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

指数预测

国信证券公司曾经使用基于小波分析和支持向量机的指数预测模型对沪深300指数走势。选择了应用50个交易日为训练集预测5个交易日的方法,绘制了下面的近一年沪深300预测图形。发现预测走势有滞后真实走势的现象,两者相关系数为0.78,预测每日涨跌的准确率为68.5%。如图所示,蓝色线是真实走势,红色线是预测走势。