F1宏得分计算期间忽略折叠

时间:2019-04-14 18:28:33

标签: python machine-learning scikit-learn

我最近一直在使用多类分类。我使用的指标是micro F1,称为:

f1_score(predictions,real_labels,average="micro")

对于某些折叠(我正在做10f分层交叉验证),我得到了:

/home/user/.local/lib/python3.6/site- 
packages/sklearn/metrics/classification.py:1145: 
UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.

错误。我想知道如何忽略这些褶皱?

谢谢!

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您有133个具有7个类的实例,并且要进行10层折叠,因此对于每一折,您将拥有大约13个实例,如果您的一个类代表的数据少于7.5%,则您可能与该类的0个实例折叠,因此出现错误。

检查您的班级比例,并增加训练数据或降低折叠次数,以避免出现此警告。

分层折叠可确保每个折叠中的类分布与整个集合中的类分布相似,因此,如果您有一个只代表7%实例的类,而每个折叠中只有13个实例,则13 * 7/100 <1,这意味着在10个分层折叠的每个折叠中没有足够的此类数据可表示。