具有PyCaret,BigQueryML和fastai的低代碼AI
> Photo by Kasya Shahovskaya on Unsplash
機(jī)器學(xué)習(xí)有潛力幫助解決企業(yè)和整個(gè)世界范圍內(nèi)的各種問(wèn)題。 通常,要開(kāi)發(fā)機(jī)器學(xué)習(xí)模型并將該模型部署到可以在操作上使用的狀態(tài),需要對(duì)編程有深入的了解,并且需要充分了解其背后的算法。
這將機(jī)器學(xué)習(xí)的使用限制在一小部分人中,因此也限制了可以解決的問(wèn)題數(shù)量。
幸運(yùn)的是,在過(guò)去的幾年中,涌現(xiàn)了許多庫(kù)和工具,這些庫(kù)和工具減少了模型開(kāi)發(fā)所需的代碼量,或者在某些情況下完全消除了代碼開(kāi)發(fā)。 這為非數(shù)據(jù)科學(xué)家(如分析師)發(fā)揮了利用機(jī)器學(xué)習(xí)功能的潛力,并允許數(shù)據(jù)科學(xué)家更快地對(duì)模型進(jìn)行原型制作。
這是一些我最喜歡的用于機(jī)器學(xué)習(xí)的低代碼工具。
PyCaret
PyCaret是Python的包裝器,用于流行的機(jī)器學(xué)習(xí)庫(kù),例如Scikit-learn和XGBoost。 它使僅需幾行代碼就能將模型開(kāi)發(fā)為可部署狀態(tài)。
可以通過(guò)pip安裝Pycaret。 有關(guān)更詳細(xì)的安裝說(shuō)明,請(qǐng)參閱PyCaret文檔。
pip install pycaret
PyCaret具有公共數(shù)據(jù)集的存儲(chǔ)庫(kù),可以使用pycaret.datasets模塊直接安裝。 完整列表可在此處找到,但出于本教程的目的,我們將使用一個(gè)非常簡(jiǎn)單的數(shù)據(jù)集來(lái)解決稱為"葡萄酒"數(shù)據(jù)集的分類任務(wù)。
PyCaret庫(kù)包含一組模塊,用于解決所有常見(jiàn)的機(jī)器學(xué)習(xí)問(wèn)題,其中包括:
· 分類。
· 回歸。
· 聚類。
· 自然語(yǔ)言處理。
· 關(guān)聯(lián)規(guī)則挖掘。
· 異常檢測(cè)。
要?jiǎng)?chuàng)建分類模型,我們需要使用pycaret.classification模塊。 創(chuàng)建模型非常簡(jiǎn)單。 我們只需調(diào)用將Model ID作為參數(shù)的create_model()函數(shù)即可。 您可以在此處找到支持的型號(hào)及其對(duì)應(yīng)ID的完整列表。 或者,您可以在導(dǎo)入適當(dāng)?shù)哪K后運(yùn)行以下代碼以查看可用模型的列表。
from pycaret.classification import *
models()
> A snapshot of models available for classification. Image by Author.
在調(diào)用create_model()之前,您首先需要調(diào)用setup()函數(shù)來(lái)為您的機(jī)器學(xué)習(xí)實(shí)驗(yàn)指定適當(dāng)?shù)膮?shù)。 在這里,您可以指定諸如測(cè)試序列拆分的大小以及是否在實(shí)驗(yàn)中實(shí)施交叉驗(yàn)證之類的內(nèi)容。
from pycaret.classification import *
rf = setup(data = data,
target = 'type',
train_size=0.8)
rf_model = create_model('rf')
create_model()函數(shù)將自動(dòng)推斷數(shù)據(jù)類型并使用默認(rèn)方法處理這些數(shù)據(jù)類型。 運(yùn)行create_model()時(shí),您將收到以下輸出,其中顯示了推斷的數(shù)據(jù)類型。
> Image by Author.
PyCaret將使用一組默認(rèn)的預(yù)處理技術(shù)來(lái)處理諸如分類變量和估算缺失值之類的事情。 但是,如果您需要更定制的數(shù)據(jù)解決方案,則可以在模型設(shè)置中將它們指定為參數(shù)。 在下面的示例中,我更改了numeric_imputation參數(shù)以使用中位數(shù)。
from pycaret.classification import *
rf = setup(data = data,
target = 'type',
numeric_imputation='median')
rf_model = create_model('rf')
對(duì)參數(shù)滿意后,請(qǐng)按Enter鍵,模型將最終確定并顯示性能結(jié)果網(wǎng)格。
> Image by Author.
PyCaret還具有plot_model()函數(shù),該函數(shù)顯示模型性能的圖形表示。
plot_model(rf_model)
> Image by Author.
本教程剛剛展示了使用PyCaret庫(kù)進(jìn)行模型訓(xùn)練的基礎(chǔ)。 還有更多功能和模塊可提供完整的低碼機(jī)器學(xué)習(xí)解決方案,包括功能工程,模型調(diào)整,持久性和部署。
BigQuery ML
Google在2018年發(fā)布了一個(gè)名為BigQuery ML的新工具。 BigQuery是Google的云數(shù)據(jù)倉(cāng)庫(kù)解決方案,旨在為數(shù)據(jù)分析師和科學(xué)家提供快速訪問(wèn)大量數(shù)據(jù)的途徑。 BigQuery ML是一種工具,可讓僅使用SQL從BigQuery數(shù)據(jù)倉(cāng)庫(kù)直接開(kāi)發(fā)機(jī)器學(xué)習(xí)模型。
自從發(fā)布以來(lái),BigQueryML已經(jīng)發(fā)展到可以支持大多數(shù)常見(jiàn)的機(jī)器學(xué)習(xí)任務(wù),包括分類,回歸和聚類。 您甚至可以導(dǎo)入自己的Tensforflow模型以在工具中使用。
根據(jù)我自己的經(jīng)驗(yàn),BigQueryML是用于加速模型原型制作的極其有用的工具,并且還可以用作基于生產(chǎn)的系統(tǒng)來(lái)解決簡(jiǎn)單的問(wèn)題。
為了簡(jiǎn)要介紹該工具,我將使用稱為成人收入數(shù)據(jù)集的數(shù)據(jù)集來(lái)說(shuō)明如何在BigQueryML中建立和評(píng)估邏輯回歸分類模型。
該數(shù)據(jù)集可以在UCI機(jī)器學(xué)習(xí)存儲(chǔ)庫(kù)中找到,我正在使用以下Python代碼以CSV文件的形式下載。
url_data = 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'
column_names = ['age', 'workclass', 'fnlwgt', 'education', 'educational-num','marital-status',
'occupation', 'relationship', 'race', 'gender','capital-gain', 'capital-loss',
'hours-per-week', 'native-country','income']
adults_data = pd.read_csv(url_data, names=column_names)
adults_data.to_csv('adults_data.csv')
這是一個(gè)腳本,用于下載數(shù)據(jù)并導(dǎo)出為CSV文件。
如果您還沒(méi)有Google Cloud Platform(GCP)帳戶,則可以在此處創(chuàng)建一個(gè)。 最初注冊(cè)時(shí),您將獲得$ 300的免費(fèi)信用額度,足以試用以下示例。
進(jìn)入GCP后,從下拉菜單導(dǎo)航至BigQuery網(wǎng)絡(luò)用戶界面。 如果您是第一次使用GCP,則需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目并使用BigQuery進(jìn)行設(shè)置。 Google快速入門指南在此處提供了很好的概述。
我先前下載的CSV文件可以直接上傳到GCP中以創(chuàng)建表格。
> Image by Author.
您可以通過(guò)單擊邊欄中的表名稱并選擇預(yù)覽來(lái)檢查表中的數(shù)據(jù)。 現(xiàn)在,成人的數(shù)據(jù)就是BigQuery中的數(shù)據(jù)。
> Image by Author.
要針對(duì)這些數(shù)據(jù)訓(xùn)練模型,我們只需編寫(xiě)一個(gè)SQL查詢,該查詢從表中選擇所有內(nèi)容(*),將目標(biāo)變量(收入)重命名為label,并添加邏輯以創(chuàng)建名為" adults_log_reg"的邏輯回歸模型。
有關(guān)所有模型選項(xiàng),請(qǐng)參見(jiàn)此處的文檔。
CREATE MODEL `mydata.adults_log_reg`
OPTIONS(model_type='logistic_reg') AS
SELECT *,
ad.income AS label
FROM
`mydata.adults_data` ad
如果我們單擊現(xiàn)在將出現(xiàn)在數(shù)據(jù)表旁邊的側(cè)欄中的模型,則可以看到對(duì)訓(xùn)練效果的評(píng)估。
> Image by Author.
現(xiàn)在我們可以使用模型使用ML.PREDICT函數(shù)進(jìn)行預(yù)測(cè)。
Fastai
眾所周知,諸如Tensorflow之類的流行深度學(xué)習(xí)框架具有陡峭的學(xué)習(xí)曲線,對(duì)于初學(xué)者或非數(shù)據(jù)科學(xué)家而言,可能很難起步并運(yùn)行它。 fastai庫(kù)提供了一個(gè)高級(jí)API,使您可以用幾行簡(jiǎn)單的代碼來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
Fastai與Pytorch一起使用,因此您需要先安裝這兩個(gè)庫(kù),然后才能使用它。
pip install pytorch
pip install fastai
fastai庫(kù)具有用于處理結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)(例如文本或圖像)的模塊。 在本教程中,我們將使用fastai.tabular.all模塊來(lái)解決我們之前使用的葡萄酒數(shù)據(jù)集的分類任務(wù)。
類似于PyCaret,fastai將通過(guò)嵌入層對(duì)非數(shù)字?jǐn)?shù)據(jù)類型執(zhí)行預(yù)處理。 為了準(zhǔn)備數(shù)據(jù),我們使用TabularDataLoaders幫助器函數(shù)。 在這里,我們具體說(shuō)明了數(shù)據(jù)框的名稱,列的數(shù)據(jù)類型以及我們要模型執(zhí)行的預(yù)處理步驟。
要訓(xùn)練神經(jīng)網(wǎng)絡(luò),我們只需使用tabular_learner()函數(shù),如下所示。
dl = TabularDataLoaders.from_df(data, y_names="type",
cat_names = ['quality'],
cont_names = ['fixed acidity', 'volatile acidity',
'citric acid', 'residual sugar',
'chlorides', 'free sulfur dioxide',
'total sulfur dioxide', 'density',
'pH', 'sulphates', 'alcohol'],
procs = [Categorify, FillMissing, Normalize])
運(yùn)行此代碼后,將顯示性能指標(biāo)。
> Image by Author.
要使用模型進(jìn)行預(yù)測(cè),您可以簡(jiǎn)單地使用learning.predict(df.iloc [0])。
探索fastai庫(kù)的更多信息,請(qǐng)參見(jiàn)此處的文檔。
謝謝閱讀!
(本文翻譯自Rebecca Vickery的文章《Low Effort Machine Learning Tools》,參考:https://towardsdatascience.com/low-effort-machine-learning-tools-9622d7d57135)
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。