- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个不平衡的多类数据集,我想使用 fit_generator
中的 class_weight
参数根据每个类的图像数量为类赋予权重。我使用 ImageDataGenerator.flow_from_directory
从目录加载数据集。
是否可以直接从 ImageDataGenerator
对象推断出 class_weight
参数?
最佳答案
刚刚找到了实现这一目标的方法。
from collections import Counter
train_datagen = ImageDataGenerator()
train_generator = train_datagen.flow_from_directory(...)
counter = Counter(train_generator.classes)
max_val = float(max(counter.values()))
class_weights = {class_id : max_val/num_images for class_id, num_images in counter.items()}
model.fit_generator(...,
class_weight=class_weights)
train_generator.classes
是每个图像的类列表。Counter(train_generator.classes)
创建每个类中图像数量的计数器。
请注意,这些权重可能不利于收敛,但您可以将其用作基于出现次数的其他类型权重的基础。
这个答案的灵感来自:https://github.com/fchollet/keras/issues/1875#issuecomment-273752868
关于keras - 是否可以从 Keras 中的 flow_from_directory 自动推断出 class_weight ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586475/
documentation中的措辞看起来 None 和“balanced_subsample”是等价的,但我想确保情况确实如此。 最佳答案 文档清楚地表明它们不等效: class_weight=Non
ValueError: class_weight must contain all classes in the data. The classes {1, 2, 3} exist in the da
我正在使用两个不同的分类器对相同的不平衡数据执行一些(二进制)文本分类。我想比较两个分类器的结果。 使用 sklearns 逻辑回归时,我可以选择设置 class_weight = 'balanced
我目前正在研究一个随机森林分类模型,其中包含 24,000 个样本,其中 20,000 个样本属于 class 0其中 4,000 个属于 class 1 。我做了一个train_test_split
我有一个不平衡的数据集,其中 200000 个描述属于 0 类,大约 10000 个描述属于 1 类。但是,在我的训练数据集中,我有相同数量的“正”和“负”样本,每个样本大约 8000 个。所以现在我
在使用 class_weight 解决我的多标签问题时遇到问题。也就是说,每个标签不是0就是1,但是每个输入样本有很多标签。 代码(带有用于 MWE 目的的随机数据): import tensorfl
我正在将 ScikitLearn 的随机森林应用于极度不平衡的数据集(比率为 1:10 000)。我可以使用 class_weigth='balanced' 参数。我看过它相当于欠采样。 但是,这种方
我想在 Keras 训练期间更改我的 class_weight。 我使用了 fit_generator 和 Callback 方法,如下所示。 model.fit_generator(
我的数据具有极度的类别不平衡。约99.99%的样本为阴性;积极因素(大致)平均分配给其他三个类别。我认为我正在训练的模型基本上一直在预测多数类(class)。出于这个原因,我正在尝试对类(class)
尝试让 class_weight 开始。我知道其余代码有效,只是 class_weight 给我错误: parameters_to_tune = ['min_samples_split':[2
我目前正在尝试改变随机森林分类器的阈值以绘制 ROC 曲线。我的印象是,对随机森林执行此操作的唯一方法是使用 class_weight 参数。我已经能够成功地做到这一点,提高和降低精确度、召回率、真阳
Keras 使用 class_weight 参数来处理不平衡的数据集。 这是我们可以在 doc 中找到的内容: Optional dictionary mapping class indices (i
尝试对大约 2500*~4000 个大型特征进行分类,并在训练数据中附上置信文档。 我尝试使用置信度值作为分类器的 class_weight 参数,但无法理解 class_weight 所需的字典格式
我有一个多标签数据(有些类有 2 个标签,有些类有 10 个标签),并且我的模型对于平衡值和无值过度拟合。为 class_weight 参数设置的最佳值是多少。 from sklearn.svm im
我对 sklearn 如何应用我们提供的类权重感兴趣。 documentation没有明确说明类权重的应用位置和方式。阅读源代码也没有帮助(似乎 sklearn.svm.liblinear 用于优化,
我的数据集已经有加权示例。在这个二元分类中,与第二类相比,我也有更多的第一类。 我可以同时使用 sample_weight 并在 model.fit() 函数中使用 class_weight 进一步重
谁能告诉我当数据集不平衡时在 Keras 中应用 class_weight 的最简单方法是什么? 我的目标中只有两个类。 谢谢。 最佳答案 fit() 函数的class_weight 参数是一个将类别
我想在 keras model.fit 中使用 class_weight 参数来处理不平衡的训练数据。通过查看一些文档,我了解到我们可以像这样传递一个字典: class_weight = {0 : 1
此问题已在其他论坛中提出,我尝试了他们的变体但无济于事:class_weight for imbalanced data - Keras how to set class-weights for im
在 TensorFlow 中,当在 fit_generator 中使用 class_weights 时,会导致训练过程不断消耗越来越多的 CPU RAM,直到耗尽。每个纪元后内存使用量都会逐步增加。请
我是一名优秀的程序员,十分优秀!