2012-01-31 108 views
2

我已經應用了LIBSVM的SVM。現在我想要實現遺傳算法進行特徵選擇。試圖谷歌的一些信息SVM後的遺傳算法

1)看到這個網站:http://www.scribd.com/doc/31235552/Genetic-Algorithm-Implementation-Using-Matlab

2)在MATLAB GA例子:http://www.mathworks.com/help/toolbox/gads/f6691.html

對他們

Q1幾個問題)[X FVAL] =ガ(@fitnessfun,nvars,選項)。這是做加索爾的功能。健身運動應該怎樣?在大多數ga中,它是一個多項式函數。但是在SVM的情況下,健身運動應該是什麼? Q2)在SVM之後,遺傳算法是否有任何具體的例子?

想聽聽一些反饋。

在此先感謝。

回答

1

如果你想做功能選擇,我認爲你有它倒退。您應該在之前運行GA以獲取特徵選擇對SVM的培訓。您的健身功能可能會成爲新訓練的SVM在選定功能上的表現,這取決於您想要完成的功能。不能說你對這個話題非常清楚。

要回答你的第二個評論:

有很多地方,我不知道你正在使用此ga函數,但如果你看看文檔,他們必須某處告訴你這個參數應該fitnessfun期待。我猜想你想評估適應度的個體是這個功能的主要參數。如果您演變了一系列功能,則此人將成爲布爾變量數組,其中true表示選定的功能,false表示未選擇的功能。這個適應度函數需要返回這個特徵選擇的好壞指標,即它必須返回一個更高的數字才能獲得更好的選擇,而更低的數字則會得到最差的選擇。對於這個預測精度可能是一個很好的數值(nb。正確預測除以樣本總數)。

我打算假設您知道如何計算給定數據集及其標籤的SVM模型的預測精度。由於您有預先訓練好的SVM,因此僅將它用於選定的功能可能有點棘手,並且它強烈依賴於SVM的實施。如果它是線性SVM,則可以將數據矩陣中的未選特徵的值設置爲零。但是,如果它是RBF SVM,將無法工作。您需要了解您所依賴的SVM實施的內部機制。我建議做一個簡單的例子,在這裏你可以訓練一個支持3D數據的SVM,然後使其適應2D數據。它強烈依賴於SVM模型的實現。

+0

我明白你的意思:分類前的特徵選擇......但我正在做我的fyp ..我的教授想先運行分類器。現在他想通過功能選擇來改進結果... – lakesh 2012-01-31 19:14:21

+0

好吧,我想我明白了......運行一個訓練有素的SVM,並選擇功能在運行時供給它,而無需重新訓練?然後,如果僅使用所選功能,則您的健身功能應該成爲預測SVM準確性的函數。 – levesque 2012-01-31 19:21:24

+0

我不明白最後一句話。你能解釋一下細節嗎?我該怎麼做? – lakesh 2012-02-01 03:34:38