【发布时间】:2020-06-04 00:42:07
【问题描述】:
附件model 展示了如何在不平衡分类问题initial_bias = np.log([pos/neg]) 的情况下添加偏差。如果你有不平衡数据的多类分类,有没有办法增加偏差,比如 5 个类有分布(0.4,0.3,0.2.0.08 and 0.02)
2) 在这种情况下如何计算和使用类权重?
更新 1
I found a way to apply weights, still not sure how to use bias
#####adding weights 20 Feb
weight_for_0 = ( 1/ 370)*(370+ 977+ 795)/3
weight_for_1 = ( 1/ 977)*(370+ 977+ 795)/3
weight_for_2 = (1 / 795)*(370+ 977+ 795)/3
#array([0, 1, 2]), array([370, 977, 795])
class_weights_dict = {0: weight_for_0, 1: weight_for_1, 2:weight_for_2}
class_weights_dict
Dcnn.fit(train_dataset,
epochs=NB_EPOCHS,
callbacks=[MyCustomCallback()],verbose=2,validation_data=test_dataset, class_weight=class_weights_dict)
【问题讨论】:
-
这是
'softmax'+'categorical_crossentropy'(只有一个类是正确的),还是这是"sigmoid"+"binary_crossentropy"(很多类都可以是正确的)? -
只有一个类是正确的。我正在使用
sparse_categorical_accuracy和softmax -
这将是一个非常复杂的方程要解...不知道网上有没有什么...
-
当您之前提到
"sigmoid" + "binary_crossentropy" (many classes can be correct)时,它是一个二元分类对吧?如果有两个以上的类,你怎么能使用sigmoid? -
在下面的答案中。适合度不会改变。
标签: tensorflow keras classification