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 随机森林回归器预测多类的主要内容,如果未能解决你的问题,请参考以下文章