類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