我最近一直在使用多类分类。我使用的指标是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.
错误。我想知道如何忽略这些褶皱?
谢谢!
答案 0 :(得分:0)
正如您所提到的,您有133个具有7个类的实例,并且要进行10层折叠,因此对于每一折,您将拥有大约13个实例,如果您的一个类代表的数据少于7.5%,则您可能与该类的0个实例折叠,因此出现错误。
检查您的班级比例,并增加训练数据或降低折叠次数,以避免出现此警告。
分层折叠可确保每个折叠中的类分布与整个集合中的类分布相似,因此,如果您有一个只代表7%实例的类,而每个折叠中只有13个实例,则13 * 7/100 <1,这意味着在10个分层折叠的每个折叠中没有足够的此类数据可表示。