pyspark.ml.feature.UnivariateFeatureSelector
的用法。用法:
class pyspark.ml.feature.UnivariateFeatureSelector(*, featuresCol='features', outputCol=None, labelCol='label', selectionMode='numTopFeatures')
基于针对标签的单变量统计测试的特征选择器。目前,Spark 支持三种单变量特征选择器:卡方、ANOVA F-test 和 F-value。用户可以通过设置
featureType
和labelType
来选择单变量特征选择器,Spark 将根据指定的featureType
和labelType
选择评分函数。支持以下
featureType
和labelType
的组合:featureType
categorical
和labelType
categorical
,Spark 使用卡方,即 sklearn 中的 chi2。featureType
continuous
和labelType
categorical
,Spark 使用 ANOVA F-test,即 sklearn 中的 f_classif。featureType
continuous
和labelType
continuous
,Spark使用F-value,即sklearn中的f_regression。
UnivariateFeatureSelector
支持不同的选择模式:numTopFeatures
、percentile
、fpr
、fdr
、fwe
。numTopFeatures
根据一个假设选择固定数量的顶级特征。percentile
类似,但选择所有特征的一小部分而不是固定数量。fpr
选择 p 值低于阈值的所有特征,从而控制选择的误报率。fdr
使用 Benjamini-Hochberg procedure 选择错误发现率低于阈值的所有特征。fwe
选择 p 值低于阈值的所有特征。阈值按 1 /numFeatures
缩放,从而控制 family-wise 选择错误率。
默认情况下,选择模式为
numTopFeatures
。版本 3.1.1 中的新函数。
例子:
>>> from pyspark.ml.linalg import Vectors >>> df = spark.createDataFrame( ... [(Vectors.dense([1.7, 4.4, 7.6, 5.8, 9.6, 2.3]), 3.0), ... (Vectors.dense([8.8, 7.3, 5.7, 7.3, 2.2, 4.1]), 2.0), ... (Vectors.dense([1.2, 9.5, 2.5, 3.1, 8.7, 2.5]), 1.0), ... (Vectors.dense([3.7, 9.2, 6.1, 4.1, 7.5, 3.8]), 2.0), ... (Vectors.dense([8.9, 5.2, 7.8, 8.3, 5.2, 3.0]), 4.0), ... (Vectors.dense([7.9, 8.5, 9.2, 4.0, 9.4, 2.1]), 4.0)], ... ["features", "label"]) >>> selector = UnivariateFeatureSelector(outputCol="selectedFeatures") >>> selector.setFeatureType("continuous").setLabelType("categorical").setSelectionThreshold(1) UnivariateFeatureSelector... >>> model = selector.fit(df) >>> model.getFeaturesCol() 'features' >>> model.setFeaturesCol("features") UnivariateFeatureSelectorModel... >>> model.transform(df).head().selectedFeatures DenseVector([7.6]) >>> model.selectedFeatures [2] >>> selectorPath = temp_path + "/selector" >>> selector.save(selectorPath) >>> loadedSelector = UnivariateFeatureSelector.load(selectorPath) >>> loadedSelector.getSelectionThreshold() == selector.getSelectionThreshold() True >>> modelPath = temp_path + "/selector-model" >>> model.save(modelPath) >>> loadedModel = UnivariateFeatureSelectorModel.load(modelPath) >>> loadedModel.selectedFeatures == model.selectedFeatures True >>> loadedModel.transform(df).take(1) == model.transform(df).take(1) True
相关用法
- Python pyspark create_map用法及代码示例
- Python pyspark date_add用法及代码示例
- Python pyspark DataFrame.to_latex用法及代码示例
- Python pyspark DataStreamReader.schema用法及代码示例
- Python pyspark MultiIndex.size用法及代码示例
- Python pyspark arrays_overlap用法及代码示例
- Python pyspark Series.asof用法及代码示例
- Python pyspark DataFrame.align用法及代码示例
- Python pyspark Index.is_monotonic_decreasing用法及代码示例
- Python pyspark IsotonicRegression用法及代码示例
- Python pyspark DataFrame.plot.bar用法及代码示例
- Python pyspark DataFrame.to_delta用法及代码示例
- Python pyspark element_at用法及代码示例
- Python pyspark explode用法及代码示例
- Python pyspark MultiIndex.hasnans用法及代码示例
- Python pyspark Series.to_frame用法及代码示例
- Python pyspark DataFrame.quantile用法及代码示例
- Python pyspark Column.withField用法及代码示例
- Python pyspark Index.values用法及代码示例
- Python pyspark Index.drop_duplicates用法及代码示例
- Python pyspark aggregate用法及代码示例
- Python pyspark IndexedRowMatrix.computeGramianMatrix用法及代码示例
- Python pyspark DecisionTreeClassifier用法及代码示例
- Python pyspark Index.value_counts用法及代码示例
- Python pyspark GroupBy.mean用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.ml.feature.UnivariateFeatureSelector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。