【发布时间】:2018-12-11 08:04:30
【问题描述】:
我正在尝试使用逻辑回归对一些数据进行建模,这是 spark MLlib 的一部分。对于模型创建,我有以下列:
ID,
features,
label
我可以通过以下方式将其拆分为训练数据和价值数据
(trainsample,testsample) = sample.randomSplit([0.7, 0.3], seed)
另外,我可以定义我的模型:
lr = LogisticRegression(featuresCol="features", labelCol="label",
predictionCol="prediction")
然后我可以训练和测试它:
lrmodel = lr.fit(trainsample)
result = lrmodel.transform(testmodel)
一切都好。但现在我想使用我的模型并预测未标记的数据。我总是得到 以下错误:
IllegalArgumentException: 'Field "label" does not exist
我尝试创建一个虚拟标签列(所有值 999)。但是,我所有的预测都属于一个类(7 个不同类的第 6 类)。因此,即使使用预训练模型,标签似乎也会影响我的预测。
也许“lrmodel.transform”只是为了测试,还有其他语法可以使用模型。但我没有找到任何关于这个话题的东西。任何帮助将不胜感激。
【问题讨论】:
-
听起来很奇怪,标签不应该影响你的模型预测。它用于您的模型评估。 Transform 执行“前向”,因此无论您是在交叉验证还是测试中,您都应该获得一个预测
-
是的,我就是这么想的。我得到 IllegalArgumentException: 'Field "label" does not exist when I run: result = lrmodel.transform(unlabeled_data) ;/
标签: scala apache-spark pyspark apache-spark-mllib