擅长:python、mysql、java
<p>如果可以使用Spark v3.0+,最简单的方法是使用<code>F-measure by label</code>度量并指定标签(并将beta设置为1):</p>
<pre><code>evaluator = MulticlassClassificationEvaluator(metricName='fMeasureByLabel', metricLabel=1, beta=1.0)
</code></pre>
<p>但由于您仅限于v2.3,因此您可以</p>
<ol>
<li><p>重新实现交叉验证程序功能<code>pyspark.mllib.evaluation.MulticlassMetrics</code>通过label方法具有<code>fMeasure</code>。请参阅<a href="https://spark.apache.org/docs/2.3.0/mllib-evaluation-metrics.html#multiclass-classification" rel="nofollow noreferrer">example</a>以获取参考</p>
</li>
<li><p>将度量从<code>BinaryClassificationEvaluator</code>更改为<code>areaUnderPR</code>,这是一种“模型的优点”度量,应该可以为您完成这项工作(重新平衡标签)。这个<a href="https://neptune.ai/blog/f1-score-accuracy-roc-auc-pr-auc" rel="nofollow noreferrer">blogpost</a>比较F1和AUC-PR</p>
</li>
</ol>