【问题标题】:pyspark random forest regressor predict multiclasspyspark 随机森林回归器预测多类
【发布时间】: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。因此我认为它是概率。但是你已经澄清了这些不是概率值

标签: machine-learning pyspark random-forest apache-spark-ml


【解决方案1】:

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

对于评估,您应该使用MulticlassClassificationEvaluator

【讨论】:

  • 我将我的目标类视为连续 10 个类。使用 RandomForest Regressor 时,我只有 2 个类的预测,如何让模型预测所有类。
猜你喜欢
  • 2021-11-20
  • 2020-07-06
  • 2015-05-03
  • 1970-01-01
  • 2017-04-14
  • 2014-08-07
  • 2019-12-06
  • 2021-10-10
相关资源
最近更新 更多