最大熵工具包的模型文件格式分析及比较

此处用的是Dekang Lin的实现代码:

命令行的格式为USAGE: testme MODEL TRAIN < TEST

 

参数1:模型配置文件,以zoo.model为例。

0.10 5

7c1 c2 c3 c4 c5 c6 c7

第一行的有三列,数值分别为0.1, 0, 5, 表示alpha , threshold, maxIterations。

第二行第一列的数字7表示有7个tag,后面分别表示着7个tag的值。

参数2:训练文件,以zoo.train为例。

c1f21 f30 f40 f51 f60 f70 f81 f91 f101 f111 f120 f130 f144 f150 f160 f171

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f151 f160 f171

c4f20 f30 f41 f50 f60 f71 f81 f91 f101 f110 f120 f131 f140 f151 f160 f170

c1f21 f30 f40 f51 f60 f70 f81 f91 f101 f111 f120 f130 f144 f150 f160 f171

c1f21 f30 f40 f51 f60 f70 f81 f91 f101 f111 f120 f130 f144 f151 f160 f171

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f151 f160 f171

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f151 f161 f171

c4f20 f30 f41 f50 f60 f71 f80 f91 f101 f110 f120 f131 f140 f151 f161 f170

c4f20 f30 f41 f50 f60 f71 f81 f91 f101 f110 f120 f131 f140 f151 f160 f170

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f150 f161 f170

c1f21 f30 f40 f51 f60 f70 f81 f91 f101 f111 f120 f130 f144 f151 f160 f171

c2f20 f31 f41 f50 f61 f70 f80 f90 f101 f111 f120 f130 f142 f151 f161 f170

c4f20 f30 f41 f50 f60 f71 f81 f91 f101 f110 f120 f131 f140 f151 f160 f170

c7f20 f30 f41 f50 f60 f70 f81 f90 f100 f110 f120 f130 f140 f150 f160 f170

c7f20 f30 f41 f50 f60 f71 f81 f90 f100 f110 f120 f130 f144 f150 f160 f170

c7f20 f30 f41 f50 f60 f71 f81 f90 f100 f110 f120 f130 f146 f150 f160 f170

c2f20 f31 f41 f50 f61 f70 f81 f90 f101 f111 f120 f130 f142 f151 f160 f170

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f151 f160 f171

c4f20 f30 f41 f50 f60 f71 f81 f91 f101 f110 f120 f131 f140 f151 f160 f171

c1f20 f30 f40 f51 f60 f71 f81 f91 f101 f111 f120 f131 f140 f151 f160 f171

c2f20 f31 f41 f50 f61 f70 f80 f90 f101 f111 f120 f130 f142 f151 f161 f170

c2f20 f31 f41 f50 f61 f71 f80 f90 f101 f111 f120 f130 f142 f151 f160 f170

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f144 f151 f160 f171

c2f20 f31 f41 f50 f61 f70 f80 f90 f101 f111 f120 f130 f142 f151 f160 f171

c6f20 f30 f41 f50 f60 f70 f80 f90 f100 f111 f120 f130 f146 f150 f160 f170

c5f20 f30 f41 f50 f60 f71 f81 f91 f101 f111 f120 f130 f144 f150 f160 f170

c5f20 f30 f41 f50 f60 f71 f81 f91 f101 f111 f121 f130 f144 f150 f160 f170

训练文件很容易看懂,跟其他的分类器训练文件的格式相同。

 

测试文件为zoo.test。数据如下:

c3f20 f30 f41 f50 f60 f70 f81 f91 f101 f111 f120 f130 f140 f151 f160 f170

c7f20 f30 f41 f50 f60 f70 f80 f90 f100 f111 f120 f130 f140 f150 f160 f170

c4f20 f30 f41 f50 f60 f71 f80 f91 f101 f110 f120 f131 f140 f151 f160 f170

c2f20 f31 f41 f50 f61 f70 f80 f90 f101 f111 f120 f130 f142 f151 f160 f170

c1f21 f30 f40 f51 f60 f70 f80 f91 f101 f111 f120 f130 f142 f151 f160 f170

 

训练后的模型文件数据格式为:以7(7为tag的数量)行为单位,为每个特征(feature)和每个trag的lambda值。总的行数除以7等于特征(feature)的数量。

lambda(c1,f21)=0.277537

lambda(c2,f21)=0

lambda(c3,f21)=0

lambda(c4,f21)=0

lambda(c5,f21)=0

lambda(c6,f21)=0

lambda(c7,f21)=0

lambda(c1,f30)=0.160808

lambda(c2,f30)=0

lambda(c3,f30)=0

lambda(c4,f30)=0.085728

lambda(c5,f30)=0.0129319

lambda(c6,f30)=0

lambda(c7,f30)=0.0373493

lambda(c1,f40)=0.285687

lambda(c2,f40)=0

lambda(c3,f40)=0

lambda(c4,f40)=0

lambda(c5,f40)=0

lambda(c6,f40)=0

lambda(c7,f40)=0

lambda(c1,f51)=0.285687

lambda(c2,f51)=0

lambda(c3,f51)=0

lambda(c4,f51)=0

lambda(c5,f51)=0

lambda(c6,f51)=0

lambda(c7,f51)=0

lambda(c1,f60)=0.160808

lambda(c2,f60)=0

lambda(c3,f60)=0

lambda(c4,f60)=0.085728

lambda(c5,f60)=0.0129319

lambda(c6,f60)=0

lambda(c7,f60)=0.0373493

lambda(c1,f70)=0.199835

lambda(c2,f70)=0.113958

lambda(c3,f70)=0

lambda(c4,f70)=0

lambda(c5,f70)=0

lambda(c6,f70)=0.00735244

lambda(c7,f70)=0

lambda(c1,f81)=0.0787015

lambda(c2,f81)=0

lambda(c3,f81)=0

lambda(c4,f81)=0.101876

lambda(c5,f81)=0.0799012

lambda(c6,f81)=0

lambda(c7,f81)=0.125868

lambda(c1,f91)=0.197843

lambda(c2,f91)=0

lambda(c3,f91)=0

lambda(c4,f91)=0.148178

lambda(c5,f91)=0.0606241

lambda(c6,f91)=0

lambda(c7,f91)=0

lambda(c1,f101)=0.1531

lambda(c2,f101)=0.0840857

lambda(c3,f101)=0

lambda(c4,f101)=0.0884363

lambda(c5,f101)=0.0161881

lambda(c6,f101)=0

lambda(c7,f101)=0

lambda(c1,f111)=0.188289

lambda(c2,f111)=0.127382

lambda(c3,f111)=0

lambda(c4,f111)=0

lambda(c5,f111)=0.0539811

lambda(c6,f111)=0

lambda(c7,f111)=0

lambda(c1,f120)=0.130759

lambda(c2,f120)=0.0472869

lambda(c3,f120)=0

lambda(c4,f120)=0.0484933

lambda(c5,f120)=0

lambda(c6,f120)=0

lambda(c7,f120)=0.0053166

lambda(c1,f130)=0.146261

lambda(c2,f130)=0.0981419

lambda(c3,f130)=0

lambda(c4,f130)=0

lambda(c5,f130)=0.0278883

lambda(c6,f130)=0

lambda(c7,f130)=0.054843

lambda(c1,f144)=0.229922

lambda(c2,f144)=0

lambda(c3,f144)=0

lambda(c4,f144)=0

lambda(c5,f144)=0.143334

lambda(c6,f144)=0

lambda(c7,f144)=0

lambda(c1,f150)=0.0628279

lambda(c2,f150)=0

lambda(c3,f150)=0

lambda(c4,f150)=0

lambda(c5,f150)=0.211791

lambda(c6,f150)=0.0514771

lambda(c7,f150)=0.241189

lambda(c1,f160)=0.119261

lambda(c2,f160)=0

lambda(c3,f160)=0

lambda(c4,f160)=0.0224336

lambda(c5,f160)=0.0119663

lambda(c6,f160)=0

lambda(c7,f160)=0.0322028

lambda(c1,f171)=0.252457

lambda(c2,f171)=0

lambda(c3,f171)=0

lambda(c4,f171)=0

lambda(c5,f171)=0

lambda(c6,f171)=0

lambda(c7,f171)=0

lambda(c1,f80)=0.156366

lambda(c2,f80)=0.165327

lambda(c3,f80)=0

lambda(c4,f80)=0

lambda(c5,f80)=0

lambda(c6,f80)=0.03888

lambda(c7,f80)=0

lambda(c1,f151)=0.141626

lambda(c2,f151)=0.139117

lambda(c3,f151)=0

lambda(c4,f151)=0.15056

lambda(c5,f151)=0

lambda(c6,f151)=0

lambda(c7,f151)=0

lambda(c1,f20)=0

lambda(c2,f20)=0.128111

lambda(c3,f20)=0

lambda(c4,f20)=0.123551

lambda(c5,f20)=0.046964

lambda(c6,f20)=0

lambda(c7,f20)=0.0717097

lambda(c1,f41)=0

lambda(c2,f41)=0.13954

lambda(c3,f41)=0

lambda(c4,f41)=0.143177

lambda(c5,f41)=0.0607272

lambda(c6,f41)=0

lambda(c7,f41)=0.0855619

lambda(c1,f50)=0

lambda(c2,f50)=0.13954

lambda(c3,f50)=0

lambda(c4,f50)=0.143177

lambda(c5,f50)=0.0607272

lambda(c6,f50)=0

lambda(c7,f50)=0.0855619

lambda(c1,f71)=0

lambda(c2,f71)=0

lambda(c3,f71)=0

lambda(c4,f71)=0.215911

lambda(c5,f71)=0.153335

lambda(c6,f71)=0

lambda(c7,f71)=0.073583

lambda(c1,f110)=0

lambda(c2,f110)=0

lambda(c3,f110)=0

lambda(c4,f110)=0.289101

lambda(c5,f110)=0

lambda(c6,f110)=0

lambda(c7,f110)=0.271602

lambda(c1,f131)=0

lambda(c2,f131)=0

lambda(c3,f131)=0

lambda(c4,f131)=0.351465

lambda(c5,f131)=0

lambda(c6,f131)=0

lambda(c7,f131)=0

lambda(c1,f140)=0

lambda(c2,f140)=0

lambda(c3,f140)=0

lambda(c4,f140)=0.315972

lambda(c5,f140)=0

lambda(c6,f140)=0

lambda(c7,f140)=0.0080449

lambda(c1,f170)=0

lambda(c2,f170)=0.0994497

lambda(c3,f170)=0

lambda(c4,f170)=0.10216

lambda(c5,f170)=0.0750253

lambda(c6,f170)=0

lambda(c7,f170)=0.104251

lambda(c1,f161)=0.114521

lambda(c2,f161)=0.179967

lambda(c3,f161)=0

lambda(c4,f161)=0.0632252

lambda(c5,f161)=0

lambda(c6,f161)=0

lambda(c7,f161)=0

lambda(c1,f31)=0

lambda(c2,f31)=0.365528

lambda(c3,f31)=0

lambda(c4,f31)=0

lambda(c5,f31)=0

lambda(c6,f31)=0

lambda(c7,f31)=0

lambda(c1,f61)=0

lambda(c2,f61)=0.365528

lambda(c3,f61)=0

lambda(c4,f61)=0

lambda(c5,f61)=0

lambda(c6,f61)=0

lambda(c7,f61)=0

lambda(c1,f90)=0

lambda(c2,f90)=0.25513

lambda(c3,f90)=0

lambda(c4,f90)=0

lambda(c5,f90)=0

lambda(c6,f90)=0.0528795

lambda(c7,f90)=0.241876

lambda(c1,f142)=0

lambda(c2,f142)=0.365528

lambda(c3,f142)=0

lambda(c4,f142)=0

lambda(c5,f142)=0

lambda(c6,f142)=0

lambda(c7,f142)=0

lambda(c1,f100)=0

lambda(c2,f100)=0

lambda(c3,f100)=0

lambda(c4,f100)=0

lambda(c5,f100)=0

lambda(c6,f100)=0.23756

lambda(c7,f100)=0.411311

lambda(c1,f146)=0

lambda(c2,f146)=0

lambda(c3,f146)=0

lambda(c4,f146)=0

lambda(c5,f146)=0

lambda(c6,f146)=0.431628

lambda(c7,f146)=0.256715

lambda(c1,f121)=0

lambda(c2,f121)=0

lambda(c3,f121)=0

lambda(c4,f121)=0

lambda(c5,f121)=0.562904

lambda(c6,f121)=0

lambda(c7,f121)=0

 

测试数据的格式为,前半为训练显示结果,后一部分为测试结果,每行前带*号为错误的标记,rate等于错误的标记除以总的测试数据行数。

Iteration1 logProb=-52.5396

Iteration2 logProb=-37.2368

Iteration3 logProb=-30.1993

Iteration4 logProb=-25.7499

Iteration5 logProb=-22.5456

*c3     c1 0.285194     c2 0.162795     c3 0.0532969    c4 0.253496     c5 0.089

634     c6 0.0536902    c7 0.101894

c7      c1 0.200433     c2 0.198171     c3 0.0532642    c4 0.155351     c5 0.094

6512    c6 0.0785248    c7 0.219605

c4      c1 0.153828     c2 0.11648      c3 0.0453888    c4 0.459132    c5 0.075

6931    c6 0.0471883    c7 0.102289

c2      c1 0.136814     c2 0.553784     c3 0.0397705    c4 0.0904785    c5 0.056

633     c6 0.0439141    c7 0.0786059

c1      c1 0.569759     c2 0.145711     c3 0.0421548    c4 0.087625     c5 0.055

3063    c6 0.0441495    c7 0.0552938

errorrate=0.2

 

 

同样的数据,张乐最大熵的数据模型文件为:

#txt,maxent

34

f21

f30

f40

f51

f60

f70

f81

f91

f101

f111

f120

f130

f144

f150

f160

f171

f80

f151

f20

f41

f50

f71

f110

f131

f140

f170

f161

f31

f61

f90

f142

f100

f146

f121

6

c1

c4

c2

c7

c6

c5

10

50 1 3 4 5

10

10

50 1 3 4 5

40 2 3 4

50 1 2 3 5

30 1 5

40 1 2 5

40 2 4 5

60 1 2 3 4 5

50 2 3 4 5

30 3 5

40 3 4 5

60 1 2 3 4 5

30 1 2

40 1 2 4

30 1 2

60 1 2 3 4 5

51 2 3 4 5

51 2 3 4 5

50 1 2 3 5

21 3

20 1

30 1 3

60 1 2 3 4 5

30 1 2

12

12

32 3 4

12

23 4

23 4

15

115

0.44193449550393193

0.28747380544262063

0.072240466426972072

0.021106503521367614

-0.15855704714333535

-0.045397586105484895

0.51815016279210202

0.51815016279210202

0.28747380544262063

0.072240466426972072

0.021106503521367614

-0.15855704714333535

-0.045397586105484895

0.30757412297351266

0.18614111398861924

-0.37032516226188394

0.43441590393375362

0.16088653864813418

0.012976841988856389

-0.63147510447844546

0.32269105148183425

0.23151343579175687

0.35186448703960244

0.31065656413776704

0.29561989388544518

0.2688475800853608

0.15355447489924975

0.16915950637029684

0.071718222471034362

0.34325026414730314

0.24753901374378259

0.2749370462687879

0.35339528531044995

0.22720269659903372

-0.018302839226478823

0.027049403586376405

-0.11260740940209919

-0.40994238942255506

-0.88884788526508229

0.21148618569136216

0.16685817613326021

0.20775494567991742

-0.18212341935424081

0.13965366431983095

0.35838154413166012

-0.11450805178335834

0.64577307793058314

0.13368838862875879

0.61913483098125521

0.49031985557116775

0.65011910317817123

0.18179519243943534

-0.14805850308357626

-0.097781048331686091

-0.020158227958478422

-0.19229157959918455

-0.040679058952031645

0.41480336652953775

-0.40223659091349484

-0.24638959349077308

0.25610320094413264

-0.27518744891518554

0.24800103011209607

0.74006205049233786

0.24161587132129506

0.36826856203189234

0.30887070595486388

-0.88177243395233829

0.092951388767138585

0.19979478871168438

0.012100564249099673

-0.11044270713771454

0.093018507399484834

0.21670640990018719

0.22355442355155131

0.06170781423156943

-0.046253720108994839

0.16922014353976467

0.21670640990018719

0.22355442355155131

0.06170781423156943

-0.046253720108994839

0.16922014353976467

-0.350002448012526

0.33780642216231621

-0.53310653638854344

-0.032210125967348242

0.43210958457341603

0.60895528322811632

0.7302119397290654

0.28248380398377215

0.7373171921300945

0.13562095006575078

0.61738900009790332

-0.086916393505105827

-0.84063184719464801

0.047172917241443721

0.090418500595002713

0.14158688805639236

0.00037967648955599331

0.21026768056566164

0.34533679065067507

0.32705505959219233

0.2086210333276767

0.73877116296162271

0.73877116296162271

0.48135805884130362

0.67284044475785965

0.43097408961580602

0.73877116296162271

1.049549947184033

1.021523623295107

0.39456397934694548

1.6293650975391127

1.158483121176749

 

测试显示的结果为:

Accuracy:80% (4/5)

c4

c7

c4

c2

c1

 

总结:张乐的最大熵工具包,功能齐全,但是实现复杂,不便于学习爱。DeKang Lin的实现代码量很小,可以通过学习此源代码的实现,透彻的理解最大熵的实现过程。

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值