📅  最后修改于: 2023-12-03 15:13:39.410000             🧑  作者: Mango
Binarizer是PySpark中的一个函数,用于将连续型的数值特征转换为二元特征。此过程也被称为二值化。
以下示例展示了如何将一个DataFrame中的数值特征进行二值化。
from pyspark.ml.feature import Binarizer
from pyspark.sql import SparkSession
# 创建SparkSession实例
spark = SparkSession.builder.appName("BinarizerExample").getOrCreate()
# 创建DataFrame
data = [(0, 0.1), (1, 0.8), (2, 0.2), (3, 0.6), (4, 0.4)]
df = spark.createDataFrame(data, ["id", "feature"])
# 初始化Binarizer实例
binarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
# 对DataFrame应用Binarizer转换
binarized_df = binarizer.transform(df)
# 展示结果
binarized_df.show()
此示例中的DataFrame中有两个列,分别为"id"和"feature"。在将该DataFrame应用到Binarizer实例后,"feature"列就被转化为"binarized_feature"列,其中"feature"列中小于或等于阈值0.5的都被转化为0,大于阈值的则被转化为1。
结果:
+---+-------+----------------+
| id|feature|binarized_feature|
+---+-------+----------------+
| 0| 0.1| 0.0|
| 1| 0.8| 1.0|
| 2| 0.2| 0.0|
| 3| 0.6| 1.0|
| 4| 0.4| 0.0|
+---+-------+----------------+
Binarizer函数有两个参数:
threshold: 阈值。默认值为0.0。任何小于或等于此值的数据将会被转换为0,大于此值的数据将会被转换为1。
inputCol: 输入列名。默认值为"input"。
outputCol: 输出列名。默认值为"output"。
Binarizer是一个简单但非常实用的函数,可以帮助我们将连续型的数值特征转换为二元特征,为后续的机器学习模型提供更加简单和易于处理的数据。