将 KDDCup 99 数据与 Spark MLLib RandomForest 一起使用

Posted

技术标签:

【中文标题】将 KDDCup 99 数据与 Spark MLLib RandomForest 一起使用【英文标题】:Using KDDCup 99 Data with Spark MLLib RandomForest 【发布时间】:2016-12-13 12:45:27 【问题描述】:

我正在尝试在我的机器学习项目中使用 KDDCup 99 数据。我决定使用 Spark MLLib 并首先尝试我们的随机森林。我在这里参考随机森林分析的例子。

https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/mllib/JavaRandomForestClassificationExample.java https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/mllib/JavaRandomForestRegressionExample.java

现在,他们使用的数据格式如下。

0 128:51 129:159 130:253 131:159 132:50 155:48 156:238 157:252 158:252 159:252 160:237 182:54 183:227 184:253 185:252 186:239 187:233 188:252 189:57 190:6 208:10 209:60 210:224 211:252 212:253 213:252 214:202 215:84 216:252 217:253 218:122 236:163 237:252 238:252 239:252 240:253 241:252 242:252 243:96 244:189 245:253 246:167 263:51 264:238 265:253 266:253 267:190 268:114 269:253 270:228 271:47 272:79 273:255 274:168 290:48 291:238 292:252 293:252 294:179 295:12 296:75 297:121 298:21 301:253 302:243 303:50 317:38 318:165 319:253 320:233 321:208 322:84 329:253 330:252 331:165 344:7 345:178 346:252 347:240 348:71 349:19 350:28 357:253 358:252 359:195 372:57 373:252 374:252 375:63 385:253 386:252 387:195 400:198 401:253 402:190 413:255 414:253 415:196 427:76 428:246 429:252 430:112 441:253 442:252 443:148 455:85 456:252 457:230 458:25 467:7 468:135 469:253 470:186 471:12 483:85 484:252 485:223 494:7 495:131 496:252 497:225 498:71 511:85 512:252 513:145 521:48 522:165 523:252 524:173 539:86 540:253 541:225 548:114 549:238 550:253 551:162 567:85 568:252 569:249 570:146 571:48 572:29 573:85 574:178 575:225 576:253 577:223 578:167 579:56 595:85 596:252 597:252 598:252 599:229 600:215 601:252 602:252 603:252 604:196 605:130 623:28 624:199 625:252 626:252 627:253 628:252 629:252 630:233 631:145 652:25 653:128 654:252 655:253 656:252 657:141 658:37

KDDCup 数据格式如下。

0,tcp,http,SF,215,45076,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,normal.

第一季度。有人可以指导我火花示例中使用的数据的因素是什么。我明白第一列0 表示标签(真/假),数据是空格分隔的。但是不明白:分隔的两个数字是什么意思。

第二季度。也不完全知道如何将我的 KDDCup 99 数据字符串转换为随机森林的数值。 Spark MLLib 中是否有任何内置函数?

第三季度。任何使用真实世界数据的 Spark MLLib 示例都会非常有帮助。

谢谢

【问题讨论】:

我对 ML 比较陌生,据我所知,您提到的数据格式称为 LIBSVM 格式,您可以在上面找到很多参考资料。可能有用的链接之一csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f306 一个更有用的链接来了解 LIBSVM 格式 souledsole.wordpress.com/2016/01/13/… 希望这可能有用 好的,Aditya,这很有帮助。仍然可以朝着一个方向前进,而不是被卡住并花费太多时间从数据的模式中弄清楚。但是,“loadLabeledPoints”、“loadLibSVMFile”和“loadVectors”似乎有三个选项。如果您对这些不同功能的使用有任何想法,请告知。 【参考方案1】:

所以我终于找到了一种将 KDDCup 99 数据集用于 Spark 的方法。 我将字符串数据矢量化为整数索引,通过属性文件读取它们。 我也把标签放在记录的开头。 还使用 python 代码将我最终的 KDDCup 数据转换为 Libsvm 数据格式。 我处理整个事情的代码可以在下面的 github 存储库中找到。 https://github.com/keyurgolani/RandomForestSpark.git

多亏了 Addy 的贡献,才能够弄清楚这一切。

【讨论】:

以上是关于将 KDDCup 99 数据与 Spark MLLib RandomForest 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

KDDCup深度学习

第二次毕业设计任务书(KDD数据研究)

k-means聚类攻击类型

SIGIR 2021 | 广告系统位置偏差的CTR模型优化方案

将 Spark 与 Flask 与 JDBC 一起使用

Spark 2.0 将 json 读入带有引号的数据帧中 - 与 spark 1.6 不同的行为......错误?