本文簡要介紹
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。