svm_light 错误 "Features must be in increasing order"

svm_light error "Features must be in increasing order"

来自svm_learn train.dat model.out

的输出
Scanning examples...done
Reading examples into memory...100..200..300..400..500..Features must be in increasing order!!!
: Undefined error: 0
LINE: -1 1:5 14:14 21:1 54:1 55:1 57:1 471:1 568:1 584:1 4686:1 11680:1 11681:1 11682:1 11683:1 11696:1 11698:1 11802:1 11803:1 12050:1 12844:1 13292:1 13293:1 13294:1 13295:1 13296:1 13297:1 13298:2 13299:1 13300:1 13301:1 13302:1 13303:1 13304:1 13304:1 13305:1 13306:1 13307:1 13308:1 13309:1 13310:1 13311:1 13312:1 13313:1 13314:1 13315:1 13316:1 13317:1 13318:1 13319:1 13320:1 13321:1 13322:1 13323:1 13324:1 13325:1 13326:1 13327:1 13328:1 13329:1 13330:1 13331:1 13332:1 13333:1 13334:1

由于某些未知原因,svm_light 大约每 500 行的功能顺序有问题。我已经通过排序功能对这些功能进行排序,但无法弄清楚为什么会失败。

这是我的 train.dat 文件中有问题的行(第 4 行)的摘录:

+1 1:5 14:14 54:1 55:1 57:1 13266:1 13267:1 13268:1 13269:1 13270:1 13271:1
+1 1:5 14:14 27:1 188:1 1436:1 3793:1 5479:1 5480:1 13272:1 13273:1 13274:1 13275:1 13276:1 13277:1 13278:1 13279:1 13280:1 13281:1 13282:1 13283:1
-1 1:5 14:14 116:1 163:1 471:1 978:1 3776:1 3826:1 5892:1 13284:1 13285:1 13286:1 13287:1 13288:1 13289:1 13290:1 13291:1
-1 1:5 14:14 21:1 54:1 55:1 57:1 471:1 568:1 584:1 4686:1 11680:1 11681:1 11682:1 11683:1 11696:1 11698:1 11802:1 11803:1 12050:1 12844:1 13292:1 13293:1 13294:1 13295:1 13296:1 13297:1 13298:2 13299:1 13300:1 13301:1 13302:1 13303:1 13304:1 13304:1 13305:1 13306:1 13307:1 13308:1 13309:1 13310:1 13311:1 13312:1 13313:1 13314:1 13315:1 13316:1 13317:1 13318:1 13319:1 13320:1 13321:1 13322:1 13323:1 13324:1 13325:1 13326:1 13327:1 13328:1 13329:1 13330:1 13331:1 13332:1 13333:1 13334:1
-1 1:5 14:14 75:1 99:1 1349:1 13335:1 13336:1 13337:1 13338:1 13339:1 13340:1 13341:1 13342:1 13343:1
+1 1:5 14:14 54:1 55:1 57:1 75:1 122:1 463:1 2044:1 2913:1 3045:1 3502:1 4540:1 11041:1 11905:1 13344:1 13345:1 13346:1 13347:1 13348:1 13349:1 13350:1 13351:1 13352:1 13353:1 13354:1 13355:1 13356:1 13357:1 13358:1 13359:1 13360:1 13361:1 13362:1 13363:1 13364:1 13365:1 13366:1 13367:1 13368:1 13369:1 13370:1 13371:1 13372:1 13373:1 13374:1 13375:1 13376:1 13377:1 13378:1 13379:1 13380:1 13381:1
-1 1:5 11:1 14:14 99:1 122:1 347:1 800:1 4428:1 5685:1 13136:1 13382:1 13383:1 13384:1 13385:1 13386:1 13387:1 13388:1 13389:1 13390:1 13391:1 13392:1 13393:1 13394:1 13395:1 13396:1 13397:1

好的,我找到问题了!这是重复的功能 ID:

... 13304:1 13304:1 ...

发生这种情况是因为数据库中的匹配函数与我的代码不一致。