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