本文简要介绍
pyspark.ml.feature.FeatureHasher
的用法。用法:
class pyspark.ml.feature.FeatureHasher(*, numFeatures=262144, inputCols=None, outputCol=None, categoricalCols=None)
特征散列将一组分类或数字特征投影到指定维度的特征向量中(通常远小于原始特征空间的特征向量)。这是使用散列技巧 (https://en.wikipedia.org/wiki/Feature_hashing) 将特征映射到特征向量中的索引来完成的。
FeatureHasher 转换器在多个列上运行。每列可以包含数字或分类特征。列数据类型的行为和处理如下:
- 数值列:
对于数字特征,列名的哈希值用于将特征值映射到其在特征向量中的索引。默认情况下,数字特征不被视为分类(即使它们是整数)。要将它们视为分类,请在
categoricalCols
中指定相关列。
- 字符串列:
对于分类特征,字符串 “column_name=value” 的哈希值用于映射到向量索引,指标值为
1.0
。因此,分类特征是 “one-hot” 编码的(类似于使用OneHotEncoder
和dropLast=false
)。
- 布尔列:
布尔值的处理方式与字符串列相同。也就是说,布尔特征表示为“column_name=true”或“column_name=false”,指标值为
1.0
。
Null(缺失)值被忽略(在结果特征向量中隐式为零)。
由于使用简单的模将散列函数转换为向量索引,因此建议使用 2 的幂作为
numFeatures
参数;否则特征将不会均匀地映射到向量索引。2.3.0 版中的新函数。
例子:
>>> data = [(2.0, True, "1", "foo"), (3.0, False, "2", "bar")] >>> cols = ["real", "bool", "stringNum", "string"] >>> df = spark.createDataFrame(data, cols) >>> hasher = FeatureHasher() >>> hasher.setInputCols(cols) FeatureHasher... >>> hasher.setOutputCol("features") FeatureHasher... >>> hasher.transform(df).head().features SparseVector(262144, {174475: 2.0, 247670: 1.0, 257907: 1.0, 262126: 1.0}) >>> hasher.setCategoricalCols(["real"]).transform(df).head().features SparseVector(262144, {171257: 1.0, 247670: 1.0, 257907: 1.0, 262126: 1.0}) >>> hasherPath = temp_path + "/hasher" >>> hasher.save(hasherPath) >>> loadedHasher = FeatureHasher.load(hasherPath) >>> loadedHasher.getNumFeatures() == hasher.getNumFeatures() True >>> loadedHasher.transform(df).head().features == hasher.transform(df).head().features True
相关用法
- Python pyspark FMRegressor用法及代码示例
- Python pyspark FPGrowth用法及代码示例
- Python pyspark Float64Index用法及代码示例
- Python pyspark FMClassifier用法及代码示例
- Python pyspark FPGrowthModel用法及代码示例
- 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用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.ml.feature.FeatureHasher。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。