Azure机器学习实验
- 實驗背景
【實驗簡介】
Azure Machine Learning(簡稱“AML”)是微軟在其公有云Azure上推出的基于Web使用的一項機器學習服務,機器學習屬人工智能的一個分支,它技術借助算法讓電腦對大量流動數據集進行識別。這種方式能夠通過歷史數據來預測未來事件和行為,其實現方式明顯優于傳統的商業智能形式。微軟的目標是簡化使用機器學習的過程,以便于開發人員、業務分析師和數據科學家進行廣泛、便捷地應用。這款服務的目的在于“將機器學習動力與云計算的簡單性相結合”。AML目前在微軟的Global Azure云服務平臺提供服務,用戶可以通過站點:https://studio.azureml.net/?申請免費試用。
【實驗涉及知識點】
- 下載、處理和上傳收入普查的數據集;
- 創建一個新的Azure機器學習實驗;
- 訓練和評價一個預測模型;
- 實驗基本需求及目的
【實驗需求】
了解機器學習從數據到建模并最終評估預測的整個流程。
【實驗目的】
根據人口普查數據預測不同人員收入情況
三、實驗準備工作
【實驗平臺】
1,PC機,如果你的電腦內存低于512M,希望你不要安裝虛擬機及項目所需的環境。
2,注冊Azure平臺并免費使用
四、實驗實現步驟
【項目實現步驟】
1、數據集簡介及準備
1.1 數據集簡介
?
UCI機器學習數據庫的網址:http://archive.ics.uci.edu/ml/
該數據庫是加州大學歐文分校(UniversityofCaliforniaIrvine)提出的用于機器學習的數據庫,這個數據庫目前共有187個數據集,其數目還在不斷增加,UCI數據集是一個常用的標準測試數據集。數據庫不斷更新,是所有學習人工智能、機器學習等都需要用到的數據庫,是看文章、寫論文、測試算法的必備數據集。數據庫種類涉及生活、工程、科學各個領域,記錄數也是從少到多,最多達幾十萬條。
我們使用其中:美國人口普查數據集(https://archive.ics.uci.edu/ml/datasets/census+income)的數據,該數據從美國1994年人口普查數據庫抽取而來,可以用來預測居民收入是否超過50K/year。該數據集類變量為年收入是否超過50k,屬性變量包含年齡,工種,學歷,職業,人種等重要信息,
值得一提的是,14個屬性變量中有7個類別型變量,數據集各屬性:其中序號0~13是屬性, 14是類別
數據集局部圖如下圖所示:
注1:
已清洗的數據僅供本課程學習使用,有一定的模擬性質。如需要更多的信息,則需要從原始數據按照相應的目的進行清洗。
注2:
CSV 格式是數據分析工作中常見的一種數據格式。CSV 意為逗號分隔值(Comma-Separated Values),其文件以純文本形式存儲表格數據(數字和文本)。每行只有一條記錄,每條記錄被逗號分隔符分隔為字段,并且每條記錄都有同樣的字段序列。
CSV 格式能被大多數應用程序所支持,廣泛用于在不同的系統之間轉移數據,是一種容易被兼容的格式。實驗樓中大量的數據分析類課程都使用了 CSV 格式的數據集,不僅如此,我們也推薦你在今后的數據分析工作中應用此格式來存儲數據。
2、Azure云平臺的機器學習應用
2.1 觀察數據集
現在,用 Microsoft Excel 或任何其他電子表格工具中打開 adult.data 文件,并為其添加網站中屬性列表的詳細信息,這些信息如下列出。注意,其中的一部分屬性值為連續的,因為它們以數值的形式表現,另一部分則為離散的。
?
????年齡(age),連續值
????工作種類(Workclass)個人(Private), 無限責任公司(Self-emp-not-inc), 有限責任公司(Self-emp-inc), 聯邦政府(Federal-gov), 地方政府( Local-gov), 州政府(State-gov), 無薪人員(Without-pay), 無工作經驗人員(Never-worked)離散值
????序列號(Fnlwgt)連續值
????教育情況(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),連續值
?????婚姻狀況(Marital-status)?已婚(Married-civ-spouse),離婚(Divorced),未婚(Never-married),離異(Separated),喪偶(Widowed),已婚配偶缺席(Married-spouse-absent)、 再婚(Married-AF-spouse),離散值
????職業情況(Occupation)技術支持(Tech-support),維修工藝(Craft-repair),服務行業(Other-service)、 銷售(Sales)、 執行管理(Exec-managerial)、 專業教授(Prof-specialty),清潔工(Handlers-cleaners),機床操控人員(Machine-op-inspct)、 行政文員(Adm-clerical)、 養殖漁業(Farming-fishing)、 運輸行業(Transport-moving),私人房屋服務(Priv-house-serv),保衛工作(Protective-serv), 武裝部隊(Armed-Forces)職業情況,離散值
????親屬情況(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 )連續值
????資本損失(Capital-loss) ,連續值
????每周工作時間(Hours-per-week ),連續值
????國籍(Native-country )美國(United-States)、 柬埔寨(Cambodia)、 英國(England),波多黎各(Puerto-Rico),加拿大(Canada),德國(Germany),美國周邊地區(關島-美屬維爾京群島等)(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 。
2.2 導入數據
2.2.1 總結數據集
總括一下數據集的數據特征:
????1,十四個與結果相關的唯一屬性
????2,數據集的實例數為 48,842
????3,預測任務是確定用戶是否一年收入超過$50,000美元。
?
此人口收入的普查數據集以被微軟作為一個樣本數據提供出來了,在其成人普查收入的二元分類(Adult Census Income Binary Classification)數據集中便可以找到。以下我們將手動地一步步全面地介紹整個Azure機器學習工作流過程,很有可能,您的用于預測模型地真實數據集來自于其他外部資源,因此了解機器學習是怎么從開始至結束的全過程是很有必要的。
?
2.2.2 數據上載至Azure機器學習實驗
將人口收入普查數據集添加了列標題后,我們即可將數據上載至Azure機器學習工作區,并將其納入預測模型。點擊屏幕左下方的"+",然后選擇上傳的數據集。下圖顯示上傳本地數據文件的選項。
?下一步,點擊從本地文件選擇即"FROM LOCAL FILE",您可看見如下圖所示的上載界面。在此界面您可指定上載文件的屬性,比如文件的位置、名稱(本例中我們使用 Adult.data.csv )和類型(通常是CSV類型),以及新的數據集的可選說明。
完成信息的輸入并點擊簽入按鈕后,您的數據集將異步加載至您的第一個Azure機器學習實驗的工作區中:
2.2.3 創建新的Azure機器學習實驗
創建新的實驗的方法是點擊屏幕左下角的"+NEW"按鈕,選擇"實驗"(EXPERIMENT)>"空白實驗"(Blank Experiment):
請注意,除了空白實驗之外,還有許多示例實驗模板可供您加載和修改,以便您快速掌握Azure機器學習的實踐。
完成新的空白實驗的加載后,您可見到如下圖所示的Azure ML Studio可視化設計界面
可以看到設計器由三個主要區域構成:
????左側導航窗格?此區域包含Azure機器學習模塊的可搜索列表,此模型可用于創建預測分析模型。
????????按功能區域分組的模塊
????????數據集的讀取和格式轉換;
????????使用和訓練機器學習算法;
????????評估預測模型的結果。
????中間窗格 在可視化設計器中,Azure機器學習的實驗類似于流程圖的形式,可以通過拖拽左側窗格中的功能模塊至可視化設計器的中間窗格組裝成工作流。模塊可以自由的被拖放在中間窗格的任意位置,模塊之間通過輸入和輸出端口之間畫線連接。
右側窗體?在屬性視圖中,可在右側窗體查看和設置被選擇模塊的屬性。
?
在左側窗體展開"已保存的數據集(Saved Datasets)"選項,便可以看到我們上載的用于Azure機器學習的 Adult.data.csv 數據文件出現在數據集的列表中,如圖顯示 Adult.data.csv 將被拖放至可視化設計器的中間窗體:
2.3 分割數據集
?
通常,創建Azure 機器學習實驗后,我們都會將數據集分割為兩個分組即訓練數據和驗證數據,這樣做有兩個特定目的:
?1,訓練數據通常用來創建預測模型,基于機器學習算法發現歷史數據中的固有模式。
?2,驗證數據的分組用來測試訓練數據創建的預測模型對于已知結果預測的精度和概率。
執行以下的步驟將數據集分割成兩部分。
?
????1,在左側窗體中展開"Data Transformation"即數據轉換模塊。
????2,拖動"Split"即分割模塊至Azure機器學習設計器。
????3,連接"Split"模塊與 Adult.data.csv 數據集。
????4,點擊分割模塊并設置"Fraction of rows in the first output dataset"為0.8。這將80%的數據分割至訓練數據集中。
以上操作就將數據集中的80%的數據用于訓練模型,我們可使用剩余的20%數據驗證模型的精度。
2.4 模型訓練
?
借助Azure機器學習算法"教"模型如何評估數據:在左側窗體中展開"Machine Learning"即機器學習模塊,然后展開"Train"子模塊,將"Train Model"拖放至設計器中,最后在設計器中連接"Train Model"和"Split"圖形。
然后,我們展開"Machine Learning"即機器學習模塊下的"Initialize Model"即初始化模型,展開"Classfication"即分類子模塊。在此實驗中,我們使用"Two-Class Boosted Decision Tree"即雙類提升的決策樹算法。在左側窗體中選中該算法模塊并將其拖放至設計器中,至此您的實驗應該如下圖所示。
?
2.5 選擇預測項
?
要完成算法的配置,我們需要指定數據集中的哪一列數據作為輸出或者預測列,數據集中的任意列將基于其他列的數據做預測。若要執行此操作,在設計器中點擊"Train Model",屬性窗體將在Azure ML Studio的右側窗體中顯示, 若您在設計器中設置,請選擇"Launch column selector"即啟動列選擇器,選擇"Include"和列名稱為"income"即收入的列。
下圖所示的列選擇器將數據集中的收入列作為預測列,即要預測的是用戶收入。如下圖所示。
按照這種方式,Azure機器學習算法從每行數據中的其他列訓練模型,以預測收入。我們使用數據集中的80%基于已知的輸入和輸出數據訓練訓練模型。
至此,我們已經做好訓練模型的準備,選擇屏幕底端的"RUN"即運行選項,然后靜待Azure機器學習訓練我們的模型。您會注意到,實驗每個階段完成的時候,綠色的復選框就出現在每個操作的右側,如下圖所示。
???????????????
2.6 模型評分
現在我們已經訓練完成新的Azure機器學習預測模型,下一步我們從解決方案的適用性的角度評估預測結果的正確性,以確定模型的精度。請牢記,Azure機器學習解決方案偉大之處在于迭代開發,最終成功的關鍵是快速試錯。
如要實現對模型的評價,首先展開Azure ML Studio左側的"Machine Learning"即機器學習模塊,然后展開"Score Model"即評分模型子模塊,將"Score Model"拖放至設計器中,下一步連接"Score Model"和"Train Model",最后鏈接"Score Model"和"Split"模塊。至此,基本上就完成了利用數據集中20%的數據評估預測模型的準確性。
下一步,單擊屏幕底部的"Run"即運行按鈕等待處理的結果(每個模塊右側出現綠色的復選標記表示運行完畢)。下圖是機器學習實驗預測收入的運算過程截圖。
?
2.7 模型計算結果的可視化
?
當所有的模型運算結束后,將鼠標懸停在"Score Model"即評分模型上點擊右鍵,從快捷菜單中選擇"Visualize"即可視化,如下圖所示。
?
當您選擇可視化新訓練的模型數據選項后,會生成一個新的頁面。在可視化的界面中滑動滾動條至最右端,您會發現兩個額外的列顯示在數據集中,如下圖所示。
可以看到現在有兩個額外的列添加到了我們的數據集中:
1,"Scored Lables"即評分標簽表示數據集中此行數據的預測結果
2,"Scored Probabilities"即評分概率表示收入水平超過 $50000 的概率 (或可能性)。
?
在我們數據集中新增的列提供了算法針對每行數據計算的預測結果和概率因子。概率因子是模型基于數據集中其他列數據預測結果的準確度的概率估計。通常情況下,預測分析是一個多輪迭代的過程。可能您會嘗試許多不同的算法,或者將他們聯合使用(在高級的機器學習主題文章中被稱為集成)以證明預測模型的有效性。
?
2.8 模型評估
Azure機器學習最引入注目的功能之一就是它能夠快速評估不同的算法,只要輕點鼠標就可完成這些功能,這一切都歸功于評估模型。確定模型的精準度的方法很簡單,我們只要使用Azure ML Studio內置的評估模型就輕松完成模型的評價。
若要執行此操作,在Azure ML Studio的左側導航窗格中點擊"Machine Learning"即機器學習模塊,選擇"Evaluate"即評估子模塊,最后選擇"Evaluate Model"即評估模型的模塊,將其拖至可視化設計器頁面中的"Score Model"模塊下方。連接"Split Model"和"Score Model"即分割模型和評分模型,以及"Evaluate Model"和"Score Model"即評價模型和評分模型,如下圖所示。
點擊Azure ML Studio 屏幕底部的"Run"即運行按鈕,在執行過程中您可以查看實驗中每個模塊的運行情況,如果模塊運行完畢會在模塊的右側顯示綠色的復選標記。整個過程運行完畢后,右鍵單擊評估模型的模塊底部連接器,在快捷菜單中選擇"Visualize"即可視化:
評估的結果就會如下圖顯示:
?
五、總結
5.1 曲線和度量指標
?
???評估模型模塊會產生一套曲線和度量指標,讓您對于評分模型的結果或者兩個評分模型的對比情況一目了然。評分結果以以下三種形式展示:
????ROC曲線(Receiver Operator Characteristic)即受試者工作特征曲線反映的是真陽性占總的實際陽性的比例。將它與在各種閾值設置情況下假陽性占總的實際陰性的比例進行對比。對角連線表示50%預測的準確性,并可作為評價的基準以便后續提高。曲線位于左邊高出對角線的部分表示模型的精準度高,當然您也會希望實驗的結果曲線出現在此區域。
????準確率和召回率是衡量信息檢索系統性能的重要指標。準確率是指檢索到相關文檔數占檢索到的文檔總數的比例,而召回率是指檢索到相關文檔數占所有相關文檔總數的比例。
????lift曲線是數據挖掘分類器最常用的方式之一,與ROC曲線不同的是lift考慮分類器的準確性,也就是使用分類器獲得的正類數量和不使用分類器隨機獲取正類數量的比例。
可視化結果中,您可看到兩個數據集("訓練"數據集和"驗證"數據集)幾乎完全相同,即紅色和藍色曲線幾乎完全重合,這表明我們的預測模型相當準確。Azure 機器學習入門的初衷就是構建合理準確的預測模型,并在下一個階段中進行應用。
5.2 保存實驗
?
在此步驟中,我們將要保存實驗的副本。在屏幕的底部點擊"Save As"另存為按鈕。在后面的實驗中,你可能將實驗的核心功能做出重大的修改,所以要先將實驗另存,保存的名稱建議具有描述性的說明,比如 Azure 機器學習的收入預測——訓練模型試驗(Azure ML Income Prediction – Train Model Experiment)。
總結
以上是生活随笔為你收集整理的Azure机器学习实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js中的trim函数怎么使用
- 下一篇: python处理pdf文件