Pyspark:分类特征的似然编码

时间:2018-06-08 13:29:12

标签: encoding pyspark categorical-data log-likelihood

我想对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:目标值

但是,这太费时了。

0 个答案:

没有答案