1. 程式人生 > 實用技巧 >低程式碼機器學習工具

低程式碼機器學習工具

機器學習有潛力幫助解決企業和整個世界範圍內的各種問題。通常,要開發機器學習模型並將該模型部署到可以在操作上使用的狀態,需要對程式設計有深入的瞭解,並且需要充分了解其背後的演算法。

這將機器學習的使用限制在一小部分人中,因此也限制了可以解決的問題數量。

幸運的是,在過去的幾年中,湧現了許多庫和工具,這些庫和工具減少了模型開發所需的程式碼量,或者在某些情況下完全消除了程式碼開發。 這為非資料科學家(如分析師)發揮了利用機器學習功能的潛力,並允許資料科學家更快地對模型進行原型製作。

這是一些我最喜歡的用於機器學習的低程式碼工具。

PyCaret

PyCaret是Python的包裝器,用於流行的機器學習庫,例如Scikit-learn和XGBoost。 它使僅需幾行程式碼就能將模型開發為可部署狀態。

可以通過pip安裝Pycaret。 有關更詳細的安裝說明,請參閱PyCaret文件。


  1. pipinstallpycaret

PyCaret具有公共資料集的儲存庫,可以使用pycaret.datasets模組直接安裝。 完整列表可在此處找到,但出於本教程的目的,我們將使用一個非常簡單的資料集來解決稱為"葡萄酒"資料集的分類任務。

PyCaret庫包含一組模組,用於解決所有常見的機器學習問題,其中包括:

  • 分類。
  • 迴歸。
  • 聚類。
  • 自然語言處理。
  • 關聯規則挖掘。
  • 異常檢測。

要建立分類模型,我們需要使用pycaret.classification模組。 建立模型非常簡單。 我們只需呼叫將Model ID作為引數的create_model()函式即可。 您可以在此處找到支援的型號及其對應ID的完整列表。 或者,您可以在匯入適當的模組後執行以下程式碼以檢視可用模型的列表。


  1. frompycaret.classificationimport*
  2. models()

> A snapshot of models available for classification. Image by Author.

在呼叫create_model()之前,您首先需要呼叫setup()函式來為您的機器學習實驗指定適當的引數。 在這裡,您可以指定諸如測試序列拆分的大小以及是否在實驗中實施交叉驗證之類的內容。


  1. frompycaret.classificationimport*
  2. rf=setup(datadata=data,
  3. target='type',
  4. train_size=0.8)
  5. rf_model=create_model('rf')

create_model()函式將自動推斷資料型別並使用預設方法處理這些資料型別。 執行create_model()時,您將收到以下輸出,其中顯示了推斷的資料型別。

低程式碼機器學習工具

> Image by Author.

PyCaret將使用一組預設的預處理技術來處理諸如分類變數和估算缺失值之類的事情。 但是,如果您需要更定製的資料解決方案,則可以在模型設定中將它們指定為引數。 在下面的示例中,我更改了numeric_imputation引數以使用中位數。


  1. frompycaret.classificationimport*
  2. rf=setup(datadata=data,
  3. target='type',
  4. numeric_imputation='median')
  5. rf_model=create_model('rf')

對引數滿意後,請按Enter鍵,模型將最終確定並顯示效能結果網格。

低程式碼機器學習工具

> Image by Author.

PyCaret還具有plot_model()函式,該函式顯示模型效能的圖形表示。


  1. plot_model(rf_model)

低程式碼機器學習工具

> Image by Author.

本教程剛剛展示了使用PyCaret庫進行模型訓練的基礎。 還有更多功能和模組可提供完整的低碼機器學習解決方案,包括功能工程,模型調整,永續性和部署。

BigQuery ML

Google在2018年釋出了一個名為BigQuery ML的新工具。 BigQuery是Google的雲資料倉庫解決方案,旨在為資料分析師和科學家提供快速訪問大量資料的途徑。 BigQuery ML是一種工具,可讓僅使用SQL從BigQuery資料倉庫直接開發機器學習模型。

自從釋出以來,BigQueryML已經發展到可以支援大多數常見的機器學習任務,包括分類,迴歸和聚類。 您甚至可以匯入自己的Tensforflow模型以在工具中使用。

根據我自己的經驗,BigQueryML是用於加速模型原型製作的極其有用的工具,並且還可以用作基於生產的系統來解決簡單的問題。

為了簡要介紹該工具,我將使用稱為成人收入資料集的資料集來說明如何在BigQueryML中建立和評估邏輯迴歸分類模型。

該資料集可以在UCI機器學習儲存庫中找到,我正在使用以下Python程式碼以CSV檔案的形式下載。


  1. url_data='https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'
  2. column_names=['age','workclass','fnlwgt','education','educational-num','marital-status',
  3. 'occupation','relationship','race','gender','capital-gain','capital-loss',
  4. 'hours-per-week','native-country','income']
  5. adults_data=pd.read_csv(url_data,names=column_names)
  6. adults_data.to_csv('adults_data.csv')

這是一個指令碼,用於下載資料並匯出為CSV檔案。

如果您還沒有Google Cloud Platform(GCP)帳戶,則可以在此處建立一個。 最初註冊時,您將獲得$ 300的免費信用額度,足以試用以下示例。

進入GCP後,從下拉選單導航至BigQuery網路使用者介面。 如果您是第一次使用GCP,則需要建立一個專案並使用BigQuery進行設定。 Google快速入門指南在此處提供了很好的概述。

我先前下載的CSV檔案可以直接上傳到GCP中以建立表格。

低程式碼機器學習工具

> Image by Author.

您可以通過單擊邊欄中的表名稱並選擇預覽來檢查表中的資料。 現在,成人的資料就是BigQuery中的資料。

低程式碼機器學習工具

> Image by Author.

要針對這些資料訓練模型,我們只需編寫一個SQL查詢,該查詢從表中選擇所有內容(*),將目標變數(收入)重新命名為label,並新增邏輯以建立名為" adults_log_reg"的邏輯迴歸模型。

有關所有模型選項,請參見此處的文件。


  1. CREATEMODEL`mydata.adults_log_reg`
  2. OPTIONS(model_type='logistic_reg')AS
  3. SELECT*,
  4. ad.incomeASlabel
  5. FROM
  6. `mydata.adults_data`ad

如果我們單擊現在將出現在資料表旁邊的側欄中的模型,則可以看到對訓練效果的評估。

低程式碼機器學習工具

> Image by Author.

現在我們可以使用模型使用ML.PREDICT函式進行預測。

Fastai

眾所周知,諸如Tensorflow之類的流行深度學習框架具有陡峭的學習曲線,對於初學者或非資料科學家而言,可能很難起步並執行它。 fastai庫提供了一個高階API,使您可以用幾行簡單的程式碼來訓練神經網路。

Fastai與Pytorch一起使用,因此您需要先安裝這兩個庫,然後才能使用它。


  1. pipinstallpytorch
  2. pipinstallfastai

fastai庫具有用於處理結構化資料和非結構化資料(例如文字或影象)的模組。 在本教程中,我們將使用fastai.tabular.all模組來解決我們之前使用的葡萄酒資料集的分類任務。

類似於PyCaret,fastai將通過嵌入層對非數字資料型別執行預處理。 為了準備資料,我們使用TabularDataLoaders幫助器函式。 在這裡,我們具體說明了資料框的名稱,列的資料型別以及我們要模型執行的預處理步驟。

要訓練神經網路,我們只需使用tabular_learner()函式,如下所示。


  1. dl=TabularDataLoaders.from_df(data,y_names="type",
  2. cat_names=['quality'],
  3. cont_names=['fixedacidity','volatileacidity',
  4. 'citricacid','residualsugar',
  5. 'chlorides','freesulfurdioxide',
  6. 'totalsulfurdioxide','density',
  7. 'pH','sulphates','alcohol'],
  8. procs=[Categorify,FillMissing,Normalize])

執行此程式碼後,將顯示效能指標。

低程式碼機器學習工具

> Image by Author.

要使用模型進行預測,您可以簡單地使用learning.predict(df.iloc [0])。