pyspark 随机森林回归器预测多类

Posted

技术标签:

【中文标题】pyspark 随机森林回归器预测多类【英文标题】:pyspark random forest regressor predict multiclass 【发布时间】:2020-10-15 01:15:24 【问题描述】:

我有随机森林回归器 pyspark ml 模型。响应变量有 9 个类别。

当我预测测试数据时,我得到的概率是我需要得到的类。

使用的代码:

rf = RandomForestRegressor(featuresCol="scaled_features")
pipeline = Pipeline(stages=[featureIndexer, rf])

# Train model.  This also runs the indexer.
model = pipeline.fit(train)

# Make predictions.
predictions = model.transform(test)

evaluator = RegressionEvaluator(labelCol="label", predictionCol="prediction", metricName="rmse")
rmse = evaluator.evaluate(predictions)

【问题讨论】:

你听起来很困惑;回归量(例如此处的 RF)返回概率,而只是返回数值。如果您的问题是分类问题,则应使用相应的分类器,而不是回归器。 感谢您的澄清,但在我的目标变量中有 9 个类。我需要使用回归器而不是分类器。然而,对于我的测试类预测只有 2 。模型未预测其他类 恐怕你听上去还是一头雾水。您只是处于一个多类分类设置(有 9 个类)中,但它仍然是分类,并且 不是 回归。根据定义,您无法从回归模型中获得概率值(更不用说类别了)。 谢谢,因为我的输入类有 [0-9] 类,所以很困惑。回归拟合的预期预测结果在 0-9 范围内。当我看到预测结果时,只有 0.xxx 和 1.xxx 为 0.1,1.3。因此我认为它是概率。但是你已经澄清了这些不是概率值 【参考方案1】:

您正在处理分类问题。所以你应该使用RandomForestClassifier作为ML算法。

对于评估,您应该使用MulticlassClassificationEvaluator

【讨论】:

我将我的目标类视为连续 10 个类。使用 RandomForest Regressor 时,我只有 2 个类的预测,如何让模型预测所有类。

以上是关于pyspark 随机森林回归器预测多类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 的随机森林回归器中手动预测?

PySpark 和 MLLib:随机森林预测的类概率

如何在 Python 中使用随机森林回归器预测未来的数字

如何获得随机森林多类中一类的预测概率?

测量随机森林回归器中每个预测器特征重要性对目标值的影响(量化)(目标值的提升或下降)

分类算法 - 随机森林