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