使用Azure進行自動化機器學習
什麽是自動化機器學習?
自動化的機器學習,也稱為 AutoML,讓數據科研人員、 分析人員和開發人員,同時維護模型質量構建具有高縮放性、 效率和工作效率的機器學習模型。
自動化機器學習生成的機器學習模型自動、 智能地選擇用於訓練的模型的集合,並推薦最適合您。 傳統的機器學習模型開發是資源密集型需要大量域知識和時間來生成和比較數十個模型。 與自動化機器學習將加快所需獲取生產的 ML 模型很好的輕松和高效的時間。
在幕後,將訓練數據是采用一個定義的目標的功能,並以智能方式在循環的機器學習算法和功能選擇的組合。 然後,根據訓練的分數,最擬合的模型是標識並向你推薦。
您仍然可以控制您的實驗和的透明度了解發生了什麽情況。 您可以定義約束和試驗根據時間、 準確性或叠代次數,例如目標。 在實驗中,每次叠代的訓練流和由給定模型的影響最大功能,可以看到每個生成的模型。
如何自動機器學習工作原理
使用Azure 機器學習服務,可以設計和使用這些步驟運行自動化的機器學習訓練實驗:
-
確定機器學習問題待解決: 分類,預測或回歸
-
指定的源和標記的訓練數據的格式:Numpy 數組或 Pandas 數據幀
-
配置計算目標,以便為模型定型,如你本地計算機、 Azure 機器學習計算、 遠程 Vm 或 Azure Databricks。
-
配置自動化的機器學習參數,確定通過不同的模型超參數設置的叠代數高級預處理/特征化,以及要在確定最佳的模型時,查詢的指標。
提交訓練運行。
在訓練期間,Azure 機器學習服務會創建多個嘗試不同算法和參數的管道。 它將停止後它會命中在試驗中定義的退出條件。
此外可以檢查記錄運行的信息,其中包含運行期間收集的指標。 訓練運行生成 Python 序列化對象 (.pkl
文件),其中包含的模型和數據預處理。
在 Azure 門戶中創建和瀏覽自動化的機器學習試驗 (預覽版)
必備組件
-
Azure 訂閱。 如果沒有 Azure 訂閱,請在開始之前創建一個免費帳戶。 立即試用 Azure 機器學習服務免費版或付費版。
-
Azure 機器學習服務工作區。 請參閱創建 Azure 機器學習服務工作區。
開始使用
導航到你的工作區的左窗格中。 在創作 (預覽版) 部分下選擇自動機器學習。
如果這是你第一次執行任何使用自動化的機器學習試驗,你將看到以下信息:
否則,你將看到自動機器學習儀表板與所有自動化機器學習試驗,包括那些運行隨 SDK 的概述。 此處可以篩選和按日期瀏覽在運行過程中,試驗名稱,並運行狀態。
創建試驗
選擇創建試驗按鈕以填充以下窗體。
-
輸入試驗名稱。
-
選擇計算的數據事件探查和訓練作業。 在下拉列表中提供了您現有的計算資源的列表。 若要創建新的計算,請執行步驟 3 中的說明。
-
選擇創建新的計算按鈕以打開下方窗格中,並配置對於此試驗計算上下文。
字段 描述 計算名稱 輸入用於標識您的計算上下文的唯一名稱。 虛擬機大小 選擇在計算的虛擬機大小。 其他設置 最小節點:輸入在計算節點的最小數目。 最小的 AML 計算節點數為 0。 若要啟用數據事件探查,您必須具有一個或多個節點。
最大節點:根據計算輸入的最大節點數。 默認值為 6 個節點的 AML 計算。若要開始創建新計算,請選擇創建。 這可能需要一些時間。
-
選擇你的數據的存儲帳戶。 公共預覽版僅支持本地文件上傳和 Azure Blob 存儲帳戶。
-
選擇一個存儲容器。
-
從存儲容器,選擇一個數據文件或上傳到容器的文件從本地計算機。
- 使用預覽和配置文件選項卡進一步配置你的數據對於此試驗。
- 在預覽選項卡上,指示是否你的數據包含標頭,並選擇特征 (列) 是用於定型包含每個功能列中切換按鈕。
-
在配置文件選項卡,你可以查看數據配置文件的功能,以及每個分發、 類型和摘要的統計信息 (平均值、 中間值、 最大/最小值等) 。
- 在預覽選項卡上,指示是否你的數據包含標頭,並選擇特征 (列) 是用於定型包含每個功能列中切換按鈕。
- 選擇訓練作業類型: 分類、 回歸或預測。
- 選擇目標列。 其想要對預測的列。
-
用於預測:
- 選擇時間列:此列包含要使用的時間數據。
- 選擇預測時間範圍:指示多少個時間單位 (分鐘/小時/天/周/月/年) 將該模型能夠預測到將來的發展。 隨著更長遠的預測,模型將變得不太準確。
- (可選)高級設置: 可用於更好地控制訓練作業的其他設置。
高級設置 | 描述 |
---|---|
主要指標 | 用於進行評分模型的主要度量。 |
退出條件 | 當滿足以下任意條件時,訓練作業結束之前完全完成。 訓練作業時間 (分鐘):允許運行訓練作業的時間。 最大叠代數:管道 (叠代) 中,以便測試在訓練作業的最大數目。 該作業將不會運行多個指定的叠代次數。 指標分數閾值:所有管道的最小指標分數。 這可確保,如果您想要達到定義的目標度量值,則執行不花更多時間比實際所需的訓練作業。 |
預處理 | 選擇此選項可以啟用或禁用通過自動的機器學習的預處理。 預處理包括自動數據清理、 準備,和轉換以生成綜合的功能。 |
驗證 | 選擇一個要在訓練作業中使用的交叉驗證選項。 |
並發 | 選擇你想要使用多核計算時使用的多核限制。 |
已阻止的算法 | 選擇你想要從訓練作業中排除的算法。 |
數據事件探查
跨您的數據集以驗證您的數據集是否是機器學習準備就緒,可以獲取各種匯總統計信息。 對於非數字列,其中包括 min、 max 和錯誤計數等的僅基本統計信息。 對於數值列,您還可以查看其統計一點時間,估計分位數。 具體而言,我們的數據配置文件包括:
-
功能: 這匯總的列的名稱。
-
配置文件: 在行中可視化效果基於推斷出的類型。 例如,字符串、 布爾值和日期將具有值計數,而小數 (數字) 具有近似直方圖。 這允許您快速了解數據的分布。
-
鍵入分發: 類型列中的行中值計數。 Null 值是其自己的類型,因此此可視化效果可用於檢測異常或缺失值。
-
類型: 列的推斷的類型。 可能的值包括: 字符串、 布爾值、 日期和小數位數。
-
最小值: 列的最小值。 對於其類型不具有固有的排序 (例如布爾值) 的功能顯示為空白條目。
-
最大: 列的最大值。 如"最小值,"為空白條目出現在不相關類型的功能。
-
計數: 缺少和非缺少列中的項的總數。
-
不會錯過計數: 列不是缺失的條目數。 請註意,空字符串和錯誤被視為值,因此它們不會構成"不缺少計數"。
-
分位數(在 0.1、 1、 5、 25、 50、 75、 95、 99 和 99.9%的時間間隔): 在每個分位來提供數據的分布的意義上的近似的值。 功能與不相關的類型顯示為空白條目。
-
意味著: 列的算術平均值。 功能與不相關的類型顯示為空白條目。
-
標準偏差: 列的標準偏差。 功能與不相關的類型顯示為空白條目。
-
方差: 列的方差。 功能與不相關的類型顯示為空白條目。
-
不對稱度: 列的不對稱度。 功能與不相關的類型顯示為空白條目。
-
峰度: 列的峰值。 功能與不相關的類型顯示為空白條目。
高級預處理
在配置在實驗時,可以啟用高級的設置Preprocess
。 因此,這樣做意味著自動執行以下數據預處理和特征化步驟。
預處理 步驟 | 描述 |
---|---|
刪除較大的基數或者無差異的特征 | 請先刪除這些從訓練和驗證集,包含所有缺失,相同的值之間的所有行或具有極高基數 (例如,哈希、 Id 或 Guid) 值中包括的功能。 |
估算缺失值 | 數字特征,輸入與列中值的平均值。 分類特征、 輸入與最常用的值。 |
生成其他特征 | 對於日期時間特征:年、月、日、星期、年日期、季、年周、小時、分鐘、秒。 對於文本特征:根據獲得、 雙元語法和三元字符語法的字詞頻率。 |
轉換和編碼 | 很少唯一值的數字功能會被轉換為分類特征。 獨熱編碼為較小的基數分類; 執行為高的基數,一個熱的哈希編碼。 |
詞嵌入 | 文本特征化器,可將文本標記的向量轉換到句子矢量使用預先訓練的模型。 在文檔中的每個單詞嵌入向量被聚合在一起以生成文檔特征向量。 |
目標編碼 | 分類特征、 將映射與平均的目標值對於回歸問題,並為每個類分類問題的類概率的每個類別。 基於頻率的權重和 k-折疊交叉驗證用於減少通過映射和幹擾引起的稀疏數據類別中調整。 |
文本目標編碼 | 文本輸入具有包的單詞的堆積線性模型用於生成每個類的概率。 |
證據 (出錯) 的權重 | 計算為分類列與目標列的關聯的度量值出錯。 它的計算方式的類在 vs 擴展類的概率的比率的日誌。 此步驟中輸出每個類的一個數字特征列,並且無需顯式用戶輸入缺失值和離群值處理方法。 |
分類距離 | 訓練的 k 平均值聚類分析模型對所有數字列。 輸出 k 新功能,每個群集,其中包含每個示例與每個群集的形心的距離的一個新數字功能。 |
運行實驗並查看結果
若要運行此試驗,請單擊開始。 實驗準備過程需要幾分鐘的時間。
查看實驗詳細信息
實驗準備階段完成後,你將看到運行詳細信息屏幕。 這樣,您創建的模型的完整列表。 默認情況下,最高評分的模型基於您的參數列表的頂部。 如訓練作業嘗試出更多的模型,則將它們添加到叠代列表和圖表中。 使用叠代圖表以獲取到目前為止生成的模型的快速度量值的比較。
訓練作業可能需要每個管道完成運行一段時間。
查看訓練運行詳細信息
向下鉆取的任何輸出模型,以查看運行詳細信息,如性能指標和分發圖表的訓練。
使用Azure進行自動化機器學習