当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark ChiSqSelector用法及代码示例


本文简要介绍 pyspark.ml.feature.ChiSqSelector 的用法。

用法:

class pyspark.ml.feature.ChiSqSelector(*, numTopFeatures=50, featuresCol='features', outputCol=None, labelCol='label', selectorType='numTopFeatures', percentile=0.1, fpr=0.05, fdr=0.05, fwe=0.05)

卡方特征选择,选择用于预测分类标签的分类特征。选择器支持不同的选择方法: numTopFeaturespercentilefprfdrfwe

  • numTopFeatures 根据卡方检验选择固定数量的顶级特征。

  • percentile 类似,但选择所有特征的一小部分而不是固定数量。

  • fpr 选择 p 值低于阈值的所有特征,从而控制选择的误报率。

  • fdr 使用 Benjamini-Hochberg procedure 选择错误发现率低于阈值的所有特征。

  • fwe 选择 p 值低于阈值的所有特征。阈值按 1/numFeatures 缩放,从而控制选择的 family-wise 错误率。

默认情况下,选择方法为 numTopFeatures ,默认顶部特征数设置为 50。

自 3.1.0 版起已弃用:使用UnivariateFeatureSelector

2.0.0 版中的新函数。

例子

>>> from pyspark.ml.linalg import Vectors
>>> df = spark.createDataFrame(
...    [(Vectors.dense([0.0, 0.0, 18.0, 1.0]), 1.0),
...     (Vectors.dense([0.0, 1.0, 12.0, 0.0]), 0.0),
...     (Vectors.dense([1.0, 0.0, 15.0, 0.1]), 0.0)],
...    ["features", "label"])
>>> selector = ChiSqSelector(numTopFeatures=1, outputCol="selectedFeatures")
>>> model = selector.fit(df)
>>> model.getFeaturesCol()
'features'
>>> model.setFeaturesCol("features")
ChiSqSelectorModel...
>>> model.transform(df).head().selectedFeatures
DenseVector([18.0])
>>> model.selectedFeatures
[2]
>>> chiSqSelectorPath = temp_path + "/chi-sq-selector"
>>> selector.save(chiSqSelectorPath)
>>> loadedSelector = ChiSqSelector.load(chiSqSelectorPath)
>>> loadedSelector.getNumTopFeatures() == selector.getNumTopFeatures()
True
>>> modelPath = temp_path + "/chi-sq-selector-model"
>>> model.save(modelPath)
>>> loadedModel = ChiSqSelectorModel.load(modelPath)
>>> loadedModel.selectedFeatures == model.selectedFeatures
True
>>> loadedModel.transform(df).take(1) == model.transform(df).take(1)
True

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.ml.feature.ChiSqSelector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。