這可能是一個奇怪的請求,所以先解釋一下。我最近突然發生了高速崩潰,並丟失了一個數據文件,我正在使用這個文件用libSVM生成模型文件。我確實有從該數據文件生成的SVM模型和縮放文件,我想知道是否有方法從模型文件中的支持向量中生成數據文件,例如model_sv_to_instances(model, &instances)
,因爲獲取實例的過程非常非常昂貴。 (我知道它不會和原來的一樣,但仍然比沒有好)我使用了一個RBF內核的概率SVM。LIBSVM:從模型文件中獲取支持向量
1
A
回答
6
如果您在任何文本編輯器中打開一個給定的模型文件,你會發現這樣的事情:
svm_type c_svc
kernel_type sigmoid
gamma 0.5
coef0 0
nr_class 2
total_sv 4
rho 0
label 0 1
nr_sv 2 2
SV
1 1:0 2:0
1 1:1 2:1
-1 1:1 2:0
-1 1:0 2:1
如果你有趣的是,與SV線後。
1 1:0 2:0
1 1:1 2:1
-1 1:1 2:0
-1 1:0 2:1
這些數據點被選爲支持向量,所以你只需要解析文件。格式如下: [標籤] [索引1]:[值1] [索引2]:[值2] ... [索引n] [價值]
例如,從我的例子可以得出結論,我的訓練集是:
x y desired val
0 0 -1
0 1 1
1 0 1
1 1 -1
一些注意事項和警告。的SV和數據點的數量之間的比率取決於所使用的參數。在某些情況下比大,你將有很少的SV與您的數據進行比較。
另一件事要記住的是,這種減少是有可能改變的問題,如果你只是顆衛星的數據點再訓練,你可能會得到一個完整的不同的參數完全不同的模式。
祝你好運!
1
據我所知,SVM模型,特別是libSVM模型,只包含支持向量。這些向量表示類之間的邊界線;最有可能的是,它們不代表絕大多數數據點。所以,不幸的是,我認爲沒有辦法從模型中重新生成數據。
話雖如此,我能想到的一個深奧的情況下可能有一些價值的模型:有企業專門回收這種情況下的數據(例如,從墜毀HDS)。但是,恢復的數據有時存在差距;在某些情況下,該模型可能會被反向設計以填補某些缺失點。但是,這是非常理論的。
編輯:作爲其他的答案狀態下,通過支持向量表示的數據點的比例可能會有所不同,這取決於特定的問題和參數。但是,如上所述,在大多數情況下,您只能重建原始數據集的一小部分。
1
在RBF
的情況下,你是幸運的。根據libsvm FAQ可以提取從模型文件支撐載體:
在模型文件,參數和其它信息,如標籤後,每一行代表一個支持向量。
但請記住,這些只是支持向量,它們只是原始輸入數據的一小部分。
相關問題
- 1. 如何在LibSVM中使用交叉驗證時獲取支持向量數據(模型文件)?
- 2. 如何從libsvm模型文件中查找權重向量?
- 3. Libsvm模型文件:支持矢量標籤與類標籤不同
- 4. 使用libSVM支持向量機中的數據不平衡使用libSVM
- 5. libsvm模型文件格式
- 6. Libsvm將支持向量的數量設置爲零
- 7. 支持向量機模型不支持概率估計?
- 8. 如何從svm_model(在Python中)獲取支持向量和rho值?
- 9. 使用python的libsvm支持向量迴歸高維輸出
- 10. LibSVM將我所有的訓練向量變成支持向量,爲什麼?
- 11. 從支持文件夾中獲取所有文件名
- 12. 獲取支持的文檔類型
- 13. scikit-learn,linearsvc - 如何從訓練的SVM獲取支持向量?
- 14. Objective-C:獲取文件類型支持的文件擴展名
- 15. 在Matlab中使用支持向量機與支持向量機
- 16. libsvm svmpredict方法輸出模型文件
- 17. 在Matlab中使用LibSVM進行支持向量迴歸的參數
- 18. 從張量流模型獲取重量
- 19. 如何從Python中的SVM分類器提取支持向量?
- 20. LibSVM模型解釋
- 21. SAT支持獲取模型(類似於CVC4中的--dump-models)
- 22. 從文本文件中讀取向量
- 23. 訓練隱性支持向量機的模型
- 24. 支持向量機算法是我的模型有效的
- 25. 文件類型不支持
- 26. 如何獲取組織模式文件的RSS支持
- 27. 使用libSVM進行相似度預測的支持向量迴歸
- 28. 如何使用(或不使用)LibSVM執行支持向量迴歸
- 29. 從多行文本文件中獲取一個整數向量
- 30. 從模型列表中獲取模型
非常感謝您的回答。我估計SV會縮小,所以我將不得不「縮小」它以再次獲得真實點數? – vseguip 2013-03-11 19:54:43
@vseguip如果縮放事前......是的,你需要unscale他們。該庫不會自動縮放它們,因此它將取決於您如何構建模型。 – Pedrom 2013-03-11 20:22:29
此外,你應該注意一下這個小告誡的:http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f430(模型文件中的'label'線是真的,真的重要)。另一方面,你應該總是有這樣的備份。例如,Dropbox非常棒。 – 2013-03-14 16:13:30