Apache spark PySpark MLlib:AssertionError:Classifier不';t从HasRawPredictionCol扩展
我是Spark的新手。我想在PySpark MLlib中为SVM使用多类分类。我在Windows上安装了Spark 2.3.0 但是我搜索并发现SVM只在Spark中用于二值分类,所以我们必须使用一对所有策略。它给了我一个错误,当我试图使用一对所有的支持向量机。我搜索了错误,但没有找到解决方法 我在这个链接中使用了“一对所有”的代码 这是我的密码:Apache spark PySpark MLlib:AssertionError:Classifier不';t从HasRawPredictionCol扩展,apache-spark,pyspark,svm,apache-spark-mllib,apache-spark-ml,Apache Spark,Pyspark,Svm,Apache Spark Mllib,Apache Spark Ml,我是Spark的新手。我想在PySpark MLlib中为SVM使用多类分类。我在Windows上安装了Spark 2.3.0 但是我搜索并发现SVM只在Spark中用于二值分类,所以我们必须使用一对所有策略。它给了我一个错误,当我试图使用一对所有的支持向量机。我搜索了错误,但没有找到解决方法 我在这个链接中使用了“一对所有”的代码 这是我的密码: 从pyspark.mllib.classification导入SVMWithSGD、SVMModel 从pyspark.ml.classifica
从pyspark.mllib.classification导入SVMWithSGD、SVMModel
从pyspark.ml.classification导入OneVsRest
#实例化One-Vs-Rest分类器。
svm_模型=SVMWithSGD()
ovr=OneVsRest(分类器=svm_模型)
#训练多类模型。
ovr模型=ovr.配合(rdd_系列)
#根据测试数据对模型进行评分。
预测=ovrModel.transform(rdd_测试)
错误在“ovr.fit(rdd_列)”行中。这里是错误
文件“D:/Mycode newtrials-Copy/stance_detection-norelieff lgbm-randomizedsearch-modified-spark.py”,第1460行,在computescores中
ovr模型=ovr.配合(rdd_系列)
文件“D:\python27\lib\site packages\pyspark\ml\base.py”,第132行,在fit中
返回自拟合(数据集)
文件“D:\python27\lib\site packages\pyspark\ml\classification.py”,第1758行,以_-fit格式
“分类器%s不从HasRawPredictionCol扩展。”%type(分类器)
AssertionError:分类器不从HasRawPredictionCol扩展。
出现错误是因为您试图使用Spark ML中的模型(OneVsRest
)和Spark MLlib中的基本二进制分类器(SVMWithSGD
)
(旧的、基于RDD的API)和(新的、基于数据帧的API)不仅是不同的库,而且它们也是不兼容的:不能在它们之间混合模型(仔细看这些示例,您将看到它们从pyspark.ml
导入基本分类器,而不是像您在这里尝试的那样从pyspark.mllib
导入基本分类器)
不幸的是,在撰写本文时(Spark 2.3),Spark ML不包括支持向量机,因此您目前无法将该算法用作带有OneVsRest
的基本分类器