【发布时间】: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