當前位置: 首頁>>機器學習>>正文


pyspark卡方特征選擇ChiSqSelector用法示例

類ChiSqSelector聲明

class pyspark.mllib.feature.ChiSqSelector(numTopFeatures=50, selectorType='numTopFeatures', percentile=0.1, fpr=0.05)

類ChiSqSelector用於創建一個卡方(ChiSquared)特征選擇器。選擇器支持不同的選擇方法:numTopFeatures,percentile,fpr。

  • numTopFeatures:根據卡方檢驗選擇固定數量的topK(K=numTopFeatures)特征。
  • percentile:百分位數跟numTopFeatures類似,但按比例選擇所有特征的一部分,而不是固定數量。
  • fpr:選擇p-value值低於閾值的所有特征,從而控製選擇的false positive率。
  • 默認情況下,選擇方法是numTopFeatures,默認的topK特征數量設置為50。

示例代碼

>>> data = sc.parallelize([
...     LabeledPoint(0.0, SparseVector(3, {0: 8.0, 1: 7.0})),
...     LabeledPoint(1.0, SparseVector(3, {1: 9.0, 2: 6.0})),
...     LabeledPoint(1.0, [0.0, 9.0, 8.0]),
...     LabeledPoint(2.0, [7.0, 9.0, 5.0]),
...     LabeledPoint(2.0, [8.0, 7.0, 3.0])
... ])
>>> model = ChiSqSelector(numTopFeatures=1).fit(data)
>>> model.transform(SparseVector(3, {1: 9.0, 2: 6.0}))
SparseVector(1, {})
>>> model.transform(DenseVector([7.0, 9.0, 5.0]))
DenseVector([7.0])
>>> model = ChiSqSelector(selectorType="fpr", fpr=0.2).fit(data)
>>> model.transform(SparseVector(3, {1: 9.0, 2: 6.0}))
SparseVector(1, {})
>>> model.transform(DenseVector([7.0, 9.0, 5.0]))
DenseVector([7.0])
>>> model = ChiSqSelector(selectorType="percentile", percentile=0.34).fit(data)
>>> model.transform(DenseVector([7.0, 9.0, 5.0]))
DenseVector([7.0])

ChiSqSelector的相關函數

fit(data)

返回:一個ChiSquared特征選擇器。
參數:data – 包含帶有類別特征的標記數據集的RDD [LabeledPoint]。實值特征將被視為每個不同值的類別。使用此功能之前先功做特征離散化(feature discretizer)。
New in version 1.4.0.

setFpr(fpr)

設置FPR [0.0,1.0]以進行特征選擇。隻適用於selectorType =“fpr”。
New in version 2.1.0.

setNumTopFeatures(numTopFeatures)

設置topK特征的數量。隻適用於selectorType =“numTopFeatures”。
New in version 2.1.0.

setPercentile(percentile)

按百分位數設置特征選擇比例,範圍在[0.0,1.0]。隻適用於selectorType =“percentile”。
New in version 2.1.0.

setSelectorType(selectorType)

設置ChisqSelector的選擇器類型。支持的選項:“numTopFeatures”(默認),“percentile”,“fpr”。
New in version 2.1.0.

備注

ChiSqSelector卡方特征選擇的最新信息參考:ChiSqSelector

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3470.html,未經允許,請勿轉載。