正經機器學習之小巧的流程可視化機器學習工具
首先感謝沉默哥,為我們提供了一個流程可視化的學習工具的文章。
好了,我們開始吧!!
作為Python的忠實擁躉,我非常鍾愛Anaconda,這個集成環境真是太好用了!前段時間我注意到了一個有點逗的橘子圖標(紅框)
看起來應該是個可視化工具,所以我打算試用一下,點擊Install安裝完成後,然後點Launch。
進入後是有個嚮導的,點擊New新建一個,就可以一大塊空白:
左側是一些工具,我們稍後就會用到,右邊的空白其實是畫布,一會兒我們的流程都會布置在上面。
左側的工具欄由5部分組成,分別是Data(數據)、Visualize(可視化)、Model(模型)、
Evaluate(評估)和Unsupervised(無監督學習)。我們先從Data中選取File,並拖到右側,
以便讀取本地文件中的源數據。
演示數據,大家可以在這下載
鏈接:https://pan.baidu.com/s/1jN6glCp5rHS-XE5JaSSt3A 密碼:hqpy
當然,現在什麼都還沒有發生,我們雙擊File,會彈出一個界面,讓你選擇要讀入的文件。你
還可以看到你讀取的數據有哪幾列,在下面的表格中你可以設置它們的名字,數據的類型以及
它們的作用。比如下圖中,我們讀入了train_sample.csv,一共有10萬行數據,8個特徵,前
五個特徵都是numeric(數值型),中間有兩個時間特徵,我們選擇了跳過(skip),最後
bought是個categorical(類別型),它的值是0或者1(二分類)。
接下來我們再拖入一些輔助組件,比如Data Table可以讓你查看錶格,Data Info可以查看源數據的總體信息,還有Data Sampler用於採樣。
每個組件都可能會有左右弧線(虛線),左側代表輸入,右側代表輸出,我們將File右側的弧線拖到其他三個的左側,將它們連接起來。
這意味著File中的數據會輸出,並作為另外三個組件的輸入。沒有輸入的話你是看不到任何東
西的,連接完成之後我們可以雙擊Data Table,這時就會出現表格的內容。
任何組件都可以雙擊,雙擊之後你可以在其中進行一系列操作。
接著我們雙擊Data Sampler,用它的採樣功能來分割數據,將數據分割為訓練集和驗證集。
我們從中分割出了80%的數據,並且勾選了Stratify Sample,這主要是基於源數據是嚴重偏
斜的數據(0比1多很多很多),因此我們要按0-1的比例採樣。設置完點擊Sample Data即可
完成。
隨後我們在左側的工具欄中選擇Evaluate(評估),將其中的Test & Score拖進來,這個主要
用來看模型在數據集上的各類評分。另外我們再拖一個ROC Analysis進來,可以查看ROC曲
線。我們把它們連接起來。
這個時候我們發現Evaluate的兩個組件中間是虛線,這代表沒有有效的數據傳輸。畢竟我們還
沒有制定機器學慣用的模型,而且我們的數據輸入也有點問題。雙擊Data Sampler與Test &
Score之間的連線,我們就能設置數據的傳輸情況。
這裡我們也是通過拖動,將採樣出來的那80%(Data Sample)連接到Data上,成為訓練集
數據。再把剩下的20%(Remaining Data)連接到Test Data上,成為測試集數據。
我們再從左側工具欄的Model中拖出幾個模型(RF、NBC、NN),並把它們的輸出也連接到
Test & Score的輸入端,它們會自己連接到Learner上。
我們也可以雙擊模型組件來設置模型的參數:
連接完成後Test & Score會自動訓練和評估,雙擊它我們會看到相應的結果:
可以看到這裡給出了一些常用的評估指標的得分。這裡顯示的是在驗證集上的得分,你可以點
左側看看模型再訓練集或者各種CV下的得分情況。
然後,我們再雙擊ROC Analysis,可以看到三種模型的ROC曲線:
我們也可以設置為只看1條
可以說非常直觀了。此外,我們還可以在數據處理的初期就加入一些可視化組件來查看數據的
分布等等,就像這樣:
當然啦,你還可以通過左下角的一些工具加入一些注釋,像這樣:
這就是關於Orange的簡單介紹啦,這款工具界面很友好,功能也很豐富,有興趣的可以自己
探索一下。不過這款工具不太適合超大量的數據,也應付不了非結構化數據,但作為機器學習
的演示工具來說卻非常合適,而且它操作簡單,界面直觀,也非常有利於入門學習。
文章的最後,再次感謝沉默哥的文章,在這列下他的公眾號:DreamSanctuary,他正在翻譯
一大部頭的書,MLAPP,有興趣的可以去看看。
推薦閱讀:
※機器學習基石筆記15-16:小結和雜談
※AlphaGo之父談人工智慧:超越人類認知的極限
※機器學習技法筆記7:融合模型(Aggregation Models)
※譜聚類的consistency
※為什麼要對特徵進行縮放(歸一化)