我有一个大的数据集,大约有250个特征,我想在梯度增强的树分类器中使用。我有数百万个观测值,但是我无法让模型使用甚至只有1%的数据(约30万个观测值)运行。以下是我的代码片段。我无法为您共享任何数据,但是所有功能都是数字的(用于各种因子水平的数字变量或虚拟变量)。我使用VectorAssembler
创建一个features
变量,其中包含来自相应观察结果的特征向量。
当我将模型使用的特征数量减少到5时,模型运行就没有问题。只有当我通过添加大量功能使问题变得更加复杂时,它才开始失败。我得到的错误是TTransport Exception
。该模型将尝试运行数小时,然后再出现错误。我正在使用Qubole构建模型。我是Qubole和PySpark的新手,所以不确定我的问题是否是火花内存问题,Qubole内存(我的群集具有4 TB以上的数据,数据只有几个GB),等等。
关于测试/调试的任何想法或想法都会有所帮助。谢谢。
train = train.withColumnRenamed(target, "label")
test = test.withColumnRenamed(target, "label")
evaluator = BinaryClassificationEvaluator()
gbt = GBTClassifier(maxIter=10)
gbtModel = gbt.fit(train)
gbtPredictions = gbtModel.transform(test)
gbtPredictions.select('label','rawPrediction', 'prediction', 'probability').show(10)
print("Test Area Under ROC: " + str(evaluator.evaluate(gbtPredictions, {evaluator.metricName: "areaUnderROC"})))
您想尝试此https://docs.qubole.com/en/latest/troubleshooting-guide/notebook-ts/troubleshoot-notebook.html#ttexception。如果这样做仍然不能解决问题,请随时向我们创建支持请求,我们很乐意进行调查。