Bio.MaxEntropy 模块

最大熵代码。

使用改进的迭代缩放。

class Bio.MaxEntropy.MaxEntropy

基类: object

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

成员: classes 可能的数据类别列表。 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 对象。observation 是一个表示观察数据的向量。返回值是每个类别的未归一化对数概率列表。

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 是观察结果列表。results 是每个观察结果的类别分配列表。feature_fns 是特征列表。这些是回调函数,它们接受一个观察结果和一个类别,并返回 1 或 0。update_fn 是在每次训练迭代时调用的回调函数。它传递一个封装了当前训练状态的 MaxEntropy 对象。

IIS 的最大迭代次数和收敛准则分别由 max_iis_iterations 和 iis_converge 给出,而 max_newton_iterations 和 newton_converge 是牛顿法的最大迭代次数和收敛准则。