LinearSVC和SVC(kernel=“线性”)有什么区别?

2024-01-09

I found sklearn.svm.LinearSVC http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html and sklearn.svm.SVC(kernel='linear') http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html他们看起来与我非常相似,但我在路透社上得到了截然不同的结果。

sklearn.svm.LinearSVC: 81.05% in   28.87s train /    9.71s test
sklearn.svm.SVC      : 33.55% in 6536.53s train / 2418.62s test

两者都有线性内核。 LinearSVC 的容差比 SVC 的容差高:

LinearSVC(C=1.0, tol=0.0001, max_iter=1000, penalty='l2', loss='squared_hinge', dual=True, multi_class='ovr', fit_intercept=True, intercept_scaling=1)
SVC      (C=1.0, tol=0.001,    max_iter=-1, shrinking=True, probability=False, cache_size=200, decision_function_shape=None)

否则这两个函数有何不同?即使我设置了kernel='linear, tol=0.0001, max_iter=1000 andDecision_function_shape='ovr'theSVCtakes much longer than线性SVC`。为什么?

I use sklearn 0.18两者都包裹在OneVsRestClassifier。我不确定这是否与multi_class='ovr' / decision_function_shape='ovr'.


Truly, LinearSVC and SVC(kernel='linear')产生不同的结果,i。 e.指标得分和决策边界,因为它们使用不同的方法。下面的玩具示例证明了这一点:

from sklearn.datasets import load_iris
from sklearn.svm import LinearSVC, SVC

X, y = load_iris(return_X_y=True)

clf_1 = LinearSVC().fit(X, y)  # possible to state loss='hinge'
clf_2 = SVC(kernel='linear').fit(X, y)

score_1 = clf_1.score(X, y)
score_2 = clf_2.score(X, y)

print('LinearSVC score %s' % score_1)
print('SVC score %s' % score_2)

--------------------------
>>>    0.96666666666666667
>>>    0.98666666666666669

这种差异的主要原则如下:

  • 默认缩放,LinearSVC最小化平方铰链损耗,同时SVC最大限度地减少常规铰链损失。可以手动定义“铰链”字符串loss参数输入LinearSVC.
  • LinearSVC使用一对多(也称为一对一 https://en.wikipedia.org/wiki/Multiclass_classification#One-vs.-rest)多类减少,同时SVC使用一对一 https://en.wikipedia.org/wiki/Multiclass_classification#One-vs.-one多类减少。还指出here http://scikit-learn.org/stable/modules/svm.html#multi-class-classification。另外,对于多类分类问题SVC fits N * (N - 1) / 2模型在哪里N是课程的数量。LinearSVC相比之下,简单地适合N楷模。如果分类问题是二元问题,则只有一个模型适合两种情况。multi_class and decision_function_shape参数没有任何共同点。第二个是聚合器,它将决策函数的结果转换为方便的形式(n_features, n_samples). multi_class是一种建立解决方案的算法方法。
  • 基本估计量为LinearSVC are 线性库,这实际上会惩罚拦截。SVC uses libsvm估计者则不然。线性库估计器针对线性(特殊)情况进行了优化,因此在大量数据上的收敛速度比libsvm。因此LinearSVC解决问题所需的时间更少。

实际上,LinearSVC正如评论部分所述,截距缩放后实际上并不是线性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinearSVC和SVC(kernel=“线性”)有什么区别? 的相关文章

随机推荐

  • 为什么OpenGL(IOS)中有.pvr文件

    我正在 IOS 中使用 OpenGL 制作应用程序 使用 PVR 纹理来制作 3D 效果 我无法理解 pvr 文件 所以请朋友们了解一下 pvr 文件以及它在 OpenGL 中的重要性以及我该如何制作它 PVR 文件是各种纹理格式的容器 例
  • 从 condaenvironment.yaml 安装时的依赖项的 pip 依赖项

    我正在尝试为项目的用户创建一个 condaenvironment yml 文件 其中一种依赖项不是由 conda 分发的 而是通过 pip github 提供 我假设基于这个例子 https github com conda conda b
  • 使用 avro-tools 连接 Avro 文件

    我正在尝试将 avro 文件合并为一个大文件 问题是concat命令不接受通配符 hadoop jar avro tools jar concat input part output bigfile avro I get 线程 main 中
  • MYSQL INSERT 中的德语变音

    我的 mysql 插入语句有问题 我有一个将 utf 8 字符正确提交到插入文件的表单 我已经检查了 POST 变量 现在 当我查看数据库中的 INSERT 时 没有变音符号 而是问号 该错误必须位于插入语句之前 如果我从数据库输出 手动输
  • Scikit-learn Predict_proba 给出错误答案

    这是来自的后续问题如何知道 Scikit learn 中的 Predict proba 返回数组中表示哪些类 https stackoverflow com questions 16937243 how to know what class
  • 使用 Google Analytics 进行 Javascript 覆盖/对话跟踪

    使用 javascript 在我的例子中准确地说是 jQuery 我需要启用一个对话框 以便在 Google Analytics 中将其作为唯一的页面视图进行跟踪 尽管它只是一个模态叠加层 出于上下文目的 我不希望用户离开页面并且对话框内容
  • UITextField 上的 UITapGestureRecognizer 在 IOS 7.1 中不再工作

    我有一个UITapGestureRecognizer附于一个UITextField以获得类似 下拉 的效果 当 的时候UITextField被点击 我提出一个UIPopover与内容 这在 7 1 之前就像一个魅力 现在UITextFiel
  • 如何知道电子邮件地址是否无效?

    我在 www email it 上的电子邮件地址已被禁用 因为我已经很长时间没有使用它了 现在 当我访问 FB 时 我收到以下消息 Our systems have detected that email protected cdn cgi
  • 在 IntelliJ IDEA 14 中运行 JUnit 测试而不选择配置类型

    在带有 Gradle 插件的 IntelliJ IDEA 14 中 我想运行 JUnit 测试 而不询问配置类型 当我第一次运行测试时出现问题 本次运行没有配置 我从未在 IDE 中使用 Gradle 运行测试 因此禁用使用 Gradle
  • 如何根据其他列值设置唯一约束

    我编写以下脚本用于客户域维护 在我的脚本中 我想在表中进行修改 如果状态为活动 我想为端口字段设置唯一约束 否则 如果状态为非活动 我不想设置唯一约束 如何根据其他列值设置此约束 请帮我 bin bash echo Enter the Da
  • C# ui Automation [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试在 C 中自动化 gui 这与浏览器自动化相同吗 我如何启动 ui 自动化 如果您使用 WPF Microsoft 有一个非
  • 如何使用 heroku CLI 连接到选定的应用程序

    我正在尝试在 Heroku 上部署我的 Java Web 应用程序 当我制作教程时 我使用创建了一个应用程序赫罗库创建命令 我们可以说它是 name app1 然后我在教程结束后删除了它并创建了一个新的来部署它 让它成为 new app 但
  • 最新的 CSS 父选择器 [重复]

    这个问题在这里已经有答案了 我能找到的关于此的最新信息是W3C 选择器 4 级编辑草稿 http dev w3 org csswg selectors 4 但是 据我所知 它不再提及父选择器 我知道有一个谷歌对此进行的调查 https do
  • 我的 TableView 中分隔线之前的空白

    我有一个关于 UITableView 的问题 我有一个 UITableViewController 并且创建了一个自定义单元格 当我可视化 tableView 时 我在分隔线之前看到了一点空白 正如您在这个屏幕截图中看到的那样 为什么 这是
  • F# 与 OCaml:堆栈溢出

    我最近发现了一个关于适合 Python 程序员的 F http combiol org fs FSUG FS4PPv2 pptx 看完之后 我决定自己实现一个 蚂蚁谜题 的解决方案 有一只蚂蚁可以在平面网格上走动 蚂蚁一次可以向左 向右 向
  • php 分叉问题

    我有以下测试 php 来执行 fork spawn 过程 其中测试还尝试在完成后杀死子进程 僵尸 我希望有一个更有效的流程 其中任何子进程都会尽快从进程表中删除 当前尝试填满了进程表 并导致内存分配问题 导致系统关闭 该应用程序在 Fedo
  • 读取和写入同一个netcat tcp连接

    假设我写入 netcat 连接 tail f file nc localhost 7050 do whatever nc localhost 7050 这里发生的是我们有两个套接字连接 用于执行一些请求 响应 但由于一些原因 这并不理想 我
  • 如何控制 Flexbox 中每列的项目数?

    在弹性容器中 我有 5 个具有列方向的项目 但在一定宽度下 我想每列显示 3 个项目 并强制其他项目换行有没有办法在没有固定高度的情况下做到这一点 我的代码 div class container div class item 1 item
  • 关键事件不适用于多个 ckeditors

    我有这个jsfiddle http jsfiddle net praveen jegan s47M3 41 当用户在屏幕上键入过滤词时 系统会向用户发出过滤词提醒ckeditor 在我的示例中 过滤后的单词are ants and word
  • LinearSVC和SVC(kernel=“线性”)有什么区别?

    I found sklearn svm LinearSVC http scikit learn org stable modules generated sklearn svm LinearSVC html and sklearn svm