当前位置: 首页 > 知识库问答 >
问题:

svm scikit学习中的类权重=无和自动有什么区别

叶文博
2023-03-14

在scikit learn svm分类器中,class_weight = None和class_weight = Auto的区别是什么?

从文件中可以看出:

将类 i 的参数 C 设置为 SVC 的class_weight [i]*C。如果未给出,则所有类都应具有一个权重。“自动”模式使用 y 的值自动调整与类频率成反比的权重。

class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma=0.0, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, random_state=None)

但使用自动模式的优点是什么。我无法理解它的实现。

共有2个答案

庞乐池
2023-03-14

这是一篇非常古老的文章,但是对于所有刚刚遇到这个问题的人,请注意,从0.17版开始,class_weight=='auto'已被弃用。改用class_weight=='平衡'。

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

这是通过以下方式实现的:

n_samples/(n_classes*np.bincount(y))

干杯!

轩辕炎彬
2023-03-14

这发生在class_weight.py文件中:

elif class_weight == 'auto':
    # Find the weight of each class as present in y.
    le = LabelEncoder()
    y_ind = le.fit_transform(y)
    if not all(np.in1d(classes, le.classes_)):
        raise ValueError("classes should have valid labels that are in y")

    # inversely proportional to the number of samples in the class
    recip_freq = 1. / bincount(y_ind)
    weight = recip_freq[le.transform(classes)] / np.mean(recip_freq)

这意味着您拥有的每个类(在classes中)的权重等于1除以该类在数据中出现的次数(

优点是您不再需要担心自己设置类权重:这应该已经适用于大多数应用程序。

如果你看上面的源代码,对于 None权重由 1 填充,因此每个类的权重相等。

 类似资料:
  • 本文向大家介绍监督学习和无监督学习的区别相关面试题,主要包含被问及监督学习和无监督学习的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 输入的数据有标签则为监督学习,输入数据无标签为非监督学习。

  • 元类型和? 做和返回一个? 我知道可以用来检查。你如何使用?

  • 问题内容: 和之间有什么区别?通常,您何时会选择一个? 我还阅读了有关getDefaultInstance(props,authenticator)的 Java文档,但仍然无法清楚/清楚地看出差异。 希望专家可以帮助我更好地理解这一点。 更新: 触发提出此问题的实际原因是:我们已经在基于Web的应用程序中的某些地方使用了method。有时,它会在快速搜索时抛出异常,建议改用method。因此,一个

  • 问题内容: 我是一个自学成才的python用户(有点。)。我读了很多书,以加深我对python的了解。今天 我遇到一条文字: 类和对象 所以我想知道python中的对象和类之间有什么区别。我教过所有类都是对象,但是在那种情况下,作者不会使用短语“类和对象”。我很困惑… 问题答案: 这是面向对象编程中两个紧密相关的术语。标准含义是 对象 是 类 的实例。

  • < code>$@和< code >“$ @”有什么区别吗? 我知道非特殊字符可能存在差异,但是带有输入参数的符号呢?

  • 和之间的主要区别是什么? 我的主要目标是使用可以“连接”到任何源(例如文件)的读取所有文本。 我应该选择哪一个,为什么?