當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。