Bio.MaxEntropy模块

最大熵码。

使用改进的迭代缩放。

class Bio.MaxEntropy.MaxEntropy

基类:object

保存最大熵分类器的信息。

成员:类可能的数据类列表。Alphas每个要素的权重列表。功能函数的FEATURE_FNS列表。

汽车数据来自示例朴素贝叶斯分类器示例Eric Meisner 2003年11月22日http://www.inf.u-szeged.hu/~ormandi/teaching

>>> from Bio.MaxEntropy import train, classify
>>> xcar = [
...     ['Red', 'Sports', 'Domestic'],
...     ['Red', 'Sports', 'Domestic'],
...     ['Red', 'Sports', 'Domestic'],
...     ['Yellow', 'Sports', 'Domestic'],
...     ['Yellow', 'Sports', 'Imported'],
...     ['Yellow', 'SUV', 'Imported'],
...     ['Yellow', 'SUV', 'Imported'],
...     ['Yellow', 'SUV', 'Domestic'],
...     ['Red', 'SUV', 'Imported'],
...     ['Red', 'Sports', 'Imported']]
>>> ycar = ['Yes','No','Yes','No','Yes','No','Yes','No','No','Yes']

需要一些规则或功能

>>> def udf1(ts, cl):
...     return ts[0] != 'Red'
...
>>> def udf2(ts, cl):
...     return ts[1] != 'Sports'
...
>>> def udf3(ts, cl):
...     return ts[2] != 'Domestic'
...
>>> user_functions = [udf1, udf2, udf3]  # must be an iterable type
>>> xe = train(xcar, ycar, user_functions)
>>> for xv, yv in zip(xcar, ycar):
...     xc = classify(xe, xv)
...     print('Pred: %s gives %s y is %s' % (xv, xc, yv))
...
Pred: ['Red', 'Sports', 'Domestic'] gives No y is Yes
Pred: ['Red', 'Sports', 'Domestic'] gives No y is No
Pred: ['Red', 'Sports', 'Domestic'] gives No y is Yes
Pred: ['Yellow', 'Sports', 'Domestic'] gives No y is No
Pred: ['Yellow', 'Sports', 'Imported'] gives No y is Yes
Pred: ['Yellow', 'SUV', 'Imported'] gives No y is No
Pred: ['Yellow', 'SUV', 'Imported'] gives No y is Yes
Pred: ['Yellow', 'SUV', 'Domestic'] gives No y is No
Pred: ['Red', 'SUV', 'Imported'] gives No y is No
Pred: ['Red', 'Sports', 'Imported'] gives No y is Yes
__init__()

初始化类。

Bio.MaxEntropy.calculate(me, observation)

计算每一类的概率的对数。

Me是一个经过训练的MaxEntropy对象。观测值是代表观测数据的向量。返回值是每个类的非规范化日志概率列表。

Bio.MaxEntropy.classify(me, observation)

将观察结果分成一类。

Bio.MaxEntropy.train(training_set, results, feature_fns, update_fn=None, max_iis_iterations=10000, iis_converge=1.0e-5, max_newton_iterations=100, newton_converge=1.0e-10)

训练最大熵分类器,返回MaxEntropy对象。

在训练集上训练最大熵分类器。Training_Set是一个观察列表。结果是每个观察点的课堂作业列表。FEATURE_FNS是功能的列表。这些是回调函数,它们接受观察并对其进行分类,然后返回1或0。UPDATE_FN是在每次训练迭代时调用的回调函数。它被传递一个MaxEntropy对象,该对象封装训练的当前状态。

IIS的最大迭代次数和收敛判据分别由max_iis_iterations和iis_Converge给出,而max_Newton_iterations和Newton_Converge是牛顿法的最大迭代次数和收敛判据。