good-turning算法(例题)

解答:
合并训练集与测试集,计算合并之后的数据集集合在训练集中出现的次数:
| 张三 | 喜欢 | 外出 | 旅行 | 李四 | 登山 | 王五 | 不喜欢 |
|---|---|---|---|---|---|---|---|
| 1 | 2 | 2 | 1 | 1 | 1 | 0 | 0 |
那么:
| r | 0 | 1 | 2 |
|---|---|---|---|
| N(r) | 2 | 4 | 2 |
根据公式\({r^*} = {{(r + 1)({N_{r + 1}})} \over {{N_r}}}\)计算可以得到:
| r* | r(0)=2 | r(1)=1 | r(2)=2 |
|---|---|---|---|
| N(r*) | 2 | 4 | 2(最高次数的N(r*)不变就是N(r)) |
那么\(N = \sum\limits_{{r^*}} {{r^*}N({r^*})}\),得到N=2*2+4*1+2*2=12
现在开始求概率,概率公式\(P(r) = {{(r + 1)({N_{r + 1}})} \over {{N_r}N}} = {{{r^*}} \over N}\):
P(0)=2/12=1/6
P(1)=1/12
P(2)=2/12=1/6
验证归一性:\(P(0)*N(0) + P(1)*N(1)+P(2)*N(2) = {1 \over 6}*2 + {1 \over {12}}*4 + {1 \over 6}*2 = 1\),为1因此正确
s1=“王五 不喜欢 登山"
\(P\left( {s1} \right) = P\left( {王五} \right)*P\left( {不喜欢} \right)*P\left( {登山} \right) = P\left( 0 \right)*P\left( 0 \right)*P\left( 1 \right) = {1 \over 6}*{1 \over 6}*{1 \over {12}} = 0.00231481\)
s2=“王五 喜欢 外出 旅行”
\(P\left( {s2} \right) = P\left( {王五} \right)*P\left( {喜欢} \right)*P\left( {外出} \right)*P\left( {旅行} \right)\)
\(= P\left( 0 \right)*P\left( 2 \right)*P\left( 2 \right)*P\left( 1 \right) = {1 \over 6}*{1 \over 6}*{1 \over 6}*{1 \over {12}} = 0.0003858\)

浙公网安备 33010602011771号