导语:我们知道,资产价格的波动受到非常多因素的影响,比如上一个交易日的价格,交易量,国家经济走势,交易者的心理预期,各种技术指标,财务指标,甚至还可以是交易日的天气情况等等。每个人都可以总结出非常多影响资产价格的特征(也可以叫因子,变量)。但是如何在这些特征中,选取出真正有效的特征呢?这时候就可以用到本文中要介绍的信息增益了。
一、熵
即:下一个交易日的涨跌的不确定性。
由于影响资产价格的因素很多,因此人们往往用随机性描述资产的价格波动,把它看成一个随机变量。但是,随机变量的不确定性不是一成不变的。比如扔*,如果 90%90%
90\%
的概率都是正面向上,我们认为它的不确定性比 50%50%
50\%
正面向上的*要低。那么如何衡量一个离散变量的不确定性呢?在信息论和概率统计中,人们使用一个变量的‘熵’来表示这个变量的不确定性。为了简明起见,我们都用离散变量进行举例。
如果一个离散变量 YY
Y
的概率分布是:
P(Y=yi)=pi, i=1,2,…,nP(Y=yi)=pi, i=1,2,…,n
P(Y=y_i )=p_i,\ i=1,2,…,n
那么变量 YY
Y
的熵定义为:
H(Y)=?∑i=1npilog2piH(Y)=?∑i=1npilog2?pi
H(Y)=-\sum_{i=1}^n p_i \log_2 p_i
由上述公式看出,当变量 YY
Y
的分布只有一个值的时候,它没有任何不确定性,计算出的熵是 00
0
。一个变量的熵越大,它的不确定性也越大,也越难预测。举个例子:如果我们用变量X表示第二天的资产涨跌,XX
X
只能取上涨或者下跌。当 XX
X
取上涨的概率从 0%0%
0\%
变化到 100%100%
100\%
时,其熵的变化是先变大再变小的。如下图所示,资产涨跌概率都是 50%50%
50\%
的时候,熵最大,表示这时候的状态最不稳定,最无序。
二、条件熵
即:知道了今天的涨跌,下一个交易日的涨跌的不确定性。
上文中,我们介绍了离散变量的熵及其计算公式。但是为了更好的预测未来的涨跌情况,我们需要更多的信息。例如,在股票涨跌的预测中,如果不知道其他信息,可以假设涨跌的概率都是 50%50%
50\%
,股票变动的熵就是 11
1
;但在已知今天的涨跌的情况下,下一个交易日涨跌的概率就变成 P(Xt∣Xt?1=涨)P(Xt∣Xt?1=涨)
P(X
{t}\mid X{t-1} =涨 )
或者是 P(Xt∣Xt?1=跌)P(Xt∣Xt?1=跌)
P(X
{t}\mid X{t-1} =跌 )
此时怎么进行熵的衡量呢?
假设我们要研究的变量为 YY
Y
,已观测到的变量为 XX
X
;用 H(Y∣X=xi)H(Y∣X=xi)
H(Y\mid X= x_i )
表示在 XX
X
取值为 xixi
x_i
的情况下,变量 YY
Y
的熵,那么条件熵 H(Y∣X)H(Y∣X)
H(Y\mid X)
就表示在已知信息 XX
X
的情况下,变量 YY
Y
的不确定性。条件熵的计算公式是:
H(Y∣X)=∑i=1npxiH(Y∣X=xi)H(Y∣X)=∑i=1npxiH(Y∣X=xi)
H(Y\mid X)=\sum
{i=1}^n p{x_i} H(Y\mid X=x_i )
在这里,pxi=P(X=xi)pxi=P(X=xi)
p
{x_i}=P(X= x_i ),i=1,2,…,mi=1,2,…,m
i=1,2,…,m。注意这个公式中的 H(Y∣X=xi)H(Y∣X=xi)
H(Y\mid X=x_i )和 H(Y∣X)H(Y∣X)
H(Y\mid X)的符号比较像,但 H(Y∣X=xi)H(Y∣X=xi)
H(Y\mid X=x_i )的意思是将 (Y∣X=xi)(Y∣X=xi)
(Y\mid X=x_i )整体看成一个变量 ZZ
Z,利用 H(Z)=?∑ni=1pilog2piH(Z)=?∑i=1npilog2?pi
H(Z)=-\sum{i=1}^n p_i \log_2 p_i
进行计算,不要被迷惑了。
三、信息增益
即:特征中包含的信息度量。
熵是变量不确定性的度量,条件熵就是在已知某些特征信息的情况下,对变量的不确定性的度量。那么这些已知的特征信息做了多少贡献呢?这就得引入信息增益的概念了。特征 XX
X
对于变量 YY
Y
的信息增益 g(Y,X)g(Y,X)
g(Y,X)
的计算公式如下:
g(Y,X)=H(Y)?H(Y∣X)g(Y,X)=H(Y)?H(Y∣X)
g(Y,X)=H(Y)-H(Y\mid X)
信息增益也被称为“互信息”,表示知道特征 XX
X
的信息时,变量 YY
Y
的信息不确定性减少程度。信息增益越大,表示特征提供的信息越多,这个特征也越重要。
下面通过一个小例子,具体展示下信息增益的计算过程:
在上表中,一共有六个 YY
Y
的数据,其中三个是涨,三个是跌,涨和跌的概率分布都是 50%50%
50\%
。记 p1=p(Y=涨)=1/2p1=p(Y=涨)=1/2
p_1=p(Y=涨)=1/2
,p2=p(Y=跌)=1/2p2=p(Y=跌)=1/2
p_2=p(Y=跌)=1/2
。那么 YY
Y
的熵是:
H(Y)=?∑i=12pilog2pi=?12log2(12)?12log2(12)=1H(Y)=?∑i=12pilog2?pi=?12log2(12)?12log2(12)=1
\begin{align
}
H(Y) &=-\sum_{i=1}^2 p_i \log_2 p_i\
& =-\frac{1}{2} \text{log}_2\left(\frac{1}{2}\right) -\frac{1}{2}\text{log}_2 \left(\frac{1}{2}\right) \
& =1
\end{align}
在 XX
X
为涨的情况下,一共有两个 YY
Y
的数据,都是涨。记 p1=P(Y=涨∣X=涨)=1p1=P(Y=涨∣X=涨)=1
p_1=P(Y=涨\mid X=涨)=1
,p2=P(Y=跌∣X=涨)=0p2=P(Y=跌∣X=涨)=0
p_2=P(Y=跌\mid X=涨)=0
,则有:
H(Y∣X=涨)=?∑i=12pilog2pi=?1log2(1)?0=0H(Y∣X=涨)=?∑i=12pilog2?pi=?1log2?(1)?0=0
\begin{align
}
H(Y\mid X=涨) &=-\sum_{i=1}^2 p_i \log_2 p_i \
& = -1 \log_2(1)-0\
& =0
\end{align}
这里再重复一下,需要把 (Y∣X=涨)(Y∣X=涨)
(Y\mid X=涨)
整体看做一个变量,才能更好的理解公式。
在 XX
X
是跌的情况下,一共有四个 YY
Y
的数据,三个是跌,一个是涨,记 p1=P(Y=跌∣X=跌)=3/4p1=P(Y=跌∣X=跌)=3/4
p_1=P(Y=跌\mid X=跌)=3/4
,p2=P(Y=涨∣X=跌)=1/4p2=P(Y=涨∣X=跌)=1/4
p_2=P(Y=涨 \mid X=跌)=1/4
,则有:
H(Y∣X=涨)=?∑i=12pilog2pi=?34log2(34)?14log2(14)=0.8113H(Y∣X=涨)=?∑i=12pilog2?pi=?34log2(34)?14log2(14)=0.8113
\begin{align
}
H(Y\mid X=涨) & =-\sum_{i=1}^2 p_i \log_2 p_i\
& =-\frac{3}{4} \log_2\left(\frac{3}{4}\right)-\frac{1}{4} \log_2\left(\frac{1}{4}\right)\
& =0.8113
\end{align}
我们考虑 XX
X
本身的涨跌概率,记 px1=P(X=涨)=1/3px1=P(X=涨)=1/3
p
{x_1}=P(X=涨)=1/3,px2=P(X=跌)=2/3px2=P(X=跌)=2/3
p{x_2}=P(X=跌)=2/3
,则最终的条件熵为:
H(Y∣X)=∑i=12pxiH(Y∣X=xi)=P(X=涨)H(Y∣X=涨) P(X=跌)H(Y∣X=跌)=0.5409H(Y∣X)=∑i=12pxiH(Y∣X=xi)=P(X=涨)H(Y∣X=涨)P(X=跌)H(Y∣X=跌)=0.5409
\begin{align
}
H(Y\mid X)& =\sum{i=1}^{2} p{x_i} H(Y \mid X=x_i )\
& = P(X=涨) H(Y\mid X=涨)\
& \qquad P(X=跌) H(Y\mid X=跌)\
& = 0.5409
\end{align}
信息增益为:
g(Y,X)=H(Y)?H(Y∣X)=1?0.5409=0.4591g(Y,X)=H(Y)?H(Y∣X)=1?0.5409=0.4591
\begin{align
}
g(Y,X)& =H(Y)-H(Y\mid X)\
& =1-0.5409\
& = 0.4591
\end{align}
小结:
上面给大家介绍了信息论中的信息增益的计算方法。通俗而言,利用信息增益可以衡量在引入一个变量之后,原有变量不确定性减少的程度。信息增益越高,表示新引入的变量效果越好。信息增益可以帮助我们了解各个因子是否有效,也可以用来衡量机器学习中的各个特征的重要性。还有更多的用法,大家可以自己去探索。
本文由JoinQuant量化课堂推出,版权归JoinQuant所有,商业转载请联系我们获得授权,非商业转载请注明出处。
文章更迭记录:
v1.0,2016-07-02,文章上线