我有一个Spark应用程序,它在libsvm格式的稀疏矩阵上使用梯度增强树。在纱线丛集模式下花费Spark应用程序的时间
val model = GradientBoostedTrees.train(trainingData, boostingStrategy)
第一个是从什么时候开始。然后我拍了一段时间的屏幕截图。
如果你看单独的任务 - 你会看到毫秒和秒。如果我把它们加起来,他们会给我几分钟的时间。不过,在我拍摄第二个屏幕时,我的应用程序运行了1.5小时。
所以我的问题是
我怎么知道正在采取的时间(不是UI)90%?
如何在Spark上固定渐变增强过程。如果您看到大多数任务是ML Lib和决策树内发生的事情。我使用了5个分区 - 我应该增加更多分区吗?还有多少 ?
数据不断增加,从37MB增加到19GB。为什么呢? - 这是一个问题吗?
经过一段时间,当我完成了我的训练,并试图写出预测(折叠) - 我得到一个大小超过INT Max_Value错误。原因是 - 似乎有太多的文字被写出来了?它是每个分区?
我必须训练GBT的300轮数。我在3到4小时内挣扎了3次POC。使用MLLib在Spark中完成300轮梯度增强是否可能?
我在斯卡拉2.10.4和mllib 1.5.2
是的 - 我知道 - 但我已经用GBT在本地完成了,预测比我的训练数据要好得多。事实上,现在GB已经成为任何ML问题的默认算法 - 特别是随着XGBoost的到来。我希望有人能帮助我。感谢您的回复 – Run2