自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

讓機器學(xué)習(xí)自動幫我們建模,這4個Python庫能讓你大開眼界

人工智能 機器學(xué)習(xí)
自動機器學(xué)習(xí)(通常簡稱為AutoML)是一個新興的領(lǐng)域,在這個領(lǐng)域中,通過建立機器學(xué)習(xí)模型來對數(shù)據(jù)進(jìn)行建模的過程是自動化的。AutoML能讓建模變得更容易,也能讓每個人更容易訪問。

 自動機器學(xué)習(xí)(通常簡稱為AutoML)是一個新興的領(lǐng)域,在這個領(lǐng)域中,通過建立機器學(xué)習(xí)模型來對數(shù)據(jù)進(jìn)行建模的過程是自動化的。AutoML能讓建模變得更容易,也能讓每個人更容易訪問。

[[342604]]

如果你對AutoML感興趣,下面這四個Python庫是最好的選擇!

1.auto-sklearn

auto-sklearn 是一個自動化的機器學(xué)習(xí)工具庫,可與大家都非常熟悉的標(biāo)準(zhǔn) sklearn 接口無縫集成。通過使用最近的方法,比如貝葉斯優(yōu)化,該庫可被用來導(dǎo)航可能模型的空間,并學(xué)會推斷特定配置是否能很好地完成給定的任務(wù)。

該庫由 Matthias Feurer 等人創(chuàng)建,其技術(shù)細(xì)節(jié)在論文《高效和魯棒的機器學(xué)習(xí)》中進(jìn)行了描述,費勒寫道:

…我們引入了一個基于scikit-learn的強大的新AutoML系統(tǒng)(使用15個分類器,14個特征預(yù)處理方法和4個數(shù)據(jù)預(yù)處理方法,產(chǎn)生了一個包含110個超參數(shù)的結(jié)構(gòu)化假設(shè)空間)。

auto-sklearn 可能是入門 AutoML 的最佳庫了。除了發(fā)現(xiàn)數(shù)據(jù)集的數(shù)據(jù)準(zhǔn)備和模型選擇之外,它還可以從相似數(shù)據(jù)集上表現(xiàn)良好的模型中進(jìn)行學(xué)習(xí),并且可以將效果最佳的模型匯總在一起。

 

讓機器學(xué)習(xí)自動幫我們建模,這4個Python庫能讓你大開眼界

 

除了高效的實現(xiàn)之外,auto-sklearn 只需要最少的用戶交互, 使用 pip install auto-sklearn 即可安裝該庫。

可以使用的主要類是 AutoSklearnClassifier 和 AutoSklearnRegressor,它們分別用于分類和回歸任務(wù)。 兩者都具有用戶指定的相同參數(shù),其中最重要的是時間限制和集合大小。

 

  1. import autosklearn as ask 
  2. #ask.regression.AutoSklearnRegressor()用于回歸任務(wù) 
  3. model = ask.classification.AutoSklearnClassifier(ensemble_size=10, #最終集合的大小(最小值為1) 
  4.                                                  time_left_for_this_task=120, #進(jìn)程運行的秒數(shù) 
  5.                                                  per_run_time_limit=30) #每個模型分配的最大秒數(shù) 
  6. model.fit(X_train, y_train) #開始擬合搜索模型 
  7. print(model.sprint_statistics()) #打印搜索統(tǒng)計信息 
  8. y_predictions = model.predict(X_test) #從模型中獲得預(yù)測 

AutoSklearn官方文檔:https://automl.github.io/auto-sklearn/master/

2.TPOT

TPOT 是另一個自動化建模的 Python 庫,但是該庫更加著重于數(shù)據(jù)準(zhǔn)備以及建模算法和模型超參數(shù)。它通過一種基于進(jìn)化樹的結(jié)構(gòu)(稱為“基于樹的管道優(yōu)化工具(TPOT),可自動設(shè)計和優(yōu)化機器學(xué)習(xí)管道)來實現(xiàn)特征選擇、預(yù)處理和構(gòu)造的自動化。”

 

讓機器學(xué)習(xí)自動幫我們建模,這4個Python庫能讓你大開眼界

 

程序或管道用樹表示。遺傳程序選擇并進(jìn)化某些程序,以使每個自動機器學(xué)習(xí)管道的最終結(jié)果最大化。

正如 Pedro Domingos 所說,“垃圾算法遇上海量數(shù)據(jù)也比數(shù)據(jù)有限的聰明算法強大。”事實也是如此:TPOT 可以生成復(fù)雜的數(shù)據(jù)預(yù)處理管道。

 

 

TPOT管道優(yōu)化器可能需要幾個小時才能產(chǎn)生很好的結(jié)果,就像很多AutoML算法一樣(除非數(shù)據(jù)集很小)。你也可以在 Kaggle committes 或 googlecolab 中運行這些長程序。

 

  1. import tpot 
  2. pipeline_optimizer = tpot.TPOTClassifier(generations=5, #進(jìn)行訓(xùn)練的迭代次數(shù) 
  3.                                          population_size=20, #訓(xùn)練的數(shù)據(jù)量 
  4.                                          cv=5) #StratifiedKFold中的倍數(shù) 
  5. pipeline_optimizer.fit(X_train, y_train) #適配管道優(yōu)化器-可能需要很長時間print(pipeline_optimizer.score(X_test, y_test)) #打印管道評分 
  6. pipeline_optimizer.export('tpot_exported_pipeline.py') #導(dǎo)出管道-用Python代碼! 

TPOT 的最好功能是將模型導(dǎo)出為Python代碼文件,這樣可以方便以后使用。

TPOT 官方文檔:https://epistasislab.github.io/tpot/

TPOT 示例:https://epistasislab.github.io/tpot/examples/

3.HyperOpt

HyperOpt 是由 James Bergstra 開發(fā)用于貝葉斯優(yōu)化的 Python 庫。該庫專為大規(guī)模優(yōu)化具有數(shù)百個參數(shù)的模型而設(shè)計,可顯式地用于優(yōu)化機器學(xué)習(xí)管道,并具有用于選擇跨多個核心和機器的優(yōu)化過程的選項。

但是,HyperOpt 很難直接使用,因為它非常技術(shù)性,并且需要仔細(xì)指定優(yōu)化步驟和參數(shù)。相反,建議大家用 HyperOpt-sklearn,一個包含 sklearn 庫的 HyperOpt 包裝器。

具體來說,HyperOpt 雖然確實支持預(yù)處理,但重點仍然放在特定模型中的許多超參數(shù)上。如果我們仔細(xì)觀察 HyperOpt-sklearn的一次搜索結(jié)果,就會發(fā)現(xiàn)該結(jié)果導(dǎo)致沒有預(yù)處理的梯度提升分類器:

 

  1. {'learner': GradientBoostingClassifier(ccp_alpha=0.0, criterion='friedman_mse', init=None, 
  2.                            learning_rate=0.009132299586303643, loss='deviance'
  3.                            max_depth=None, max_features='sqrt'
  4.                            max_leaf_nodes=None, min_impurity_decrease=0.0, 
  5.                            min_impurity_split=None, min_samples_leaf=1, 
  6.                            min_samples_split=2, min_weight_fraction_leaf=0.0, 
  7.                            n_estimators=342, n_iter_no_change=None, 
  8.                            presort='auto', random_state=2, 
  9.                            subsample=0.6844206624548879, tol=0.0001, 
  10.                            validation_fraction=0.1, verbose=0, 
  11.                            warm_start=False), 'preprocs': (), 'ex_preprocs': ()} 

用于構(gòu)建 HyperOpt-sklearn 模型的文檔:http://hyperopt.github.io/hyperopt-sklearn/。

雖然 HyperOpt 庫比 auto-sklearn、TPOT復(fù)雜得多,但是如果對于你的模型而已,超參數(shù)非常重要,那就值得你去把它用起來。

4.AutoKeras

與標(biāo)準(zhǔn)的機器學(xué)習(xí)庫相比,神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)功能更強大,因此更難實現(xiàn)自動化。

使用 AutoKeras,神經(jīng)結(jié)構(gòu)搜索算法可以找到最佳的結(jié)構(gòu),如一個層中的神經(jīng)元數(shù)量、層的數(shù)量、要合并的層、特定于層的參數(shù),如過濾器大小或丟失神經(jīng)元的百分比等。一旦搜索完成,可以將該模型用作普通的 TensorFlow/Keras 模型。

通過使用AutoKeras,我們可以構(gòu)建一個包含復(fù)雜元素(如嵌入和空間縮減)的模型,這些元素對于仍在學(xué)習(xí)深度學(xué)習(xí)過程中的人來說是不太容易訪問的。

當(dāng) AutoKeras 為我們創(chuàng)建模型時,許多預(yù)處理,如矢量化或清除文本數(shù)據(jù),都會為您完成并優(yōu)化。

啟動和訓(xùn)練搜索需要兩條線。AutoKeras 擁有一個類似 Keras 的界面,所以它不難記住和使用。

AutoKeras 支持文本、圖像和結(jié)構(gòu)化數(shù)據(jù),以及為初學(xué)者和尋求更多技術(shù)細(xì)節(jié)的人提供的界面,AutoKeras 使用進(jìn)化神經(jīng)結(jié)構(gòu)搜索方法為我們消除繁重的工作和模糊性。

雖然 AutoKeras 運行需要很長時間,但是有許多用戶指定的參數(shù)可用于控制運行時間、探索的模型數(shù)量、搜索空間大小等。

考慮使用 AutoKeras 生成的文本分類任務(wù)的這種經(jīng)過考慮的體系結(jié)構(gòu)。

 

  1. Hyperparameter      |Value     |Best Value So Far    
  2. text_block_1/block_type|transformer|transformer          
  3. classification_head_1/dropout|0         |0                    
  4. optimizer           |adam      |adam                 
  5. learning_rate       |0.001     |0.001                
  6. text_block_1/max_tokens|20000     |20000                
  7. text_block_1/text_to_int_sequence_1/output_sequence_length|200       |200                  
  8. text_block_1/transformer_1/pretraining|none      |none                 
  9. text_block_1/transformer_1/embedding_dim|32        |32                   
  10. text_block_1/transformer_1/num_heads|2         |2                    
  11. text_block_1/transformer_1/dense_dim|32        |32                   
  12. text_block_1/transformer_1/dropout|0.25      |0.25                 
  13. text_block_1/spatial_reduction_1/reduction_type|global_avg|global_avg           
  14. text_block_1/dense_block_1/num_layers|1         |1                    
  15. text_block_1/dense_block_1/use_batchnorm|False     |False                
  16. text_block_1/dense_block_1/dropout|0.5       |0.5                  
  17. text_block_1/dense_block_1/units_0|20        |20 

AutoKeras 教程:https://towardsdatascience.com/automl-creating-top-performing-neural-networks-without-defining-architectures-c7d3b08cddc

AutoKeras官方文檔:https://autokeras.com/

對比:你應(yīng)該用哪一個AutoML庫?

如果你的首要任務(wù)是需要一個干凈,簡單的界面和相對快速的結(jié)果,請選擇使用auto-sklearn。此外:該庫與sklearn的自然集成,可與常用的模型和方法一起使用,這樣可以對時間有更多的控制作用。

如果你的首要任務(wù)是高準(zhǔn)確度,不考慮可能需要的長時間訓(xùn)練,則使用TPOT。強調(diào)高級預(yù)處理方法,通過將管道表示為樹結(jié)構(gòu)而成為可能。額外提示:TPOT可以為最佳模型輸出Python代碼。

如果你的首要任務(wù)是高準(zhǔn)確度,不考慮可能需要的長時間訓(xùn)練,則可以使用 HyperOpt sklearn。強調(diào)模型的超參數(shù)優(yōu)化,不知道是否產(chǎn)生效果,具體情況要取決于數(shù)據(jù)集和算法。

如果你的問題需要神經(jīng)網(wǎng)絡(luò)才能解決,特別是當(dāng)它以文本或圖像的形式出現(xiàn)時,使用AutoKeras。雖然確實需要很長的訓(xùn)練時間,但有很多措施可以控制時間和搜索空間的大小。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2024-06-06 08:06:26

2024-08-26 08:52:41

2021-04-03 13:12:43

微信技巧Bug

2021-01-10 08:16:25

微信移動應(yīng)用實用技巧

2018-02-25 08:48:50

百度職業(yè)代碼

2014-04-01 11:39:38

集裝箱數(shù)據(jù)中心谷歌

2010-12-20 13:53:10

GoogleWebGL

2025-03-31 08:10:43

2009-05-19 10:18:00

機房網(wǎng)絡(luò)管理

2020-04-06 09:21:04

AI醫(yī)療汽車行業(yè)

2021-12-28 11:06:22

Python 開發(fā)編程語言

2011-04-13 14:52:13

Qcon

2021-01-12 05:57:49

AI人工智能機器學(xué)習(xí)

2021-12-23 20:00:59

Firefox瀏覽器開源

2024-01-15 07:00:00

2024-12-16 08:11:45

Python系統(tǒng)調(diào)用

2020-10-28 15:12:38

AI 自動駕駛漏洞

2018-04-25 10:46:05

Linux命令行日歷

2025-03-24 08:11:20

技巧CSS編輯器

2021-12-20 10:32:05

IT技術(shù)領(lǐng)導(dǎo)者CIO
點贊
收藏

51CTO技術(shù)棧公眾號