Azure机器学习入门(三)创建Azure机器学习实验
在此動手實踐中,我們將在Azure機器學習Studio中一步步地開發(fā)預測分析模型,首先我們從UCI機器學習庫的鏈接下載普查收入數(shù)據(jù)集的樣本并開始動手實踐: http://archive.ics.uci.edu/ml/datasets/Census+Income. 然后我們在此數(shù)據(jù)集上開發(fā)和訓練預測分析模型,并將預測分析模型作為web服務發(fā)布至云端給其他程序調(diào)用,整個過程大致包含下幾個步驟:
從公共資源庫下載數(shù)據(jù)集
?
在開發(fā)預測分析收入水平模型時,我們使用UCI 機器學習資源庫的成人收入普查數(shù)據(jù)。數(shù)據(jù)集地下載鏈接為http://archive.ics.uci.edu/ml/datasets/Census+Income。該網(wǎng)站包含下載數(shù)據(jù)文件的鏈接,您可將adult.data數(shù)據(jù)文件下載到本地計算機。此數(shù)據(jù)集的格式以逗號分隔。另外,該網(wǎng)站還包含了在此數(shù)據(jù)集中的 15 個屬性信息,在上傳數(shù)據(jù)至實驗之前我們使用此信息作為創(chuàng)建數(shù)據(jù)表的列標題。
現(xiàn)在,用 Microsoft Excel 或任何其他電子表格工具中打開 adult.data 文件,并為其添加網(wǎng)站中屬性列表的詳細信息,這些信息如下列出。注意,其中的一部分屬性值為連續(xù)的,因為它們以數(shù)值的形式表現(xiàn),另一部分則為其選項值列表。
- 年齡(age),連續(xù)值
- 工作種類(Workclass)個人(Private), 無限責任公司(Self-emp-not-inc), 有限責任公司(Self-emp-inc), 聯(lián)邦政府(Federal-gov), 地方政府( Local-gov), 州政府(State-gov), 無薪人員(Without-pay), 無工作經(jīng)驗人員(Never-worked)離散值
- Fnlwgt連續(xù)值
- 教育情況(Education) Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool )離散值
- 受教育年限(Education-num),連續(xù)值
- 婚姻狀況(Marital-status) 已婚(Married-civ-spouse),離婚(Divorced),未婚(Never-married),離異(Separated),喪偶(Widowed),已婚配偶缺席(Married-spouse-absent)、 再婚(Married-AF-spouse),離散值
- 職業(yè)情況(Occupation)技術支持(Tech-support),維修工藝(Craft-repair),服務行業(yè)(Other-service)、 銷售(Sales)、 執(zhí)行管理(Exec-managerial)、 專業(yè)教授(Prof-specialty),清潔工(Handlers-cleaners),機床操控人員(Machine-op-inspct)、 行政文員(Adm-clerical)、 養(yǎng)殖漁業(yè)(Farming-fishing)、 運輸行業(yè)(Transport-moving),私人房屋服務(Priv-house-serv),保衛(wèi)工作(Protective-serv), 武裝部隊(Armed-Forces)職業(yè)情況,離散值
- 親屬情況(Relationship)妻子(Wife),子女(Own-child),丈夫(Husband),外來人員(Not-in-family)、 其他親戚(Other-relative)、 未婚(Unmarried),離散值
- 種族膚色(Race)白人(White),亞洲太平洋島民(Asian-Pac-Islander),阿米爾-印度-愛斯基摩人(Amer-Indian-Eskimo)、 其他(Other),黑人(Black)離散值
- 性別(Sex )男性(Female),女性( Male),離散值
- 資本盈利(Capital-gain )連續(xù)值
- 資本損失(Capital-loss) ,連續(xù)值
- 每周工作時間(Hours-per-week ),連續(xù)值
- 國籍(Native-country )美國(United-States)、 柬埔寨(Cambodia)、 英國(England),波多黎各(Puerto-Rico),加拿大(Canada),德國(Germany),美國周邊地區(qū)(關島-美屬維爾京群島等)(Outlying-US(Guam-USVI-etc)),印度(India)、 日本(Japan)、 希臘(Greece)、 美國南部(South)、 中國(China)、 古巴(Cuba)、 伊朗(Iran)、 洪都拉斯(Honduras),菲律賓(Philippines)、 意大利(Italy)、 波蘭(Poland)、 牙買加(Jamaica)、 越南(Vietnam)、 墨西哥(Mexico)、 葡萄牙(Portugal)、 愛爾蘭(Ireland)、 法國(France)、多米尼加共和國(Dominican-Republic)、 老撾(Laos)、 厄瓜多爾(Ecuador)、 臺灣(Taiwan)、 海地(Haiti)、 哥倫比亞(Columbia)、 匈牙利(Hungary)、 危地馬拉(Guatemala)、 尼加拉瓜(Nicaragua)、蘇格蘭(Scotland)、 泰國(Thailand)、 南斯拉夫(Yugoslavia),薩爾瓦多(El-Salvador)、 特立尼達和多巴哥(Trinadad&Tobago)、 秘魯(Peru),香港(Hong),荷蘭(Holland-Netherlands)離散值
- 收入 (incom) >50K, <=50K ,離散值
注意,在插入這些列的標題后,一定要以 .csv 格式保存,且保存時將文件命名為 Adult.data.csv 。
下面,先總括一下第一個Azure機器學習實驗的數(shù)據(jù)集的數(shù)據(jù)特征:
- 十四個與結果相關的唯一屬性
- 數(shù)據(jù)集的實例數(shù)為 48,842
- 預測任務是確定用戶是否一年收入超過$50,000美元。
此人口收入的普查數(shù)據(jù)集以被微軟作為一個樣本數(shù)據(jù)提供出來了,在其成人普查收入的二元分類(Adult Census Income Binary Classification)數(shù)據(jù)集中便可以找到。以下我們將手動地一步步全面地介紹整個Azure機器學習工作流過程,很有可能,您的用于預測模型地真實數(shù)據(jù)集來自于其他外部資源,因此了解機器學習是怎么從開始至結束的全過程是很有必要的。
數(shù)據(jù)上載至Azure機器學習實驗
?
將人口收入普查數(shù)據(jù)集添加了列標題后,我們即可將數(shù)據(jù)上載至Azure機器學習工作區(qū),并將其納入預測模型。點擊屏幕左下方的"+",然后選擇上傳的數(shù)據(jù)集。下圖顯示上傳本地數(shù)據(jù)文件的選項。
圖 Azure機器學習中上載本地數(shù)據(jù)集文件的選項
下一步,點擊從本地文件選擇即"FROM LOCAL FILE",您可看見如下圖所示的上載界面。在此界面您可指定上載文件的屬性,比如文件的位置、名稱(本例中我們使用 Adult.data.csv )和類型(通常是CSV類型),以及新的數(shù)據(jù)集的可選說明。
圖 Azure機器學習對話框,選擇設定從本地文件上載新的數(shù)據(jù)集
完成信息的輸入并點擊簽入按鈕后,您的數(shù)據(jù)集將異步加載至您的第一個Azure機器學習實驗的工作區(qū)中。
創(chuàng)建新的Azure機器學習實驗
創(chuàng)建新的實驗的方法是點擊屏幕左下角的"+NEW"按鈕,選擇"實驗"(EXPERIMENT)à "空白實驗"(Blank Experiment)。
圖Azure機器學習中的實驗類型列表
請注意,除了空白實驗之外,還有許多示例實驗模板可供您加載和修改,以便您快速掌握Azure機器學習的實踐。
完成新的空白實驗的加載后,您可見到如下圖所示的Azure ML Studio可視化設計界面。
圖 在Azure ML Studio設計器中的空白Azure機器學習實驗
可以看到設計器由三個主要區(qū)域構成:
- 左側導航窗格 此區(qū)域包含Azure機器學習模塊的可搜索列表,此模型可用于創(chuàng)建預測分析模型。
- 按功能區(qū)域分組的模塊
- 數(shù)據(jù)集的讀取和格式轉換;
- 使用和訓練機器學習算法;
- 評估預測模型的結果。
- 中間窗格 在可視化設計器中,Azure機器學習的實驗類似于流程圖的形式,可以通過拖拽左側窗格中的功能模塊至可視化設計器的中間窗格組裝成工作流。模塊可以自由的被拖放在中間窗格的任意位置,模塊之間通過輸入和輸出端口之間畫線連接。
- 右側窗體 在屬性視圖中,可在右側窗體查看和設置被選擇模塊的屬性。
在左側窗體展開"已保存的數(shù)據(jù)集(Saved Datasets)"選項,便可以看到我們上載的用于Azure機器學習的 Adult.data.csv 數(shù)據(jù)文件出現(xiàn)在數(shù)據(jù)集的列表中。圖3-13顯示 Adult.data.csv 將被拖放至可視化設計器的中間窗體。
圖 將 Adult.data.csv 數(shù)據(jù)集拖動至設計器面板中
分割數(shù)據(jù)集
通常,創(chuàng)建Azure 機器學習實驗后,我們都會將數(shù)據(jù)集分割為兩個邏輯分組即訓練數(shù)據(jù)和驗證數(shù)據(jù),這樣做有兩個特定目的:
- 訓練數(shù)據(jù)通常用來創(chuàng)建預測模型,基于機器學習算法發(fā)現(xiàn)歷史數(shù)據(jù)中的固有模式。
- 驗證數(shù)據(jù)的分組用來測試訓練數(shù)據(jù)創(chuàng)建的預測模型對于已知結果預測的精度和概率。
為完成這個任務,執(zhí)行以下的步驟將數(shù)據(jù)集分割成兩部分。
???? 下圖顯示在Azure ML Studio中的操作步驟。
圖 分割 Adult.data.csv 數(shù)據(jù)集為訓練數(shù)據(jù)和測試數(shù)據(jù)
以上操作就將數(shù)據(jù)集中的80%的數(shù)據(jù)用于訓練模型,我們可使用剩余的20%數(shù)據(jù)驗證模型的精度。
模型訓練
下一步是借助Azure機器學習算法"教"模型如何評估數(shù)據(jù)。在左側窗體中展開"Machine Learning"即機器學習模塊,然后展開"Train"子模塊,將"Train Model"拖放至設計器中,最后在設計器中連接"Train Model"和"Split"圖形。
然后,我們展開"Machine Learning"即機器學習模塊下的"Initialize Model"即初始化模型,展開"Classfication"即分類子模塊。在此實驗中,我們使用"Two-Class Boosted Decision Tree"即雙類提升的決策樹算法。在左側窗體中選中該算法模塊并將其拖放至設計器中,至此您的實驗應該如下圖所示。
圖 在Azure機器學習實驗中連接訓練模型和雙類提升決策樹模塊
至此,我們設計了實驗將80%的成人收入普查數(shù)據(jù)集用于訓練雙類提升決策樹算法的模型。
可能您會產(chǎn)生疑問,為什么選擇這個算法來處理我們的預測。請不必糾結于為什么要采用此算法而不是別的算法,因為本章的主題是如何在Azure ML Studio中創(chuàng)建預測模型,在后續(xù)的章節(jié)將涵蓋如何選擇恰當?shù)臋C器學習預測算法。所以現(xiàn)在就讓我們使用雙類提升決策樹算法演示Azure機器學習實驗的示例。
選擇預測列
要完成算法的配置,我們需要指定數(shù)據(jù)集中的哪一列數(shù)據(jù)作為輸出或者預測列,數(shù)據(jù)集中的任意列將基于其他列的數(shù)據(jù)做預測。
若要執(zhí)行此操作,在設計器中點擊"Train Model",屬性窗體將在Azure ML Studio的右側窗體中顯示,如下圖所示。
圖 打開訓練模塊的列選擇器
若您在設計器中設置,請選擇"Launch column selector"即啟動列選擇器,選擇"Include"和列名稱為"income"即收入的列。
下圖所示的列選擇器將數(shù)據(jù)集中的收入列作為預測列,即要預測的是用戶收入。
圖 配置訓練模塊即選擇收入列
按照這種方式,Azure機器學習算法從每行數(shù)據(jù)中的其他列訓練模型,以預測收入。我們使用數(shù)據(jù)集中的80%基于已知的輸入和輸出數(shù)據(jù)訓練訓練模型。
至此,我們已經(jīng)做好訓練模型的準備,選擇屏幕底端的"RUN"即運行選項,然后隔岸觀火靜待Azure機器學習訓練我們的模型。您會注意到,實驗每個階段完成的時候,綠色的復選框就出現(xiàn)在每個操作的右側,如下圖所示。
圖 訓練Azure機器學習的收入預測模型
模型評分
?
現(xiàn)在我們已經(jīng)訓練完成新的Azure機器學習預測模型,下一步我們從解決方案的適用性的角度評估預測結果的正確性,以確定模型的精度。請牢記,Azure機器學習解決方案偉大之處在于迭代開發(fā),最終成功的關鍵是快速試錯。
如要實現(xiàn)對模型的評價,首先展開Azure ML Studio左側的"Machine Learning"即機器學習模塊,然后展開"Score Model"即評分模型子模塊,將"Score Model"拖放至設計器中,下一步連接"Score Model"和"Train Model",最后鏈接"Score Model"和"Split"模塊。至此,基本上就完成了利用數(shù)據(jù)集中20%的數(shù)據(jù)評估預測模型的準確性。
下一步,單擊屏幕底部的"Run"即運行按鈕等待處理的結果(每個模塊右側出現(xiàn)綠色的復選標記表示運行完畢)。下圖是機器學習實驗預測收入的運算過程截圖。
圖Azure ML Studio的訓練和評分模型
模型計算結果的可視化
當所有的模型運算結束后,將鼠標懸停在"Score Model"即評分模型上點擊右鍵,從快捷菜單中選擇"Visualize"即可視化,如下圖所示。
圖Azure ML Studio實驗中模型評分結果的可視化
圖 訓練模型每行新增的兩列分別代表針對每一行模型的預測值及預測概率
可以看到現(xiàn)在有兩個額外的列添加到了我們的數(shù)據(jù)集中:
- . "Scored Lables"即評分標簽表示數(shù)據(jù)集中此行數(shù)據(jù)的預測結果
- "Scored Probabilities"即評分概率表示收入水平超過 $50000 的概率 (或可能性)。
在我們數(shù)據(jù)集中新增的列提供了算法針對每行數(shù)據(jù)計算的預測結果和概率因子。概率因子是模型基于數(shù)據(jù)集中其他列數(shù)據(jù)預測結果的準確度的概率估計。
通常情況下,預測分析是一個多輪迭代的過程。可能您會嘗試許多不同的算法,或者將他們聯(lián)合使用(在高級的機器學習主題文章中被稱為集成)以證明預測模型的有效性。
????
模型評估
Azure機器學習最引入注目的功能之一就是它能夠快速評估不同的算法,只要輕點鼠標就可完成這些功能,這一切都歸功于評估模型。確定模型的精準度的方法很簡單,我們只要使用Azure ML Studio內(nèi)置的評估模型就輕松完成模型的評價。
若要執(zhí)行此操作,在Azure ML Studio的左側導航窗格中點擊"Machine Learning"即機器學習模塊,選擇"Evaluate"即評估子模塊,最后選擇"Evaluate Model"即評估模型的模塊,將其拖至可視化設計器頁面中的"Score Model"模塊下方。連接"Split Model"和"Score Model"即分割模型和評分模型,以及"Evaluate Model"和"Score Model"即評價模型和評分模型,如下圖所示。
圖 鏈接評估模型評價收入預測的結果
點擊Azure ML Studio 屏幕底部的"Run"即運行按鈕,在執(zhí)行過程中您可以查看實驗中每個模塊的運行情況,如果模塊運行完畢會在模塊的右側顯示綠色的復選標記。
整個過程運行完畢后,右鍵單擊評估模型的模塊底部連接器,在快捷菜單中選擇"Visualize"即可視化,評估的結果就會如下圖顯示。
?
圖Azure 機器學習評估模型評價收入預測模型的可視化結果
評估模型模塊會產(chǎn)生一套曲線和度量指標,讓您對于評分模型的結果或者兩個評分模型的對比情況一目了然。評分結果以以下三種形式展示:
- ROC曲線(Receiver Operator Characteristic)即受試者工作特征曲線反映的是真陽性占總的實際陽性的比例。將它與在各種閾值設置情況下假陽性占總的實際陰性的比例進行對比。對角連線表示50%預測的準確性,并可作為評價的基準以便后續(xù)提高。曲線位于左邊高出對角線的部分表示模型的精準度高,當然您也會希望實驗的結果曲線出現(xiàn)在此區(qū)域。
- 準確率和召回率是衡量信息檢索系統(tǒng)性能的重要指標。準確率是指檢索到相關文檔數(shù)占檢索到的文檔總數(shù)的比例,而召回率是指檢索到相關文檔數(shù)占所有相關文檔總數(shù)的比例。
- lift曲線是數(shù)據(jù)挖掘分類器最常用的方式之一,與ROC曲線不同的是lift考慮分類器的準確性,也就是使用分類器獲得的正類數(shù)量和不使用分類器隨機獲取正類數(shù)量的比例。
在圖 3-29 的可視化結果中,您可看到兩個數(shù)據(jù)集("訓練"數(shù)據(jù)集和"驗證"數(shù)據(jù)集)幾乎完全相同,即紅色和藍色曲線幾乎完全重合,這表明我們的預測模型相當準確。Azure 機器學習入門教程的初衷就是構建合理準確的預測模型,并在下一個階段中進行應用。
保存實驗
在此步驟中,我們將要保存實驗的副本。在屏幕的底部點擊"Save As"另存為按鈕。在后面的實驗中,我們要將實驗的核心功能做出重大的修改,所以要先將實驗另存,保存的名稱建議具有描述性的說明,比如 Azure 機器學習的收入預測——訓練模型試驗(Azure ML Income Prediction – Train Model Experiment)。
轉載于:https://www.cnblogs.com/xuesong/p/6407098.html
總結
以上是生活随笔為你收集整理的Azure机器学习入门(三)创建Azure机器学习实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot项目开发流程
- 下一篇: visibility与display的区