auto-sklearn手册
手冊
本手冊從幾個方面說明了如何使用auto-sklearn。并且 盡可能引用的例子來解釋某些配置。官網首頁.官網中文翻譯
例子
auto-sklearn 下面的例子演示幾個 方面的用法,他們都位于github:
- Holdout
- 交叉驗證
- 并行計算
- 按照時序使用
- 回歸
- 連續和分類數據
- 使用自定義指標
時間和內存限制
auto-sklearn 的一個重要功能時限制內存與時間的使用。特別是對于大型數據集,算法可能要花費花幾個小時進行計算,因此如何在一段時間后停止并進行評估是極其重要的,因為這是在合理的時間內取得進展的重要手段.因而資源限制則必須做到時間與模型數量之間的權衡.
雖然auto-sklearn減輕了手動超參數優化,但是用戶自己仍然需要設置內存與時間限制.對與大多數數據集而言,主流現代計算機上的能夠提供的內存上限一般是3GB或者6GB,這絕對足夠auto-sklearn使用了。而對于時間設置,這里很難給出明確的指導方針,如果可能的話,一個好的默認值一般是一天的總時間限制,而一次運行的時間限制最好為30分鐘.
可以在進一步的指導方針 auto-sklearn /問題/ 142 。
設置 Searchspace
設置 auto-sklearn searchspac,而非使用所有可用的內容。 下面的示例展示了如何只使用隨機森林算法以及不適用數據的預處理算法。
>>> import autosklearn.classification>>> automl = autosklearn.classification.AutoSklearnClassifier(>>> include_estimators=["random_forest", ], exclude_estimators=None,>>> include_preprocessors=["no_preprocessing", ], exclude_preprocessors=None)>>> automl.fit(X_train, y_train)>>> predictions = automl.predict(X_test)注意: 用于識別算法與與處理算法的字符串后面不能跟著 ‘.py’。
對于一個完整列表請查看源代碼( autosklearn /管道/組件/ ):
- 分類器
- 回歸
- 預處理器
設置內存限制
ml_memory_limit(int)可選:
設置結果后會限制機器學習算法所使用的內存,單位為MB.當算法的內存使用超過該數字時,該算法將會被停止.*不過,一般內存消耗不大,不建議使用該選項),按照官網的建議,一般3GB或者6GB的主流個人計算機已經足夠autosklearn使用了,所以一般不需要設置該函數.
關掉預處理
預處理在 auto-sklearn中共 分為數據預處理和 特征預處理功能兩個功能。 數據預處理包括一個對分類特征的獨熱編碼,對缺失值的處理,以及對特征和樣本的歸一化處理,這些步驟目前是無法關閉的.特征預處理則是一個單一的transformer(sklearn中對特征處理算法的稱呼與機器學習算法 估計器estimator相對應),其實現了特征選擇與將特征轉換到不同空間(PCA).如前面的代碼所示,這可以通過 include_preprocessors=[“no_preprocessing”, ]來關閉.
重采樣策略
可以找到例子使用維持和交叉驗證 auto-sklearn /example
并行計算
自動sklearn支持在共享文件系統上共享數據共享并行執行。在這種模式下,SMAC算法通過每次迭代后將其寫入磁盤,共享其模型的訓練數據。在每次迭代開始時,SMAC都會加載所有新發現的數據點。在示例目錄中可以找到一個示例。
在默認模式下,自動sklearn已經使用了兩個CPU核心。第一個用于模型構建,第二個用于構建一個集成,每次一個新的機器學習模型已經完成培訓。示例目錄中的文件example_UNK.py 描述了如何在每次只使用一個CPU內核的情況下按順序運行這些任務。
此外,根據安裝scikit-learn numpy, 模型建立過程可以使用所有的核心。 這樣的行為并不是 auto-sklearn 故意設計的 ,它最有可能是由于numpy被安裝 從 pypi 作為一個二進制的輪子( 在這里看到的 )(上面這句話,我也看不太懂)。 執行 export OPENBLAS_NUM_THREADS = 1 應該能夠禁用這種行為并使numpy 一次只使用一個核心。
持久化模型 (模型的保存與加載)
auto-sklearn 主要是對scikit-learn的封裝。 因此,它可以遵循scikit-learn中的 持久性的例子 。
簡單的auto-sklearn
為了獲得 符合 高效和健壯的自動化機器學習 的 簡單有效的 auto-sklearn 可以設置 ensemble_size = 1 和 initial_configurations_via_metalearning = 0:
>>> import autosklearn.classification>>> automl = autosklearn.classification.AutoSklearnClassifier(>>> ensemble_size=1, initial_configurations_via_metalearning=0)根據一般驗證集的表現,很多算法的集合總能得到當前數據集的最佳性能。將元學習的初始配置設置為零,使得自動sklearn使用常規的SMAC算法來表示新的超參數配置。
總結
以上是生活随笔為你收集整理的auto-sklearn手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解朴素贝叶斯
- 下一篇: auto-sklearn简介