ChiSqSelector - 真正的特点 - Spark
ChiSqSelector - Real Features - Spark
我正在使用 Spark 1.6 构建一个 NB 模型,并使用 ChiSqSelector 来识别顶级特征。我总共有 7 个功能,正在寻找前 3 个。虽然过程运行良好,但我将如何识别被评为顶级功能的实际功能。由于数据已分类,我无法将输出映射到实际输入列。
val chidata = cat_recs.map(r => (r.getDouble(targetInd), Vectors.dense(featuresidx.map(r.getDouble(_)).toArray))).toDF("target","features")
val sel = new ChiSqSelector().setNumTopFeatures(3).setFeaturesCol("features").setLabelCol("target").setOutputCol("selectedFeatuers")
val chiresult = sel.fit(chidata).transform(chidata)
输出为
scala> chiresult.foreach(println)
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
[1.0,[4.0,3.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
[0.0,[3.0,2.0,0.0,5.0,7.0,5.0,3.0],[0.0,5.0,7.0]]
[1.0,[1.0,2.0,0.0,1.0,7.0,5.0,2.0],[0.0,1.0,7.0]]
[1.0,[0.0,2.0,0.0,1.0,7.0,5.0,3.0],[0.0,1.0,7.0]]
结构——目标:双精度,特征:向量,selectedFeatures:向量
综上所述,我们以第一行为例
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
我如何识别它在 selectedFeatures 中指的是哪个 0.0,在第 5 行中也是如此。
请帮忙..
谢谢
巴拉
在你的例子中:
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
最后一列 [0.0,5.0,7.0]
表示所选特征的值,在本例中为特征 2、3 和 4(从 0 开始计数)。要提取未来指数,只需使用
val model = sel.fit(chidata)
val importantFeatures = model.selectedFeatures
我正在使用 Spark 1.6 构建一个 NB 模型,并使用 ChiSqSelector 来识别顶级特征。我总共有 7 个功能,正在寻找前 3 个。虽然过程运行良好,但我将如何识别被评为顶级功能的实际功能。由于数据已分类,我无法将输出映射到实际输入列。
val chidata = cat_recs.map(r => (r.getDouble(targetInd), Vectors.dense(featuresidx.map(r.getDouble(_)).toArray))).toDF("target","features")
val sel = new ChiSqSelector().setNumTopFeatures(3).setFeaturesCol("features").setLabelCol("target").setOutputCol("selectedFeatuers")
val chiresult = sel.fit(chidata).transform(chidata)
输出为
scala> chiresult.foreach(println)
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
[1.0,[4.0,3.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
[0.0,[3.0,2.0,0.0,5.0,7.0,5.0,3.0],[0.0,5.0,7.0]]
[1.0,[1.0,2.0,0.0,1.0,7.0,5.0,2.0],[0.0,1.0,7.0]]
[1.0,[0.0,2.0,0.0,1.0,7.0,5.0,3.0],[0.0,1.0,7.0]]
结构——目标:双精度,特征:向量,selectedFeatures:向量 综上所述,我们以第一行为例
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
我如何识别它在 selectedFeatures 中指的是哪个 0.0,在第 5 行中也是如此。
请帮忙..
谢谢
巴拉
在你的例子中:
[1.0,[0.0,2.0,0.0,5.0,7.0,5.0,1.0],[0.0,5.0,7.0]]
最后一列 [0.0,5.0,7.0]
表示所选特征的值,在本例中为特征 2、3 和 4(从 0 开始计数)。要提取未来指数,只需使用
val model = sel.fit(chidata)
val importantFeatures = model.selectedFeatures