问题标签 [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.
r - 使用 Liblinear 的留一法交叉验证
我一直在 R 中使用 liblinear 来解决作者归属问题,并尝试了 LOO 交叉验证,仅使用 liblinear 中的 cross 参数(类似:)LiblineaR(data=mydata, labels=factor(mydata[,1]), cost=co, cross=nrow(mydata)
并实际迭代所有行,以便我可以看到哪些文本有被错误分类或其他:
似乎我应该从这两种方法中得到相同的结果,但是对于我的一些数据集,第一个版本比第二个版本给了我更好的结果——例如,96% 的准确率与 50% 的准确率(所有作品都归类为同一作者)。有没有人处理过这种事情?
svm - 如何手动为 SVM 中的某些特征分配权重?
我使用 LibLinear 运行了一个多类 SVM,但该模型对每个类的某些典型特征给予了很高的权重。
例如:对于 1 类,对于 1 类为 0 且非零的特定变量在我的超平面方程中具有非常重要的权重。
我想在计算特定类的超平面时忽略这些特定功能。一种方法是为这些特征分配零权重。如何更改此代码?
例如:
等等...
c++ - 如何在 C++ 中处理 Liblinear 的输出?
我正在尝试使用liblinear
c++ 工作,但库调用train(problem*, parameter*)
正在将输出发送到终端。有时它说优化完成,有时它似乎正在输出内部状态(为什么?)。这个输出是什么意思,是否可以抑制它或将其转移到某个地方的日志中?我boost::log
在程序的其余部分中使用,我想控制程序显示的内容。我在 Ubuntu 12.10 上运行它。
示例输出:
或者
对于train
通话,我的参数是:
我的输入数据有大约 10,000 ~ 100,000 个数据点,每个数据点有 62 个特征。
此外,输出模型有 124 个权重。我假设正标签表示的集合有 62 个权重,负标签表示的集合有 62 个权重?我怎么知道它们的顺序?model->label
是NULL
给我的solver_type
。
r - 在相同数据上具有相同参数的不同 svm 库的不同精度
我正在使用libsvm并且做了一个非常简单的实验,训练 10k 个向量并仅使用 22 个进行测试。我正在使用带参数 cost 的线性内核C=1
。我的问题是多类。所以 Libsvm 将使用一对一的方法对我的数据进行分类。Libsvm 使用SMO来寻找分离的超平面。
我的一个朋友做了同样的实验,但使用的 SVM 分类器来自Statistics Toolbox。他还使用了R 的e1071包。同样,使用的内核是线性内核,参数成本C
等于 1,并且在 MATLAB 中使用一对一的方法对数据进行分类(一对一方法是由我的朋友编写的)和 e1071 R 包。默认情况下,R 中的 MATLAB Statistics Toolbox 和 e1071 都使用 SMO 方法来查找分离超平面。
我还尝试了最新的LIBLINEAR库。同样,使用了相同的配置。
以下是使用的代码:
libsvm 3.18(命令行)
liblinear 1.94(命令行)
R
有一些精度差异:
- Libsvm 正确分类了 22 个测试特征向量中的 11 个
- Liblinear 正确分类了 22 个测试特征向量中的 18 个
- R 正确分类了 22 个测试特征向量中的 17 个
- 我朋友的一对一 MATLAB 实现正确分类了 22 个特征向量中的 19 个。
那么为什么预测不同呢?我的意思是,如果所有 SVM 都使用线性内核,具有相同的成本参数并使用相同的多类分类方法,那么结果不应该相同吗?
matlab - SVR输出的决策级融合
我有两组预测相同输出的特征。但不是一次训练所有东西,我想分别训练它们并融合决策。在 SVM 分类中,我们可以获取可用于训练另一个 SVM 的类的概率值。但是在 SVR 中,我们怎么能做到这一点呢?
有任何想法吗?
谢谢 :)
java - 使用 liblinear (java) 进行概率预测,直接在代码中使用分类器
考虑以下 liblinear ( http://liblinear.bwaldvogel.de/ ) 的用法:
这是输出:
我需要概率预测,而不是整数(硬)预测。命令行有一个选项 -b ,但我在代码中找不到直接使用该函数的任何内容。此外,查看代码内部(https://github.com/bwaldvogel/liblinear-java/blob/master/src/main/java/de/bwaldvogel/liblinear/Predict.java);通过在代码中直接使用,显然没有概率预测的选项。那是对的吗?
更新:我最终使用了 liblinear 代码形式https://github.com/bwaldvogel/liblinear-java。在文件 Predict.java 我改变了
至
并使用
但仍然得到整数类。任何想法?
machine-learning - 在基于转换的依赖解析中使用 LIBLINEAR
我将使用 LIBLINEAR 为基于转换的依赖项解析做一些工作。但我很困惑如何使用它。如下:
我为基于转换的依赖解析的训练和测试过程设置了 3 个功能模板:
LIBLINEAR 中定义的特征是:
一些例子如:
但我想在某个阶段定义我的特征,比如(一句话“我爱你”):
这是否意味着我必须使用 LIBLINEAR 定义特征,例如:-------FORMAT 1(词汇索引:0-I、1-love、2-you)
但是我已经想到了其他人的一些陈述,我似乎用二进制定义了特征,所以我必须定义一个词向量,例如:('I','love','you'),例如,当'you'出现时,向量将是 (0, 0, 1)
所以LIBLINEAR中的特征可能是:--------FORMAT 2
FORMAT 1 和 2 之间哪个正确?
有什么我弄错了吗?
matlab - mac osx 10.9.3 上的 Liblinear
环境:Matlab R2014a (8.3), Macosx mavericks 10.9.3, Apple LLVM 5.1 (clang-503.0.40)
我正在从http://www.csie.ntu.edu.tw/~cjlin/liblinear/编译 liblinear 包。我修复了matlab安装目录中的mexopts.h指向正确的SDKROOT、C和CXX。当我从导向器 liblinear-1.94/matlab/ 下的 matlab 内部运行 make 时,libsvmread 和 libsvmwrite 成功生成了 mexmaci64 库。但是,它没有为训练和预测生成。因此,我评论了 make 中的 try catch 期望,以了解错误。现在我收到以下错误。
知道为什么我会收到此错误吗?
weka - 与 Weka 的 LIBLINEAR
我正在使用 Weka 3.6.11,我想使用它的 LibLinear 包装器。
我收到“不在 CLASSPATH 中的 Liblinear 类”的消息
我在 Windows 上。我创建系统变量的 CLASSPATH,并将路径写入 liblinear.jar 文件,该文件恰好是
C:\Program Files (x86)\Weka-3-6\LibLINEAR.jar
所以现在,我不确定问题是什么。有任何想法吗?
matlab - 在 MATLAB R2014a 上安装 LibLinear
我正在尝试在 Linux 上为 MATLABR2014a 安装 LibLinear。在 MATLAB 中编译时,read.mexa64 和 write.mexa64 创建得很好,它在 train.mexa64 上失败了。我曾经得到的错误是:
所以我整理了 linear.cpp 中返回值的处理,它仍然失败,只提供了最后一行将我引导到 README。我也尝试安装 gcc-4.7、g++-4.7 和 cpp-4.7,但 make 过程仍然在没有任何信息的情况下终止。正如它所暗示的,我将 matlab 目录设置为:
我已经包括
在 CFLAGS 中,以防万一它被忽略的值引起了大惊小怪。我设法从主目录中的命令行编译它,它工作正常,但有一个漂亮的 MATLAB 界面会很棒:) 如果有人设法让它运行起来,我将非常感谢任何帮助!