问题标签 [liblinear]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
45 浏览

machine-learning - 针对 WEKA 中的每个实例提取 SVM 分配的值

在对每个实例使用 SVM 训练模型后,有什么方法可以提取值,以查看 SVM 分配给每个实例的值,以便将实例分类为正类或负类.. 我正在寻找一些解决方案来获得所有基于 SVM为 WEKA 工具中的每个实例分配值。我一直在 SVM 下使用 LibSVM 和 LibLinear 分类器。我需要这些值用于排名

0 投票
2 回答
229 浏览

solr - 在 LTR 中训练 SolrFeatures 时 LIBLINEAR 模型缺少权重

我正在使用 Solr 7.4.0,并使用 LIBLINEAR 根据此示例对 LTR 模型进行训练:https ://github.com/bloomberg/lucene-solr/blob/master-ltr/solr/contrib/ltr/示例/README.md

但是,我发现当我想使用类 SolrFeature 训练 solr 过滤器查询时,我会收到以下错误,指出模型缺少权重:

这就是我在功能 JSON 文件中定义它的方式:

造成这种情况的原因可能是什么,我们如何解决这个问题?

0 投票
0 回答
28 浏览

python - 如何在 python 或 C++ 中打开包含 SVM 模型的 Liblinear 模型 (.llm) 文件

我有一个llm格式文件,其中包含训练有素的 SVM 模型的权重和偏差。不幸的是,我在互联网上找不到任何关于如何打开这种文件格式的信息。这里有人对这种文件有任何经验吗?

0 投票
1 回答
87 浏览

machine-learning - 为什么一个只存在于给定类中的特征没有被强烈地预测到该类中,有什么原因吗?

总结与问题

我正在使用 liblinear 2.30 - 我注意到 prod 中存在类似问题,因此我尝试通过简单的减少训练来隔离它,其中包含 2 个类、每类 1 个训练文档、我的词汇表中具有相同权重的 5 个特征和 1 个包含的简单测试文档只有一个特征只存在于第 2 类中。

  • a) 特征值的用途是什么?

  • b) 我想了解为什么这个包含一个只存在于一个类中的单一特征的测试文档没有被强烈预测到该类中?

  • c)我不希望每个功能有不同的值。将每个特征值从 1 增加到其他值是否还有其他含义?我怎样才能确定这个数字?

  • d) 我的更改是否会对其他更复杂的培训产生不良影响?

我试过的

您将在下面找到与简单训练相关的数据(请关注特征 5):

这是模型的输出:

您将在下面找到我的模型的预测:

这里是我有点惊讶的地方,因为预测就像[0.42, 0.58]特征 5 只存在于第 2 类中一样。为什么?所以我只是尝试将测试文档的特征值从 1 增加到 10:

现在我得到了更好的预测[0.03, 0.97]。因此,我尝试重新编译我的训练,将所有功能设置为 10:

再次,对于第 2 类的预测仍然可以:0.87

0 投票
2 回答
360 浏览

python - 如何找到 SVM 的支持向量?

我正在使用 liblinear 库在我的数据上训练线性 SVM。我可以访问训练模型的每个类别的权重。但我需要弄清楚哪些训练实例充当了支持向量。

liblinear 库似乎没有将这些向量作为模型属性提供。而且我似乎无法弄清楚如何手动找到它们。如果我有训练数据并且我有定义超平面的权重,我将如何找到这些支持向量?

0 投票
0 回答
221 浏览

machine-learning - 如何在 sklearn LinearSVC 中设置正确的 max_iter 值以避免收敛警告?

我参考了关于 stackoverflow 的讨论。如本讨论中所述,我对数据进行了标准化并在 LinearSVC 中设置 dual = False。最初我将 max_iter 设置为 default(1000) 收到了 ConvergenceWarning 然后我将 max_iter 设置为 70000 仍然收到了警告。

如何得出正确的 max_iter 值。我的数据集大小为 6000,特征从 1000 到 6000 不等(使用 RBF 内核近似)。

0 投票
1 回答
113 浏览

python - LinearSVC 中“penalty”和“loss”的含义

反关闭序言:我已阅读问题“ Sklearn LinearSVC 库中的惩罚和损失参数之间的差异”,但我发现那里的答案不够具体。因此,我正在重新制定问题:

我熟悉 SVM 理论,并且正在 Python 中尝试使用 LinearSVC 类但是,文档参数的含义并不十分清楚。我认为这是指对违反边距的点的惩罚(通常在目标函数中用希腊字母xizeta表示),而是确定类边界的向量的范数,通常用w表示。任何人都可以确认或否认这一点吗?penaltylosslosspenalty

如果我的猜测是正确的,那么penalty = 'l1'将导致向量w的L1范数最小化,就像在 LASSO 回归中一样。这与 SVM 的最大边际概念有何关系?谁能指出我关于这个问题的出版物?在描述 LIBLINEAR 的原始论文中,我找不到任何关于L1惩罚的参考。

另外,如果我的猜测是正确的,为什么 LinearSVC 不支持penalty='l2'and的组合( SVCloss='hinge'中的标准组合) when ?尝试时,我得到了dual=False

ValueError:不支持的参数集