首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花ML:使用ChiSqSelector进行特征选择后训练中的问题

火花ML:使用ChiSqSelector进行特征选择后训练中的问题
EN

Stack Overflow用户
提问于 2017-09-17 22:00:59
回答 1查看 1.1K关注 0票数 5

我是新来的。我正在研究一个分类模型,并希望使用ChiSqSelector来选择用于模型培训的重要特性。但是,当我使用ChiSqSelector选择的特性进行训练时,它会引发以下错误:

"IllegalArgumentException: U‘’Feature 0被标记为标称(分类),但它没有指定值的数量“

有趣的是,当我使用基于树的算法时,我得到了上面提到的错误。因为,天真的偏见和logistic回归,我没有得到错误。

当我使用spark文档中的示例代码中提供的数据时,我发现了同样的结果。该错误可以通过使用spark 2.1.1文档中的代码来再现:

代码语言:javascript
复制
from pyspark.ml.feature import ChiSqSelector
from pyspark.ml.linalg import Vectors

df = spark.createDataFrame([
    (7, Vectors.dense([0.0, 0.0, 18.0, 1.0]), 1.0,),
    (8, Vectors.dense([0.0, 1.0, 12.0, 0.0]), 0.0,),
    (9, Vectors.dense([1.0, 0.0, 15.0, 0.1]), 0.0,)], ["id", "features", 
"clicked"])
selector = ChiSqSelector(numTopFeatures=2, featuresCol="features",
                     outputCol="selectedFeatures", labelCol="clicked")
result = selector.fit(df).transform(df)
print("ChiSqSelector output with top %d features selected" % 
selector.getNumTopFeatures())
result.show()
from pyspark.ml.classification import DecisionTreeClassifier
dt = DecisionTreeClassifier(labelCol="clicked", 
featuresCol="selectedFeatures")
model = dt.fit(result)

有人在Apache用户列表(以下链接)报告了这个问题,但没有人回应。http://apache-spark-user-list.1001560.n3.nabble.com/Application-of-ChiSqSelector-results-in-quot-Feature-0-is-marked-as-Nominal-quot-td27040.html

如果有人对此有所了解,我会非常感激的。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 08:32:48

我也遇到了这个问题。特性列SparseVector -> DenseVector可以使其运行--我不知道是否有更好的方法

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46269275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档