我们考察步长、迭代次数、是否包含默认类别、二元或多元、损失函数比率,归一化等因素。并与最大熵分类器进行对比。
1. 是否包含默认类别,就是说在进行K元分类时,是否包含第K+1个默认类别。
包含默认类别的输出h(x) = exp (W*X) / {1.0 + sum_exp (W*X)},对于iClassIndex <= K;h(x) = 1.0 / {1.0 + sum_exp (W*X)},对于iClassIndex == K+1。
不包含默认类别的输出h(x) = exp (W*X) / {1.0 + sum_exp (W*X)},对于iClassIndex <= K-1;h(x) = 1.0 / {1.0 + sum_exp (W*X)},对于iClassIndex == K。
性能对比:多元分类 包含 92.78% 不包含 92.46%
二元分类 包含 100% 不包含 98.91%
2. 多元分类下步长的影响。迭代次数固定为100
0.003 89.34%
0.01 92.46%
0.03 92.46%
0.1 89.67%
3. 多元分类下迭代次数的影响。步长固定为0.01
50次 89.34%
100次 89.34%
150次 89.34%
4. 用多元分类器对二元问题进行分类。
二元分类(不包含默认类别) 98.92% 多元分类(包含默认类别) 100% 多元分类(不包含默认类别) 98.91%
5. 与MALLET的最大熵分类器进行多元分类的对比。
最大熵 91.15% 逻辑斯底回归 92.78%
6. 损失函数比率的计算公式为dImproveRatio = (dPreCost - dCost) / dPreCost,初始化dPreCost=100, dCost=0。固定步长为0.01,最大迭代次数为100次。
dImproveRatio = 0.01 89.67% 迭代停止在25次
dImproveRatio = 0.003 91.31% 迭代停止在69次
dImproveRatio = 0.001 92.78% 迭代停止在100次
7. 归一化的影响。dValue = (dValue - dMin) / (dMax - dMin)
对于没有归一化的数据集: 归一化 80% 没有归一化 58%
对于已经归一化的数据再次归一化: 归一化(步长0.01) 88% 归一化(步长0.1) 91% 没有归一化 92%