“機器學習是讓計算機在不被明確編程的情況下運作的科學。” ——安德魯·吳(Coursera)
機器學習正在迅速成為數據科學家和開發人員預測的前瞻性技術。根據機器學習的實際數據規模與計算性能需求,云空間往往是機器學習應用的一大理想運行環境。在許多可用于神經網絡的工具中,Microsoft的Azure ML Studio提供了一個快速的學習曲線,它不需采取深層數據或編碼的方式來啟動運行。
Microsoft Azure機器學習是一種用于執行價值預測(回歸),異常檢測,聚類和分類的云服務。Azure機器學習是微軟Cortana分析套件產品的一部分,Azure ML Studio圖形化、模塊化的方法將讓你快速了解機器學習模型。
先決條件
▲Azure ML Studio采用模塊化,拖放式的機器學習方法
使用Azure ML Studio比使用Google TensorFlow或Microsoft Cognitive Toolkit更容易,這是由于它有一個拖曳界面,用于構建模型訓練和從模塊評估數據流,方便使用。Studio還提供了文檔幫助,但并不沒有完全免除開發人員的職責:你只需要將各模塊串在一起,使達到程序化的效果,有時可能也需要編寫R或Python代碼片段來對模塊進行補充。
一、創建Azure機器學習工作區
開始之后,需要創建一個Azure ML Studio工作區。你可以選擇從頭開始或者從約70個微軟提供的樣本開始,其覆蓋了大部分常見的模式。從頭開始創建主要有兩步:從進入atstudio.azureml.net開始,如下所示:
▲Azure ML Studio提供三個級別的工作空間供選擇
上面的第一個選項(Guest Workspace)甚至不需要Microsoft帳戶,但它無法讓你走在機器學習的道路上,不過可以免費試用8小時。第二個(Free Workspace)也是免費的,但是需要登錄,它允許實驗和設置具有有限存儲和單個節點的Web服務。第三個選項(標準工作區)需要進行Azure訂閱,它提供更多的功能和SLA,每月花費10美元。
創建Azure ML Studio工作區的第二步就是Azure訂閱,各種選項針對不同級別的Web服務,并且都包括工作空間。DEVTEST選項是免費的,但每月限制為1,000個交易; S1到S3選項范圍從每月約97美元100,000個交易到每月約9,700美元5000個交易。
▲ Azure提供了四種機器學習工作區
本教程創建了一個Azure ML工作區,如果你已經訂閱了Azure服務,你就可以擁有一個免費的DEVTEST標準工作區。
二、了解如何使用Azure ML
使用Azure ML Studio的大綱:
1、在ML Studio中創建一個新項目。
2、導入數據(固定的或從自己的數據源導入),并將數據集拖動到實驗畫布。
3、查看數據并排除缺失大量數據的列(在數據集模塊中選擇列)。
4、排除剩余列中缺少大量數據的行(清除缺少數據模塊)。
5、再次查看數據,并選擇要用于預測的列(在另一個數據集模塊中選擇列,因為迭代時,你可能會希望在這一點上有更改)。
6、將數據分割成訓練集和測試集(分割數據模塊)。
7、選擇并應用學習算法。如果你預測一些與數字相關的,如價格或年齡,選擇一個回歸模型。如果要預測類別(如性別或物種),請選擇分類模型。你可能在迭代時會改變模型的選擇。
8、在訓練集上訓練模型(主要使用數據訓練模型模塊)。
9、將模型分配到測試集(Score Model對少數數據進行分割)。
10、測試結果的質量(評估模型模塊)。
11、改進模型。可以添加分支到訓練實驗或創建新的實驗,實驗的復制和粘貼很方便。
12、將最佳模型轉換為預測實驗。
13、將預測實驗部署為Web服務。
三、嘗試演示
▲Azure ML線性回歸流示例
▲通過將模型轉換為預測實驗并將其作為Web服務發布來完成模型
Microsoft為Azure ML Studio提供了一套很好的介紹性教程。第一個(見上圖)涵蓋了回歸問題(價格)的步驟1到10,并提到步驟11,第二張圖包含步驟12和13。
四、嘗試圖庫中的模型
▲Cortana智能畫廊提供了一系列實驗,教程,定制模塊和解決方案
既然已經熟悉了如何使用Azure ML,是時候探索一些模型了。如果導航到Cortana智能畫廊,可以找到大量的實驗,教程,自定義模塊和解決方案。本教程選擇關于2016年總統競選財務數據挖掘實驗。(使用鏈接:
▲使用來自聯邦選舉委員會財務數據集的Azure ML機器學習實驗示例
該實驗使用來自聯邦選舉委員會的活動財務數據集,具體來說是個人捐款數據,候選者列表,委員會列表和候選者委員會鏈接文件。右鍵點擊“在Studio中打開”按鈕,就可以在你的ML Studio實例新標簽頁中啟動此實驗。
▲數據挖掘模型—2016年總統競選財務數據
這個實驗第一次在Azure云中運行了大約20分鐘,第二次跑了約25分鐘。在上面的圖像中顯示,我大約4分鐘時進入。繼續運行, 之后可以切換到另一個選項卡或程序,但不要關閉Studio選項卡,因為它正在運行。運行完成后,保存。在下一次打開之前,完全有可能發生更新,需要重新運行模型,但仍然要記得保存。
正如你在Azure ML團隊的文章中看到的,這個實驗的步驟:
1.填充數據
2.用SQL查詢和連接數據模塊,篩選非克林頓和非特朗普的部分
3.使用R腳本組合候選和委員會名稱
4.清除缺少數據的行
5.使用連接數據模塊通過名字預測貢獻者性別
6.使用R腳本將職業分為28組
7.過濾50個州和華盛頓特區
8.篩選城市,保留至少有50個貢獻者的城市
9.按每個候選人的金額計算捐款的密度圖(見下圖)
10.將捐款金額歸入組
11.調整不必要的列
12.清除缺少的數據
13.分離克林頓和特朗普,下調克林頓的貢獻,使數據集的大小相同
14.重組克林頓和特朗普的貢獻
15.將所有列轉換為類
關于這個模型有趣的問題是如何開發。我沒有問微軟這是如何演變的,但是在整個工作過程中,我發現首先要找到所需的數據集,然后清理,添加,選擇變量,并根據需要轉換數據。
五、添加分類模型
經過20分鐘的處理得到了一個干凈的分類數據集,這對應了使用Azure ML上述步驟的1至5。現在我們需要選擇至少一個分類模型來訓練,根據數據集中的其他因素來預測克林頓和特朗普的捐贈者,執行拆分數據,訓練數據,對數據進行評分并評估模型。
因為相對來說,我們使用了較少的參數來處理二元分類問題,所以我將使用邏輯回歸,一個經過驗證的算法,可以快速地進行訓練并使用默認參數。當然不排除使用其他模型:但找到最好模型的唯一方法就是試遍所有模型。
▲ Azure ML Studio中的邏輯回歸模型
現在需要拆分數據。對于第一次拆分,我將使用80%的數據進行訓練,20%用于得分。
▲在Azure ML Studio中分割用于訓練的數據
接下來,需要訓練,評分和評估模型。需要選擇一列(克林頓或特朗普)作為預測。
▲選擇關聯列以在Azure ML中訓練,評分和評估活動財務模型
用于評估模型的新模塊流程如下所示:
▲用于在Azure ML中評估模型的模塊流
運行新模塊是選擇它們并按運行選項。
最后,可以看一下評估結果:
▲Azure ML中示例活動財務模型評估結果
這個簡單的模型準確度為85.1%,精度為84.9%,AUC(接受者操作曲線下的面積)為93.1%。
六、Microsoft認知工具包
Azure機器學習Studio很好地幫助開發者使用圖形用戶界面設計用于機器學習的訓練和預測。如果你需要超越基本的機器學習和簡單的神經網絡,進而到深度學習或深層神經網絡學習,Microsoft Cognitive Toolkitis是Microsoft提供的(盡管仍處于beta測試形式)一款與Google TensorFlow競爭的免費開源產品。與ML Studio不同,它只允許使用R或Python編寫模塊,Cognitive Toolkit需要編碼才能有效地使用,無論是在Python還是在Microsoft的BrainScript神經網絡配置語言。
很多機器學習的內容來源于統計學科,只不過叫法不同罷了。與傳統的統計學科不同,在機器學習中機器不對數據做推斷,它得到的結論也不會被最初的諸多假設所限定。然而,為了實現更精確的預測,機器學習得到的模型往往相當復雜以至于難以理解。使用ML Studio或許可以讓你不再頭疼機器學習。