簡介 KEEL是knowledge extraction based on evolutionary learning的簡稱,它是一款開源的JAVA軟體工具,遵循
GNU 的GPLv3許可,受西班牙項目(TIN-2005-08386-C05-(01, 02, 03, 04 and 05))的支持。
KEEL能夠用於大量不同的知識發現任務,它提供了一個簡單的基於數據流的GUI,可以根據不同的數據集和計算智慧型算法(特別是進化算法)設計實驗、評估算法。它包含了各種各樣經典的知識提取算法、預處理技術(如訓練集選擇、特徵選擇、離散化、缺失值處理等)、計算智慧型的學習算法、混合模型、對比實驗的統計方法等等,它允許對各種算法進行完整的分析、比較。
主要特徵 突出了進化算法在模型預測、預處理(特徵選擇、訓練集選擇)、後期處理(模糊規則的進化調優)中的作用
實現了許多專業文獻中的數據挖掘算法,如離散化、噪聲濾波等
提供了一個統計庫來分析算法結果,庫中包含了一組統計測試,用於分析結果的正態性、異態性,比較含參和非參算法的結果
許多算法是基於JAVA類庫進行開發的
提供了一個用戶友好的界面,並且此界面是面向算法分析的
該工具的目標是設計包含多種數據集和多種算法的實驗,並且實驗會產生獨立的腳本,能夠在不同的機器上運行。
同時提供線下實驗和線下實驗,線上實驗的設計目的是幫助學習者學習算法的操作。
包含知識提取算法庫,其中整合了多種進化學習算法,也包含經典的學習算法
目標人群 KEEL的用戶定位是研究者和學生
KEEL作為研究工具 對於研究者而言,KEEL常用於實驗的自動化和結果的統計分析。通常,一個實驗的設計包括了進化算法、統計和人工智慧等相關技術,KEEL對實驗的進程給予了特別的關注,從而能夠讓研究者對實驗的流程進行評估,由於當前的機器學習需要進行大量的計算,所以該研究工具並不是提供算法的實時視圖,而是生成一個腳本,然後交由計算機集群執行批處理。該工具允許研究者對大量數據進行預處理、實驗、分析,並且將更多注意力放在結果的分析和總結上。
KEEL作為教育工具 學生的需求與研究者不同,一般而言,學生的目標不再是對各種算法進行統計意義上的比較,所以沒必要進行進行多次重複性的實驗。如果要在類中使用此工具,那么該工具的執行時間必須很短,而且要提供此算法執行的實時視圖,學生需要的是學習如何調整算法中的參數。從這個意義上講,教育工具是研究工具是簡化版本,只有一些較相關的算法可用,並且算法的執行是實時的,用戶對算法的運行有一個直觀的反饋。
功能模組 數據管理
該模組由各種數據管理工具組成,執行各種數據管理任務,包括創建新數據集、導入、導出數據集、數據編輯、可視化、數據轉換、數據抽取等
實驗設計
該模組的任務是基於數據集和用戶需要進行實驗的設計,它提供了多種選擇:學習類型(分類、回歸、無監督學習等)、驗證類型(交叉驗證等)、.......
針對不平衡數據集的實驗設計
該模型的任務與上一個模組(實驗設計)相同,只不過該模型針對的是不平衡數據集,鑒於不平衡數據集的特殊性,該模型中的算法主要是針對不平衡數據集
多實例學習算法的實驗
在該模組,研究者可以對多實例數據集進行分類,在這種分類情況下,研究者得到的結果不再是一組標記為正或負的實例,而是一組袋子,每個袋子中有多個實例,它們被標記為正或負。通常我們假設:如果一個袋子中的所有實例都是負的,那么這個袋子就被標記為負的,如果一個袋子中至少有一個實例是正的,則此袋子就被標記為正的。
半監督學習算法的實驗
半監督學習主要用於一種數據集,這種數據集中的實例包含兩種,一種是無類標,即沒有類標籤,第二種是有類標。在該模組,這種數據集被用於執行演繹和歸納分類。演繹分類的目標是預測數據集中無類標實例的類別,將有類標和無類標的實例結合在一起訓練一個分類器;而歸納分類的目標是將所有實例視為訓練集,訓練後對新的數據進行分類。
統計測試
KEEL為研究者提供了一套完整的成對、多重比較的統計分析技術,該模組預設了一些含參和非參的統計分析過程,這有助於研究者的分析任務。
教育實驗
與套用於研究者的實驗模組的結構相似,此模型設計了一個可以逐步調試的實驗流程,從而為學習者提供一個指導,通過使用具有教育目的的平台來展示特定模型或算法的執行過程。
算法 KEEL中包含的算法主要有以下幾類:
數據預處理算法 主要包括數據
離散化 、訓練集選擇、
特徵選擇 、缺失值處理、數據轉換、噪聲過濾等算法
分類算法 包括基於規則學習的分類算法、基於實例學習的算法、神經網路、
支持向量機 、統計分類算法等
回歸算法 基於規則的回歸、基於神經網路的回歸、基於統計的回歸、基於支持向量機的回歸、邏輯回歸等
不平衡分類 針對不平衡數據集的分類算法,包括基於採樣的算法、代價敏感分類、基於算法改進的不平衡分類
半監督學習 多實例學習 聚類算法 關聯規則 統計測試