介绍
当使用
PySpark计算AUC时,可以使用
但是,为了理解模型之间的差异,不可能满足为每个段而不是整个测试数据计算AUC的需要。
作为一种解决方法,我定义了一个聚合函数,该函数使用
实施实例
示例如下。
预先计算正确答案标签(
请注意,在
(如果尝试一起使用,则会出现错误
UDF定义
1 2 3 4 5 6 7 8 | from sklearn.metrics import roc_auc_score from pyspark.sql.types import DoubleType from pyspark.sql.functions import pandas_udf, PandasUDFType @pandas_udf(DoubleType(), functionType=PandasUDFType.GROUPED_AGG) def auc_udf(true, pred): return roc_auc_score(true, pred) |
计算方法
1 | data.groupBy(key).agg(auc_udf('true', 'pred').alias('auc')) |
参考
- 结合使用Spark和Pandas UDF
- apache spark-在PySpark中的GroupedData上应用UDF(带有可运行的python示例)