Dus*_*tin 5 machine-learning cross-validation pyspark
pyspark 中是否有内置的日志损失函数?
我有一个带有列的 pyspark 数据框:概率、原始预测、标签
我想使用平均对数损失来评估这些预测。
据我所知,没有这样的函数直接存在。但是给定一个 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可能意味着什么。)