磚AutoML是如何工作的
本文詳細介紹磚AutoML的工作原理及其實現的概念缺失值歸責大數據采樣。
磚AutoML執行以下:
準備模型訓練數據集。例如,AutoML執行不平衡數據檢測分類問題的模型前培訓。
迭代訓練和調優多個模型,每個模型是由開源組件可以很容易地編輯和集成到您的機器學習管道。
AutoML自動分配hyperparameter跨集群的工作節點優化試驗。
與磚運行時9.1 LTS毫升以上,AutoML自動樣本數據集,如果太大了,適合一個工作節點的記憶。看到抽樣大型數據集。
基於算法的評估模型scikit-learn,xgboost,LightGBM,先知,華宇電腦包。
顯示結果,並提供一個Python筆記本每個試驗運行的源代碼可以評論,複製和修改代碼。AutoML也計算彙總統計數據集上並將這些信息保存在一個筆記本,你可以檢查。
AutoML算法
磚AutoML火車和評估模型的基礎上,算法在下表中。
請注意
決策樹的分類和回歸模型,隨機森林、邏輯回歸和線性回歸與隨機梯度下降算法是基於scikit-learn。
分類模型 |
回歸模型 |
預測模型 |
---|---|---|
Auto-ARIMA(磚中可用的運行時10.3毫升以上。) |
||
支持數據的功能類型
不是不支持下麵列出的功能類型。例如,不支持圖片。
類型是支持以下特性:
數字(
ByteType
,ShortType
,IntegerType
,LongType
,FloatType
,倍增式
)布爾
字符串(分類或英文文本)
時間戳(
TimestampType
,DateType
)ArrayType[數字](磚運行時10.4 LTS毫升以上)
DecimalType(磚運行時11.3 LTS毫升以上)
將數據分為訓練/驗證/測試集
磚運行時的10.1毫升以上,您可以指定一個時間列用於培訓/驗證/測試數據分割分類和回歸問題。如果您指定這一列,數據集分為訓練,驗證集和測試集的時間。點是最早用於訓練,下一個最早的驗證,和最新的點作為測試集。
在磚運行時的10.1毫升,列必須是一個時間戳或整數列。在磚運行時的10.2毫升以上,你也可以選擇一個字符串列。
抽樣大型數據集
請注意
抽樣不應用於預測問題。
盡管AutoML分發hyperparameter跨集群的工作節點優化試驗,每個模型訓練在一個工作節點。
AutoML自動估計所需的內存負載和訓練你的數據集樣本數據集,如果必要的。
通過磚磚運行時的9.1 LTS毫升運行時10.5毫升,抽樣比例並不依賴於集群的節點類型或在每個節點上的內存量。
磚運行時的11。x ML:
抽樣比例增加工人每核心節點有更多的記憶。你可以通過選擇一個增加樣本量內存優化實例類型。
你可以進一步增加樣本容量,選擇一個更大的值
spark.task.cpus
在火花配置集群。默認設置為1;最大值是工人的節點上的cpu數量。當你增加這個值,樣本容量較大,但較少的試驗並行運行。例如,在一台機器與四核和64 gb的RAM,默認值spark.task.cpus = 1
運行4人均試驗與每個試驗僅限於16 gb的RAM。如果你設置spark.task.cpus = 4
每個工人隻運行一個試驗,但試驗可以使用64 gb RAM。
在磚運行時的12.0毫升以上,AutoML可以訓練對大數據集分配更多的CPU核/培訓任務。你可以增加樣本大小選擇一個實例大小與更大的總內存。
在磚運行時的11.0毫升以上,如果AutoML采樣數據集,抽樣分數所示概述選項卡在UI中。
對於分類問題,AutoML使用PySparksampleBy
方法對於分層抽樣保存目標標簽分布。
對於回歸問題,AutoML使用PySpark樣本
方法。
不平衡數據集對分類問題的支持
在磚運行時的11.2毫升以上,如果AutoML檢測到不平衡數據集,它試圖減少訓練數據集,將采樣的不平衡主要類(es)和添加類權重。AutoML隻有平衡訓練數據集和不平衡測試和驗證數據集。這樣做確保了模型性能總是評估non-enriched數據集與真正的輸入類分布。
平衡不平衡訓練數據集,AutoML使用類權重是逆相關downsampled給定類的程度。例如,如果一個訓練數據集與100個樣本95個樣本屬於a類和5樣本屬於B類,AutoML減少這種不平衡,將采樣類70個樣本,這是將采樣比例的70/95或0.736類,同時保持樣本的數量在5 B類。確保最後一個模型是正確校準和概率分布模型的輸出是輸入的一樣,AutoML擴展的類體重類的比例1/0.736,或1.358,同時保持B類的權重為1。AutoML然後使用這些類權重模型訓練作為參數,以確保適當加權,每個類的樣本訓練模型。
語義類型檢測
請注意
語義類型檢測是不能應用於預測問題。
AutoML不執行語義類型檢測的列自定義歸責方法指定。
與磚運行時9.1 LTS毫升以上,AutoML試圖檢測是否列有一個語義類型,不同於火花或熊貓表中的數據類型模式。AutoML對待這些列作為檢測語義類型。這些檢測是最好的努力,可能會錯過在某些情況下存在的語義類型。你也可以手動設置的語義類型列或告訴AutoML不要語義類型檢測應用於列使用注釋。
具體來說,AutoML使這些調整:
字符串和整數列代表日期或時間戳數據被視為一個時間戳的類型。
字符串列代表數值數據被當作一個數字類型。
磚運行時的10.1毫升以上,AutoML也使得這些調整:
數字列包含類別id作為分類特征。
字符串列包含英語文本被當作一個文本功能。
語義類型注解
磚運行時的10.1毫升以上,您可以手動控製分配的語義類型通過將語義類型列注釋。手工標注的語義類型的列<列名稱>
作為<語義類型>
使用下麵的語法:
metadata_dict=df。模式(“<列名稱>”]。元數據metadata_dict(“spark.contentAnnotation.semanticType”]=“<語義類型>”df=df。withMetadata(“<列名稱>”,metadata_dict)
<語義類型>
可以是下列之一:
分類
:列包含分類值(例如,數值應視為IDs)。數字
:列數值(例如,字符串值,可以解析成數字)。datetime
:列包含時間戳值(字符串、數字或日期值,可以轉化為時間戳)。文本
:字符串列包含英語文本。
禁用語義類型檢測在一個專欄中,使用特殊的關鍵字注釋本機
。
explainability夏普利值(世鵬科技電子)模型
請注意
高鈣11.1及以下,世鵬科技電子情節不生成,如果數據集包含一個datetime
列。
生產的筆記本AutoML回歸和分類包括運行代碼來計算沙普利值。沙普利值是基於博弈論和估計的重要性每個特性的預測模型。
AutoML筆記本電腦使用世鵬科技電子包計算夏普利值。消耗大量內存的,因為這些計算是計算不默認執行。
計算和顯示夏普利值:
去功能的重要性部分在一個AutoML生成試驗筆記本。
集
shap_enabled=真正的
。重新運行筆記本。
時間序列聚合
預測問題,當有多個值時間序列中時間戳,AutoML使用值的平均值。
使用和相反,編輯源代碼的筆記本。在聚合數據…細胞,改變.agg (y = (target_col,“avg”))
來.agg (y = (target_col,“金額”)
如圖所示:
group_cols=(time_col]+id_colsdf_aggregation=df_loaded\。groupby(group_cols)\。gg(y=(target_col,“和”))\。reset_index()\。重命名(列={time_col:“死刑”})
功能存儲整合
與磚運行時11.3 LTS毫升以上,您可以使用現有的功能表特色商店增加的原始輸入數據集分類和回歸問題。
與磚運行時12.2 LTS毫升以上,您可以使用現有的功能表特色商店增加的原始輸入數據集所有AutoML問題:分類、回歸分析和預測。
創建一個功能表,請參閱磚特性的商店。
使用現有的功能表,你可以選擇功能表與AutoML UI或設置feature_store_lookups
參數在你AutoML運行規範。
feature_store_lookups=({“table_name”:“example.trip_pickup_features”,“lookup_key”:(“pickup_zip”,“rounded_pickup_datetime”),},{“table_name”:“example.trip_dropoff_features”,“lookup_key”:(“dropoff_zip”,“rounded_dropoff_datetime”),}]