- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我找到了 sklearn.svm.LinearSVC
和 sklearn.svm.SVC(kernel='linear')
他们看起来和我很相似,但我在路透社上得到的结果却大不相同。
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(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 and
Decision_function_shape='ovr'
the
SVC
takes much longer than
线性SVC`。为什么?
sklearn 0.18
并且两者都包裹在
OneVsRestClassifier
中.我不确定这是否与
multi_class='ovr'
相同/
decision_function_shape='ovr'
.
最佳答案
真的,LinearSVC
和 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
使用 One-vs-All(也称为 One-vs-Rest)多类归约,而 SVC
使用 One-vs-One多类减少。还注明 here .此外,对于多类分类问题 SVC
适合 N * (N - 1) / 2
型号在哪里N
是类(class)的数量。 LinearSVC
相比之下,简单地适合 N
模型。如果分类问题是二元的,那么两种场景都只适合一个模型。 multi_class
和 decision_function_shape
参数没有共同点。第二个是聚合器,它将决策函数的结果转换为 (n_features, n_samples)
的方便形状。 . multi_class
是一种建立解决方案的算法方法。 LinearSVC
的基础估计量是 liblinear ,这实际上会惩罚拦截。 SVC
用途 libsvm 估计量没有。 liblinear 估计器针对线性(特殊)情况进行了优化,因此在大量数据上的收敛速度比 快libsvm .这就是为什么LinearSVC
解决问题所需的时间更少。 LinearSVC
正如评论部分所述,截距缩放后实际上并不是线性的。
关于scikit-learn - LinearSVC 和 SVC(内核 ="linear")有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45384185/
我有两组模式,其中有一个补丁,两个模式之间的平均值显着不同(由 t 检验给出 [值为 t-vals])。此处,第一组的平均值为 1±0.1,第二组的平均值为 2±0.1,平均差异约为 1。 b> 我正
我正在抓取大约 200,000 个网站,寻找小型企业网站上发布的某些类型的媒体。我有一个腌制的 LinearSVC,我已经训练它来预测网页上找到的链接包含我正在寻找的类型的媒体的概率,并且它的性能相当
我不明白为什么这个神经轴管道不起作用。 我只想要缩放数据并应用 LinearSVC。 我做错了什么? 这就是我想要做的: import numpy as np from sklearn.ensembl
我使用 LinearSVC 作为决策树分类器的预处理步骤。我运行 LinearSVC 然后我做变换(X)。我注意到特征数量从大约 35 个减少到 9 个。我想知道实际选择了哪些特征。 我知道默认情况下
我正在使用 scikit-learn 的 LinearSVC 分类器进行文本挖掘。我将 y 值作为标签 0/1,将 X 值作为文本文档的 TfidfVectorizer。 我使用如下所示的管道 pi
我正在使用 scikit-learn 的 LinearSVC 分类器进行文本挖掘。我将 y 值作为标签 0/1,将 X 值作为文本文档的 TfidfVectorizer。 我使用如下所示的管道 pi
我对 SVM 理论不是很熟悉,我在 python 中使用这个 LinearSVC 类: http://scikit-learn.org/stable/modules/generated/sklearn
我有几个图像样本,我想预测这些图像是否包含文本/字符。 当我尝试在这一步运行我的代码时出现错误: model = cPickle.load(f) is_text = model.predict(ima
当我尝试使用我的数据(来自 this example )运行以下代码时 X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transfor
我正在使用 LinerSVC 技术对文本进行分类,但我想获得每个预测都附带的预测置信度。 这是我现在拥有的: train_set = self.read_training_files()
我有一个多标签数据(有些类有 2 个标签,有些类有 10 个标签),并且我的模型对于平衡值和无值过度拟合。为 class_weight 参数设置的最佳值是多少。 from sklearn.svm im
您如何训练 Scikit 的 LinearSVC在太大或不切实际而无法放入内存的数据集上?我试图用它来对文档进行分类,并且我有几千条标记的示例记录,但是当我尝试将所有这些文本加载到内存中并训练 Lin
我正在尝试使用LinearSVC 分类器 更新:添加了导入 import nltk from nltk.tokenize import word_tokenize from nltk.classify
我是 PySpark 的新手。我在 Windows 10 上安装了 Spark 2.3.0 。我想使用线性 SVM 分类器进行交叉验证训练,但用于具有 3 个类的数据集。所以我正在尝试应用 Spark
根据我的研究,我发现了三个相互矛盾的结果: SVC(kernel="linear") is better LinearSVC is better Doesn't matter 有人可以解释何时使用 L
此代码用于检测字符和绘制矩形,然后预测字符,但每次都会给我以下错误! for rect in rects: # Draw the rectangles cv2.rectangle(im, (rect[
我们如何从分类器对象中获取类别标签(例如,['business','lifestyle','sports','tech'])?分类器方法 predict 能够生成标签,所以我猜它应该存储在分类器对象内
SVM 分类器 ( SVC ) 的一种选择是 probability默认情况下是假的。文档没有说明它的作用。看着 libsvm源代码,它似乎做了某种交叉验证。 LinearSVC 不存在此选项也不是
我正在使用 LinearSVC 将文本数据分为 3 类。输入数据是每个单词的 tfidf 分数。我有兴趣看到单词对分类的“贡献”。第一个问题是我可以使用 coef_ 吗?该文件指出: coef_ :
当数据有偏移(不以零为中心)时,LinearSVC()和 SVC(kernel='linear')正在给出截然不同的结果。 (编辑:问题可能在于它不处理非规范化数据。) import matplotl
我是一名优秀的程序员,十分优秀!