Orange是一個基於組件的機器學習庫,可通過可視化編程或Python 指令碼進行資料採礦,對初學者和專家都適用,並且可通過擴充運用到生物資訊學和文本挖掘方面。Orange是由斯洛文尼亞的盧布爾雅那大學(University
of Ljubljana)電腦與資訊科學學院的人工智慧實驗室開發生產的,是通過GNU 通用公用許可認證下的開源軟體。官網網站:http://orange.biolab.si/screenshots/
Orange號稱的特性:1、支援可視化編程
2、支援不同的可視化映像
3、支援互動式資料分析
4、大工具箱:超過100個組件並在不斷添加,覆蓋標準的資料分析任務
5、支援Python介面
6、支援Windows、Linux、Mac OS X等
在網上和安裝包內沒有找到任何可視化編程資料,因此只能通過Python介面進行學習。使用Orange進行資料採礦前必須將資料轉換為相應的格式:
1、尾碼名為.tab的文字檔
2、第一行為屬性名稱,每個屬性名稱之間用tab鍵隔開
3、第二行為屬性特性:離散或連續,分別用discrete或continuous表示,也可簡寫為d或c
4、第三行為可選附加資訊,如用ignore(或i)表示忽略該列
5、後面是資料,每列之間用tab隔開
Orange中的離群點挖掘
orngOutlier是orange中提供的專門用於離群點挖掘的一個類
演算法:首先計算每個樣本到其他樣本的平均距離,然後計算所有平均距離的z-score,z-score越高表明該樣本到其他樣本的距離比平均距離更遠
可以設定使用的距離(如歐氏距離或歐幾裡得距離)和鄰居的數目。預設使用曼哈頓距離,鄰居數目預設為0.
例子:
import orange, orngOutlierdata = orange.ExampleTable("car")outlierDet = orngOutlier.OutlierDetection()outlierDet.setExamples(data, orange.ExamplesDistanceConstructor_Euclidean(data))zValues = outlierDet.zValues()sorted = zValues[:]sorted.sort()for i, el in enumerate(zValues):if el >= sorted[-10]: print i,"\t:",data[i],"Z-score: %5.3f" % el該例子使用car.tab這個檔案作為資料輸入,使用歐幾裡得距離計算樣本距離,輸出z-score最高的10個樣本和其z-score.但是計算的結果貌似不太好。。。