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 是牛顿法的最大迭代次数和收敛准则。