Orange:一個免費的交互式數(shù)據(jù)挖掘與機器學習平臺
Orange 是一款開源的數(shù)據(jù)分析與可視化工具,專注于數(shù)據(jù)挖掘和機器學習領域。它提供了直觀的圖形化界面,用戶無需編程和數(shù)學知識即可完成數(shù)據(jù)科學工作流程,同時也支持通過 Python 腳本實現(xiàn)高級功能。
功能簡介
Orange 圖形化編程對于初學者非常友好,他們可以專注于數(shù)據(jù)分析本身,而不是耗時的編程工作。Orange 提供了大量開箱即用的組件,包括數(shù)據(jù)查詢、預處理、可視化、建模以及評估等,通過組合這些組件就可以創(chuàng)建一個復雜的數(shù)據(jù)分析流程。
Orange 組件之間可以實時通信,上游組件的數(shù)據(jù)變化可以實時傳遞給下游組件,實現(xiàn)交互式數(shù)據(jù)探索分析。例如以下流程中,在數(shù)據(jù)表格中選擇不同的數(shù)據(jù)可以同步改變散點圖的效果。
Orange 的流程設計接口具有智能化提示,例如用戶設置了一個計算距離的組件(Distances),他會猜測你接下來可能需要使用一個層次聚類組件(Hierarchical Clustering)。而且組件的默認值設置通常不需要修改就可以進行簡單的數(shù)據(jù)分析,甚至不需要用戶了解相關的專業(yè)知識。
Orange 支持將模型的可視化結果、統(tǒng)計結果以及其他信息保存為報告,方便管理和訪問。
Orange 支持擴展插件,用于執(zhí)行自然語言處理和文本挖掘、網(wǎng)絡分析、關聯(lián)規(guī)則挖掘或解決機器學習中的公平性問題。還有一些插件用于處理特殊數(shù)據(jù),例如時間序列、生存數(shù)據(jù)集、光譜或基因表達。
為了方便初學者,Orange 還內(nèi)置了大量的示例流程:
下載安裝
輸入以下網(wǎng)址進入官方下載頁面:
https://orangedatamining.com/download/
選擇相應的平臺安裝文件下載并安裝,完成后運行 Orange:
歡迎界面提供了新建、打開工作流(workflow)的快捷方式以及各種教程、示例和使用文檔,關閉該界面就進入了 Orange 主界面。
主界面左側是常用的組件,包括:
- 數(shù)據(jù)(Data):包含數(shù)據(jù)輸入、數(shù)據(jù)保存、數(shù)據(jù)過濾、抽樣、插補、特征操作以及特征選擇等組件,同時還支持嵌入 Python 腳本。
- 可視化(Visualize):包含通用可視化(箱形圖、直方圖、散點圖)和多變量可視化(馬賽克圖、篩分曲線圖)組件。
- 模型(Model):包含一組用于分類和回歸的有監(jiān)督機器學習算法組件。
- 評估(Evaluate):交叉驗證、抽樣程序、可靠性評估以及預測方法評估。
- 無監(jiān)督算法(Unsupervised):用于聚類(k-means、層次聚類)和數(shù)據(jù)降維(多維尺度變換、主成分分析、相關分析)的無監(jiān)督學習算法。
更多組件可以通過“Options | Add-ons”菜單進行添加,安裝插件后有可能需要重啟 Orange 才能在左側列表出現(xiàn)。
示例教程
對于初學者,建議從示例流程開始,點擊“Help | Example Workflows”。
我們選擇“Classification Tree”,這是一個用于分類的決策樹示例。
我們可以通過示例中的說明了解每個組件的作用和工作流程,其中的組件包括:
- 打開數(shù)據(jù)文件的 File 組件,用于打開包含鳶尾花(Iris)數(shù)據(jù)集的文件,這是一個經(jīng)典的數(shù)據(jù)挖掘數(shù)據(jù)集;
- 用于分類的決策樹組件(Classification Tree),這是一個決策樹算法;
- 分類樹可視化組件(Tree Viewer),用于顯示分類樹的結果;
- 散點圖組件(Scatter Plot),顯示選定數(shù)據(jù)的散點圖;
- 箱形圖組件(Box Plot),顯示選定數(shù)據(jù)的箱型圖。
- 組件之間的連線代表了數(shù)據(jù)流的方向。
通過這些組件的簡單組合,構建了一個交互式分類樹瀏覽器。我們可以點擊這些組件,對其進行設置和調(diào)整,例如文件組件:
文件組件可以加載數(shù)據(jù)文件或者在線 URL 資源,并且對每個數(shù)據(jù)屬性的類型、角色等進行設置。分類樹組件可以對決策算法進行設置:
分類樹可視化組件可以提供直觀的分類結果:
散點圖組件可以根據(jù)分類樹可視化組件中選擇的節(jié)點數(shù)據(jù)顯示相應的散點圖,實現(xiàn)同步刷新:
官方網(wǎng)站提供了更多的示例流程:
https://orangedatamining.com/examples/
最后,對于高級用戶,可以通過開發(fā)自定義的組件實現(xiàn)擴展的功能,或者在 Python 中利用 Orange 代碼庫編寫數(shù)據(jù)挖掘腳本程序。相關內(nèi)容可以參考 Orange 官方文檔: