自動機器學習 Python 等效程式碼詳解
介紹
機器學習是一個快速發展的領域,不斷湧現新的技術和演算法。然而,建立和改進機器學習模型可能是一項耗時且具有挑戰性的任務,需要很高的專業知識。自動化機器學習,通常稱為 AutoML,旨在透過自動化許多勞動密集型的任務(例如特徵工程、超引數調整和模型選擇)來簡化機器學習模型的建立和最佳化過程。
Auto-sklearn 是一個強大的開源自動化機器學習框架,構建於 Python 中最著名的機器學習庫之一 scikit-learn 之上。它使用貝葉斯最佳化和元學習有效地搜尋潛在機器學習管道的空間,並自動為給定的資料集找到最佳模型和超引數。本教程將介紹在 Python 中使用 Auto-sklearn 的方法,包括安裝說明、資料匯入、資料準備、模型建立和訓練以及模型效能評估。即使是新手,也可以使用 Auto-sklearn 快速輕鬆地建立強大的機器學習模型。
處理 Node-RED 中錯誤的方法
Auto-sklearn
高效的開源軟體程式 Auto-sklearn 自動化了機器學習模型的建立和持續改進。它基於著名的機器學習程式 scikit-learn,使用貝葉斯最佳化和元學習自動找到特定資料集的最佳模型和超引數,從而提高效率。
autosklearn 為分類和迴歸問題建立的眾多應用中,只有少數幾個包括自然語言處理、影像分類和時間序列預測。
該庫透過搜尋潛在機器學習管道的集合來工作,這些管道包括特徵工程、模型選擇和資料準備過程。它使用貝葉斯最佳化有效地搜尋這個空間,並透過使用元學習從之前的實驗中學習來不斷改進其搜尋效率。
此外,Auto-sklearn 提供了許多強大的功能,包括動態整合選擇、自動模型整合和主動學習。此外,它還提供易於使用的 API 用於構建、測試和訓練模型。
AutoML 程式碼
現在讓我們更詳細地研究 AutoML 程式碼,使用 Auto-sklearn。我們將使用 scikit-learn 中的手寫數字資料集,這是一個手寫數字的資料集。目標是從數字的影像預測數字。這是程式碼:
程式
import autosklearn.classification
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
# Load the dataset
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
# Create and fit the AutoML model
automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=180, per_run_time_limit=30)
automl.fit(X_train, y_train)
# Evaluate the model on the test set
print("Accuracy:", automl.score(X_test, y_test))
輸出
Accuracy: 0.9866666666666667
程式碼解釋
此程式使用自動化機器學習 (AutoML) 對 MNIST 資料集中的手寫數字進行分類,其中包括使用 Auto-sklearn 模組。以下是程式碼的簡要概述:
從 autosklearn.classification 模組匯入 AutoSklearnClassifier 類,該模組包含將要使用的 AutoML 分類模型。
來自 sklearn.datasets import load_digits:這從 sklearn.datasets 包匯入 MNIST 資料集的 load_digits 函式。
來自 sklearn.model_selection 的模型選擇:此處匯入 sklearn.model_selection 模組中的 train_test_split 函式,用於將 MNIST 資料集劃分為訓練集和測試集。
載入 MNIST 資料集,輸入特徵儲存在 X 中,相應的標籤儲存在 y 中。X, y = load_digits(return_X_y=True):這載入了 MNIST 資料集。
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1) 將資料集以 75:25 的比例劃分為訓練集和測試集,並將隨機種子設定為 1 以確保可重複性。
automl = autosklearn.classification.AutoSklearnClassifier(per_run_time_limit=30, time_left_for_this_task=180):透過將此作為 AutoSklearnClassifier 類的例項來形成將要對 MNIST 資料集進行訓練的 AutoML 模型。每個執行的時間限制表示每個單個模型可以執行的最長時間(以秒為單位),而此任務的剩餘時間表示 AutoML 過程可以執行的最長時間(以秒為單位)。
透過使用 automl.fit(X_train, y_train) 函式,使用訓練集 X_train 和相關的標籤 Y_train 訓練 AutoSklearnClassifier 模型。
accuracy:", print(X_test, y_test), automl.score:在評估其在 X_test 和 Y_test 相關標籤上的效能後,這確定了 AutoSklearnClassifier 模型在測試集上的準確性。score 方法給出模型在給定資料集上的準確性。
上述程式碼實現了 AutoML 方法,這是一種機器學習技術,它自動化了模型構建過程的每個步驟,包括特徵選擇、超引數調整和資料準備。AutoML 減少了建立機器學習模型所需的人工工作量,即使是非專家也可以建立強大的模型。
程式碼首先匯入必要的庫,例如 pandas、numpy、sklearn 和 tpot。Pandas 用於資料操作,NumPy 用於數值計算,Sklearn 用於機器學習任務,例如資料預處理、模型選擇和評估。TPOT 是用於實現 AutoML 演算法的主要庫。
然後,使用 pandas read_csv 函式載入資料集,並將輸入特徵和輸出標籤分離到不同的變數中。'y' 變數儲存輸出的標籤,而 'X' 變數儲存輸入的特徵。
為了擬合數據並生成機器學習模型,程式碼首先載入資料集,然後建立一個 TPOTRegressor 類的例項。TPOTRegressor 是 TPOTBase 類的子類,它使用遺傳演算法來選擇特徵和調整超引數。TPOTRegressor 類處理迴歸問題,而 TPOTClassifier 類處理分類問題。
使用 Sklearn 的 train_test_split 方法將資料集劃分為訓練集和測試集。根據機器學習中的常見做法,資料被劃分為兩個集合:一個訓練集用於擬合模型,一個測試集用於評估模型的效能。
資料劃分後,呼叫 TPOTRegressor 例項的 fit 方法,該方法將模型擬合到訓練資料。fit 方法使用遺傳演算法找到給定資料的最佳特徵子集和超引數。然後返回最佳模型。
然後,程式碼使用 scoring 方法評估模型在測試集上的效能,該方法確定模型的準確性。準確性得分表示模型擬合數據的程度,數值越接近 1 表示擬合越好。
然後,使用 export 函式將最佳模型匯出到 python 檔案,以及其在測試集上的準確性得分。
結論
總而言之,Auto-sklearn 是一個強大的庫,它簡化了機器學習模型的建立和改進過程。透過自動搜尋給定資料集的最佳模型和超引數,它可以節省時間和精力。本教程介紹了在 Python 中使用 Auto-sklearn 的方法,包括安裝說明、資料匯入、資料準備、模型建立和訓練以及模型效能評估。即使是新手,也可以使用 Auto-sklearn 快速輕鬆地建立強大的機器學習模型。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP