当前位置: 首页>>机器学习>>正文


pyspark卡方特征选择ChiSqSelector用法示例

qingchuan 机器学习, 算法&结构 , , 去评论

类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/article/3470.html,未经允许,请勿转载。