这可能是一个奇怪的请求,所以先解释一下.我最近遇到了突然的高清崩溃,丢失了一个用于生成带有libSVM的模型文件的数据文件.我确实有我从这个数据文件生成的SVM模型和缩放文件,我想知道是否有一种方法可以从模型文件中的支持向量生成数据文件,就像是model_sv_to_instances(model, &instances)因为获取实例的过程非常昂贵.(我知道它与原版不一样但仍然比没有更好)我正在使用带RBF内核的概率SVM.
我正在使用libsvm进行多元回归.我有一些缺少值的数据.例如,我有10个10个节点的实例,每个节点10个链接与它相关联.我需要使用10个实例训练这10个节点.但在某些情况下,某些链接值缺失.那么libsvm如何对待它们呢?还是我需要填补那些缺失值?
我正在用python编写一个程序来对电影评论做一个unigram(以及最终的bigram等)分析.目标是创建要提供给libsvm的特征向量.我的特征向量中有50,000个奇怪的独特单词(这对我来说似乎相当大,但我相对肯定我是对的).
我正在使用python字典实现作为哈希表来跟踪我遇到它们时的新单词,但是我注意到在处理了前1000个奇数文档后出现了巨大的减速.如果我使用了几个较小的散列表/字典,那么我会有更好的效率(考虑到自然语言的分布),还是会相同/更差?
更多信息:
数据被分成1500个左右的文件,每个500个字.每个文档中有100到300个唯一单词(相对于所有以前的文档).
我目前的代码:
#processes each individual file, tok == filename, v == predefined class
def processtok(tok, v):
#n is the number of unique words so far,
#reference is the mapping reference in case I want to add new data later
#hash is the hashtable
#statlist is the massive feature vector I'm trying to build
global n
global reference
global hash
global statlist
cin=open(tok, 'r')
statlist=[0]*43990
statlist[0] = v
lines = cin.readlines()
for l in lines:
line = l.split(" …Run Code Online (Sandbox Code Playgroud) 我正在研究一篇需要应用支持向量回归(SVR)的论文,最好是使用高斯核.经过一番搜索,我发现LibSVM可以帮助完成这项任务.
但是,我遇到了一些困难:我不确定如何做到这一点,使用这个或任何其他类似的库,如何根据经验确定SVR参数(内核带宽,成本和epsilon(松弛变量)),如以及如何绘制训练和测试错误.
欢迎所有建议.
我有一个恼人的事实问题.我正在使用libsvm和matlab,我能够预测使用:
predicted_label = svmpredict(Ylabel, Xlabel, model);
Run Code Online (Sandbox Code Playgroud)
但每次我做出预测时都会出现这样的情况:
Accuracy = X% (y/n) (classification)
Run Code Online (Sandbox Code Playgroud)
我发现这很烦人,因为我重复这个过程很多次也因为它在屏幕上显示而变慢.
我想我想要的是避免svmpredict冗长.
谁能帮我这个?提前致谢.
-Jessica
我的问题是
我想建立一个一类SVM分类器,以从测试文件中识别名词/方面。培训文件包含名词列表。该测试包含单词列表。
这是我所做的:
我正在使用Weka GUI,并且已经训练了一个类SVM(libSVM)以获取模型。
现在,模型将测试文件中的这些单词分类,分类器在生成的模型中将这些单词识别为名词。其他分类为离群值。(因此,它就像查找一样工作。如果在经过训练的模型中将其标识为名词,则为“是”,否则为“否”。)
那么如何建立适当的分类器呢?(我的意思是输入的格式及其应包含的信息是什么?)
注意:
编辑 我的测试文件将包含名词短语。因此,我的分类器的工作是从测试文件中的候选项中获取名词词。
我正在尝试将LibSVM与Weka API一起使用.
我的系统:Win7 Weka 3.7.12 LibSVM 1.0.6(通过软件包管理器安装)
我的代码:
import java.io.File;
import java.util.Random;
import javax.swing.JOptionPane;
import weka.classifiers.Evaluation;
import weka.classifiers.functions.LibSVM;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class LibSVMClassifier {
// Method to build a SVM classifier with a given data file
public static double buildModel(File dataSet){
// new instance of LibSVM
LibSVM clsSVM = new LibSVM();
try {
Instances data = DataSource.read(dataSet.getAbsolutePath());
// Sets the label feature
data.setClassIndex(data.numAttributes()-1);
String opts = "-S 0 -K 0 -D 3 -G 0.0 -R 0.0 -N 0.5 …Run Code Online (Sandbox Code Playgroud) 如何使用libsvm实现一对一多类分类?请帮我解决这个问题.
我还从这个答案中读到了一对一的方法...... 使用Matlab进行交叉验证的多类SVM的完整示例[关闭]
我的测试数据:功能和最后一列是标签
D = [
1 1 1 1 1
1 1 1 9 1
1 1 1 1 1
11 11 11 11 2
11 11 11 11 2
11 11 11 11 2
30 30 30 30 3
30 30 30 30 3
30 30 30 30 3
60 60 60 60 4
60 60 60 60 4
60 60 60 60 4
];
Run Code Online (Sandbox Code Playgroud)
我的测试数据是
inputTest = [
1 1 1 1
11 11 11 10 …Run Code Online (Sandbox Code Playgroud) 我使用libsvm java包进行句子分类任务.我有3节课.每个句子都表示为大小为435的向量.vector_file的格式如下:
1 0 0.12 0 0.5 0.24 0.32 0 0 0 ... 0.43 0 第一个数字表示类标签,剩余部分是矢量.
以下是我如何制作svm_problem:
public void makeSvmProb(ArrayList<Float> inputVector,float label,int p){
// p is 0 to 77 (total training sentences)
int idx=0,count=0;
svm_prob.y[p]=label;
for(int i=0;i<inputVector.size();i++){
if(inputVector.get(i)!=0) {
count++; // To get the count of non-zero values
}
}
svm_node[] x = new svm_node[count];
for(int i=0;i<inputVector.size();i++){
if(inputVector.get(i)!=0){
x[idx] = new svm_node();
x[idx].index = i;
x[idx].value = inputVector.get(i);
idx++;
}
}
svm_prob.x[p]=x;
}
Run Code Online (Sandbox Code Playgroud)
参数设置:
param.svm_type …Run Code Online (Sandbox Code Playgroud)