当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以称之为“最大熵法”。最大熵法在数学形式上很漂亮,但是实现起来比较复杂,但把它运用于金融领域的诱惑也比较大,比如说决定股票涨落的因素可能有几十甚至上百种,而最大熵方法恰恰能找到一个同时满足成千上万种不同条件的模型。
这里我们先不讨论算法(这里用的是ID3/C4.5),把一棵决策树建立起来再说。我们要建立的决策树的形式类似于“如果天气怎么样,去玩;否则,怎么着怎么着”的树形分叉。那么问题是用哪个属性(即变量,如天气、温度、湿度和风力)最适合充当这颗树的根节点,在它上面没有其他节点,其他的属性都是它的后续节点。借用信息论的概念,我们用一个统计量,“信息增益”(Information Gain)来衡量一个属性区分以上数据样本的能力。信息增益量越大,这个属性作为一棵树的根节点就能使这棵树更简洁,比如说一棵树可以这么读成,如果风力弱,就去玩;风力强,再按天气、温度等分情况讨论,此时用风力作为这棵树的根节点就很有价值。如果说,风力弱,再又天气晴朗,就去玩;如果风力强,再又怎么怎么分情况讨论,这棵树相比就不够简洁了。计算信息增益的公式需要用到“熵”(Entropy)。名词越来越多,让我们通过手工计算记住它们的计算方法,把Excel打开:
1 计算熵
我们检查的属性是是否出去玩。用Excel对上面数据的play变量的各个取值排个序(这个工作簿里把“play”这个词去掉),一共是14条记录,你能数出取值为yes的记录有9个,取值为no的有5个,我们说这个样本里有9个正例,5 个负例,记为S(9+,5-),S是样本的意思(Sample)。这里熵记为Entropy(S),计算公式为:
Entropy(S)= -(9/14)*log(9/14)-(5/14)*log(5/14)
解释一下,9/14是正例的个数与总记录之比,同样5
这里我们先不讨论算法(这里用的是ID3/C4.5),把一棵决策树建立起来再说。我们要建立的决策树的形式类似于“如果天气怎么样,去玩;否则,怎么着怎么着”的树形分叉。那么问题是用哪个属性(即变量,如天气、温度、湿度和风力)最适合充当这颗树的根节点,在它上面没有其他节点,其他的属性都是它的后续节点。借用信息论的概念,我们用一个统计量,“信息增益”(Information Gain)来衡量一个属性区分以上数据样本的能力。信息增益量越大,这个属性作为一棵树的根节点就能使这棵树更简洁,比如说一棵树可以这么读成,如果风力弱,就去玩;风力强,再按天气、温度等分情况讨论,此时用风力作为这棵树的根节点就很有价值。如果说,风力弱,再又天气晴朗,就去玩;如果风力强,再又怎么怎么分情况讨论,这棵树相比就不够简洁了。计算信息增益的公式需要用到“熵”(Entropy)。名词越来越多,让我们通过手工计算记住它们的计算方法,把Excel打开:
1 计算熵
我们检查的属性是是否出去玩。用Excel对上面数据的play变量的各个取值排个序(这个工作簿里把“play”这个词去掉),一共是14条记录,你能数出取值为yes的记录有9个,取值为no的有5个,我们说这个样本里有9个正例,5 个负例,记为S(9+,5-),S是样本的意思(Sample)。这里熵记为Entropy(S),计算公式为:
Entropy(S)= -(9/14)*log(9/14)-(5/14)*log(5/14)
解释一下,9/14是正例的个数与总记录之比,同样5
