gpt4 book ai didi

python - LinearSVC 中参数 class_weight 的最佳值是多少?

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:27 29 4
gpt4 key购买 nike

我有一个多标签数据(有些类有 2 个标签,有些类有 10 个标签),并且我的模型对于平衡值和无值过度拟合。为 class_weight 参数设置的最佳值是多少。

from sklearn.svm import LinearSVC
svm = LinearSVC(C=0.01,max_iter=100,dual=False,class_weight=None,verbose=1)

最佳答案

class_weight 参数实际上通过以下方式控制 C 参数:

class_weight : {dict, ‘balanced’}, optional

Set the parameter C of class i to class_weight[i]*C for SVC. If not given, all classes are supposed to have weight one. The “balanced” mode uses the values of y to automatically adjust weights inversely proportional to class frequencies in the input data as n_samples / (n_classes *
np.bincount(y))

尝试使用class_weight,同时保持C相同,例如C=0.1

<小时/>

编辑

这是为 171 个类创建 class_weight 的绝妙方法。

# store the weights for each class in a list
weights_per_class = [2,3,4,5,6]

#Let's assume that you have a `y` like this:
y = [121, 122, 123, 124, 125]

您需要:

# create the `class_weight` dictionary
class_weight = {val:weights_per_class[index] for index,val in enumerate (y)}

print(class_weight)
#{121: 2, 122: 3, 123: 4, 124: 5, 125: 6}

# Use it as argument
svm = LinearSVC(class_weight=class_weight)

关于python - LinearSVC 中参数 class_weight 的最佳值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58901648/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com