Machine learning Flink ML-SVM学习运行时间远低于预期

Machine learning Flink ML-SVM学习运行时间远低于预期,machine-learning,svm,apache-flink,libsvm,supervised-learning,Machine Learning,Svm,Apache Flink,Libsvm,Supervised Learning,我的目标是评估来自ApacheFlink和ApacheSpark的支持向量机的学习运行时。 很久以前,本文中已经完成了这项工作 他们使用的数据集包含650万到6500万个实例和631个特征 第一个结果显示了ApacheFlink的运行时和650万个实例数据集。 Flink需要111秒来完成学习(步长为0.01,正则化参数为0.01) 在我下面的代码片段中,我试图重建这个测试,但只需要14秒,与本文相比,这听起来有点不现实 对象可伸缩性测试扩展应用程序{ val env=ExecutionEnvi

我的目标是评估来自ApacheFlink和ApacheSpark的支持向量机的学习运行时。 很久以前,本文中已经完成了这项工作

他们使用的数据集包含650万到6500万个实例和631个特征

第一个结果显示了ApacheFlink的运行时和650万个实例数据集。 Flink需要111秒来完成学习(步长为0.01,正则化参数为0.01)

在我下面的代码片段中,我试图重建这个测试,但只需要14秒,与本文相比,这听起来有点不现实

对象可伸缩性测试扩展应用程序{
val env=ExecutionEnvironment.getExecutionEnvironment
val路径训练文件=”hdfs:///datasets/vectorized-data-7-mio"
val输入:数据集[LabeledVector]=env.readLibSVM(路径训练文件)
val模型=SVM()
.setBlocks(环境getParallelism)
.SET迭代次数(100次)
.SetRegulation(0.01)
.设置步长(0.01)
.setOutputDecisionFunction(真)
模型拟合(输入)
输入.输出(新的丢弃输出格式[LabeledVector])
环境执行(“flink svm可伸缩性”)
}
数据集如下所示:

0 2:0.0956973405770521 3:0.04302176671363839 63:0.22238596493564314 70:0.10967685914251926 139:0.23401113066755871 252:0.2197483438988253 555:0.4133093410994923 566:0.38936213517756474 1078:0.4758559946101788 1732:0.5005412038471097 3640:0.5518088141146315 5017:0.7249851063151311 7793:0.5518088141146315 
0 2:0.08886181625011981 3:0.039948783376949924 5:0.08410395321456549 82:0.18319049693258793 90:0.1919885302924892 256:0.21925479670962622 303:0.4053787361547381 325:0.22255697201807345 353:0.27518945356563856 530:0.31997134952306455 562:0.43392159248729284 785:0.49570712373633596 9066:0.6077511178730391 15357:0.7227109687611892 
0 1:0.10076144986545423 2:0.0691147459723154 3:0.06214255191969988 7:0.18335119128172658 20:0.08097367795302803 35:0.25318177398006236 37:0.04713864367763213 70:0.0792110649362639 111:0.17495017690637232 137:0.2826397578480119 153:0.17929691347274906 160:0.34589629247477904 256:0.1705315085519315 1091:0.26748048081097636 1281:0.28156097530039514 4054:0.36002041127390355
包含7mio行和26k特征

问题:


我是否错过了一些东西,或者我的学习运行时使用包含更多行和特性的数据集会更快,这是怎么回事?

您使用的是哪个flink版本?你的集群是什么样子的?看到它是合法的,我不会感到惊讶;与弗林克的生活相比,这张纸是古老的。@ArvidHeise感谢您的回答:)使用弗林克版本1.9.1集群包含1个主集群和3个从集群。所有机器都有32gb RAM、8核(带超线程的四核)和2 TB内存。但是,我的spark学习率的值比本文的值要低得多。所以代码总体上看起来是合法的,对吗?是的,Spark和Flink在过去3年中都有了显著的改进。尤其是恒速启动时间大大缩短。然而,报纸也提到了相当结实的机器。为了安全起见,我会尝试评估a)也使用论文中的数据集,以及b)对结果进行定性评估。由于训练时间很短,我确信您可以将整个数据集上模型的RMSE与Python中的一些非分布式实现进行比较。@ArvidHeise感谢您的帮助。我真的很感激。我还想比较SparkML的线性SVC与Spark MLlib和FlinkML的SVM模型。我不是一个机器学习专家,所以可能这是一个很愚蠢的问题,但是:为了有相同的配置,我设置了步长、正则化和迭代。但是我找不到任何可以为LinearSVC设置的步长。如何比较学习运行时?谢谢你的帮助。对不起,我还没有用SparkML。我想,为这个问题创建一个新的主题是合适的。