我想对PySpark dataFrame中的某些分类特征进行似然(均值)编码。 你知道是否有build-it方法吗? 现在,我创建一个字典(键:每个类别值,值:均值编码值)。然后我用这段代码替换分类值及其在字典中的对应值:
temp_df = df.groupby(col).agg({'label': 'mean'})
col_dict = dict(temp_df.rdd.map(lambda x: (x[col], x['avg(label)'])).collect())
from pyspark.sql.functions import udf
likelihood_value = udf(lambda x: col_dict[x])
df = df.withColumn(col+"_encoded",likelihood_value(df[col]))
df:pySpark dataFrame label:目标值
但是,这太费时了。