类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