pyspark 中的对数损失函数

Dus*_*tin 5 machine-learning cross-validation pyspark

pyspark 中是否有内置的日志损失函数?

我有一个带有列的 pyspark 数据框:概率、原始预测、标签

我想使用平均对数损失来评估这些预测。

abe*_*bop 5

据我所知,没有这样的函数直接存在。但是给定一个 PySpark 数据框df,其中列在问题中命名,可以明确计算平均对数损失:

import pyspark.sql.functions as f

df = (
    df.withColumn(
        'logloss'
        , -f.col('label')*f.log(f.col('probability')) - (1.-f.col('label'))*f.log(1.-f.col('probability'))
    )
)

logloss = df.agg(f.mean('logloss').alias('ll')).collect()[0]['ll']
Run Code Online (Sandbox Code Playgroud)

我在这里假设这label是数字(即 0 或 1),probability代表模型的预测。(不确定rawPrediction可能意味着什么。)