
LAGEP: 開放原始碼的基因歸劃法工具
|
|
feedback
|
|
簡介
LAGEP是Layered Architecture GEnetic Programming的縮寫.
它的主要目的是要利用基因規劃法來產生函數. 這個專案的目的是為了提供給基因規劃法的研究人員、使用者或是有興趣的人員一個
簡單好用的工具. 全部的原始碼都採用GPL授權使用.
LAGEP除了可以利用特定的多層式架構[Lin 2007]之外, 也可以使用一般傳統的單族群基因規劃法.
基本上, 使用LAGEP或是修改LAGEP的人並不需要具備基因規劃法的背景知識, 具備的話當然是更好. 目前LAGEP是以分類器的模式運作.
為了提升效率與改良輸出解的品質, 我們儘量應用所知的各種最佳化方法, 舉例來說,
為了得到比較好的亂數, 在亂數產生器的部份, 我們不使用內建的工具, 而是使用Angor所寫的RNG [Agnor 2007].
任何對LAGEP的問題或建議都歡迎和我連絡, 而任何對程式碼的寫法或架構的改良法也都相當歡迎!
Please sent me feedback after you use LAGEP, thank you!
|
References
- [Lin 2007] J. Y. Lin, H. R. Ke, B. C. Chien, W. P. Yang, Designing a Classifier by a Layered Multi-Population Genetic Programming Approach, Pattern Recognition, Vol. 40, Issue 8, Aug. 2007, pp. 2211-2225
- [Lin 2008] J. Y. Lin, H. R. Ke, B. C. Chien, W. P. Yang, Classifier Design with Feature Selection and Feature Extraction Using Layered Genetic Programming, Expert Systems with Applications, supposed to be appear at 35(2), 2008.
- [Agnor 2007] Agnor Fog, Pseudo random number generator - uniform and non-uniform distributions, http://www.agner.org/random/
If you use LAGEP in your work, please cite [Lin 2007].
|
Characteristics of LAGEP
一般功能
- LAGEP是在Microsoft© VisualStudio 2005©環境下以C/C++撰寫完成
- LAGEP並沒有使用任何Windows API, 目的是為了讓使用者方便轉移程式到Unix-like平台.
- 為了方便使用者對資料檔案的處理, 資料可以以行或以列來儲存.
- 資料的格式與SVMlight一樣, 使用者可以方便做比較.
- LAGEP的圖形化使用者介面還在開發狀態, 目前只能用命令列模式執行.
- 只要改變fitness function就可以改變輸出的結果, 因此要改良LAGEP到不同的問題上, 是相當容易的.
- 支援線性函數的產生.
- 支援validation. 使用 "score" 來評估個體的好壞 [Lin 2007]
- 支援OpenMP. 在SMP平台上可以對效率有很大的增進.
- 支援XML輸出.
- 支援XML格式之組態檔(從0.82版開始, 透過TinyXML來完成此功能)
- 利用Doxygen來實作文件化(尚未完全文件化....)
- Use system.ini as the default configuration file.
基因規劃法相關功能
- 個體是以二元樹來表示.
- 支援四個基本運算 +, -, *, / (protected division)與三個額外函數運算元 sin, cos, natural log (v8.1)及exp (v8.11)
- 可以用調整權重的方式來控制運算元, 也可以將權重調整為零來將不想使用的運算元關閉.
- 族群初始化的grow method可以調整比例.
- 使用Determinant tournament selection method.
- 使用AMRT來動態調整mutation rate [Lin 2007]
- 支援實數形態的常數值.
- 支援使用者自行定義的常數, 例如 PI. (定義在constants.ini裡)
|
Todo List
- Function simplification process
- Graph representation
|
下載最新版本:
Date: 2008/07/21
Version: 0.83
Download 0.83 with installer(ZIP format, including source codes)
Download 0.83 with installer(RAR format, including source codes)
Date: 2008/06/15
Version:0.82 release 0615
Download 0.82 with installer(ZIP format, including source codes)
Date: 2008/04/18
0.812 release 0418
Download 0.812 with installer(ZIP format, including source codes)
|
使用說明
執行檔為 lgp.exe. 範例為
lgp.exe -t training_file -p test_file -v validation_file -c target_class -i configuration.ini -j job_name [optional]
必要的參數有:
-t : 訓練資料檔的檔名
-c : 目標類別的名稱
選擇性的參數:
-p : 測試資料檔的檔名
-v : 驗證資料檔的檔名
-i : 組態檔的檔名
-j : 使用者自定的工作名稱, 方便分辨每一次執行的結果
-silence : 不顯示任何結果
-linear : 僅產生線性函數
-xml : 輸出檔案為 XML 格式. (-silence模式下無作用)
-showTest : 在每一代都顯示最佳個體對測試資料的準確率
-fn : 選擇一個fitness function. fn 1 -> accuracy(預設值), fn 2 -> precision, fn 3 -> recall, fn 4 -> F-measure, fn 5 -> Specificity.
例:
lgp -t TRAIN.txt -p TEST.txt -c 1 -j 20070101
lgp -t TRAIN.txt -p TEST.txt -c 1 -i multilayer.ini -j 20070101 -fn 1
|
資料格式
資料必須以如下格式儲存:
:....
#
target 可以是字串, 但是一個整數會是比較好的選擇.
feature 欄位必須由1開始.
以 # 開頭的資料將被視為註解.
使用者可以例用"FileChecker"裡的執行檔去檢查資料的格式是否有誤.
例:
1 1:12.3 2:32.5 3:44.3 #this is an example instance having three features belonging to class 1
2 1:12.5 2:33.3 3:64.3
1 1:22.3 2:12.3 3:82.6
|
LAGEP 組態
LAGEP的組態檔可以設定很多功能, 請參照 exampleINI.ini.
|
Disclaimer
This software is free only for non-commercial use. It must not be distributed without prior permission of the author. The author is not responsible for implications from the use of this software.
CopyRight
Copyright (c) 2005 Jung-Yi Lin All rights reserved. Redistribution and use in
source and binary forms, with or without modification, are permitted provided
that the following conditions are met: 1. Redistributions of source code must
retain the above copyright notice, this list of conditions and the following
disclaimer. 2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution. 3. Neither
name of copyright holders nor the names of its contributors may be used to
endorse or promote products derived from this software without specific prior
written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
您是第位訪客 since 2008/02/01
|