网站改版seo,无锡有多少家公司,杭州营销型网站设计,互联网app网站建设方案模板下载如果您正在使用 scikit-learn 1.3.X 版本#xff0c;在使用 f1_score() 或 classification_report() 函数时#xff0c;如果参数设置为 zero_division1.0 或 zero_divisionnp.nan#xff0c;那么函数的输出结果可能会出错。错误的范围可能高达 100%#xff0c;具体取决于数…
如果您正在使用 scikit-learn 1.3.X 版本在使用 f1_score() 或 classification_report() 函数时如果参数设置为 zero_division1.0 或 zero_divisionnp.nan那么函数的输出结果可能会出错。错误的范围可能高达 100%具体取决于数据集中的类别数量。这个错误可能会显著地影响到多分类问题中常用的宏平均 F1 指标从而可能导致对分类器性能的误判甚至可能带来一些安全风险。
scikit-learn releases 页面https://github.com/scikit-learn/scikit-learn/releases F1 分数的定义查准率是指预测结果中每个类别预测正确的比例。召回率则是指样本标签中每个类别被正确预测的比例。两者的分母不同查准率的分母是预测结果的样本数召回率的分母是样本标签的样本数。F1 分数是查准率和召回率的调和平均值。
问题原因在计算 F1 分数时如果某个类别的查准率和召回率都为 0那么根据 zero_division 参数的设定F1 分数可能被赋值为 1.0 或 np.nan而非正确的 0.0。
检测这个错误的方法如果想要确定某个 F1 分数计算是否受到这个错误的影响可以先使用 classification_report() 函数进行 F1 分数的计算。如果存在任何一个类别的查准率和召回率都为 0而对应的 F1 分数为 1.0 或 nan那么这个 F1 分数的计算就是错误的。
解决办法
请升级到已发布的 scikit-learn 1.4.0 或更高版本该版本已修复了这个 bug。另一种解决方案是降级到 scikit-learn 1.2.2 版本或者设置 zero_division 参数为 0.0。但要注意了解这一参数变化将如何影响查准率吧、召回率和 F1 分数 ️ 参考链接
Connor Boyle’s Website - Scikit-Learn’s F-1 calculator is broken网友指出 sklearn 版本 bug你的实验结果很可能是错的。。。