首頁 >後端開發 >Python教學 >自動機器學習Python等效程式碼解釋

自動機器學習Python等效程式碼解釋

PHPz
PHPz轉載
2023-08-22 20:25:101179瀏覽

自動機器學習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 程式碼

現在讓我們使用Auto-sklearn更詳細地檢查AutoML程式碼。我們將使用scikit-learn中的數字資料集,這是一個手寫數字的資料集。預測從數位圖片中的數字是目標。這是程式碼 -

Program

的中文翻譯為:

程式

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分類模型,導入autosklearn.classification模組。

  • 從sklearn.datasets導入load_digits函數:這將從sklearn.datasets套件中導入MNIST資料集的load_digits函式。

  • 從sklearn中選擇模型。 MNIST資料集使用sklearn.model selection模組中的train test split函數分為訓練集和測試集,這裡進行了導入。

  • 載入了MNIST資料集,輸入特徵儲存在X中,對應的標籤儲存在y中。 X, y = load_digits(return_X_y=True):這將載入MNIST資料集。

  • X訓練集、X測試集、y訓練集、y測試集= train_test_split(X, y, random_state=1)

  • 將資料集依照75:25的比例分成訓練集和測試集,並將隨機種子設為1以確保可重複性
  • Automl等同於autosklearn.classification。 AutoSklearnClassifier(每次運行時間限制=30,此任務剩餘時間=180):將在MNIST資料集上訓練的AutoML模型形成為AutoSklearnClassifier類別的實例。每次運行時間限製表示每個單獨模型可以運行的最長時間(以秒為單位),而此任務的剩餘時間表示AutoML過程可以運行的最長時間(以秒為單位)。

  • 使用 automl.fit 函數(X train, y train),透過訓練集 X train 和相關標籤 Y train 訓練 AutoSklearnClassifier 模型。

  • accuracy:", print(X test, y test), automl.score 這確定了AutoSklearnClassifier模型在評估其在X test和Y test相關標籤上的性能後,在測試集上的準確性.score方法給出了模型在給定資料集上的準確性。

#上述程式碼實現了AutoML方法,這是一種機器學習技術,可以自動化模型建立過程的每一步,包括特徵選擇、超參數調整和資料準備。即使是非專家也可以藉助AutoML創建強大的模型,這減少了創建機器學習模型所需的人工工作量。

首先,將所需的函式庫,如pandas,numpy,sklearn和tpot,匯入到程式碼中。 Sklearn用於機器學習任務,如資料預處理、模型選擇和評估,Pandas用於資料操作,NumPy用於數值計算。實作AutoML演算法的主要函式庫是TPOT。

接著使用pandas的read_csv函數載入資料集,並將輸入特徵和輸出標籤分開儲存在不同的變數中。 'y'變數保存輸出的標籤,而'X'變數儲存輸入的特徵。

為了適應資料並產生機器學習模型,程式碼首先載入資料集,然後建立TPOTRegressor類別的一個實例。 TPOTRegressor類是TPOTBase類別的子類,使用遺傳演算法選擇特徵和調整超參數。 TPOTRegressor類別處理迴歸問題,而TPOTClassifier類別處理分類問題。

使用Sklearn的train-test-split方法將資料集分為訓練集和測試集。這是機器學習中常見的做法,將資料分為兩個集合:一個用於擬合模型的訓練集,一個用於評估模型效能的測試集。

一旦資料被分割,TPOTRegressor實例的fit方法被調用,該方法會根據訓練資料調整模型。透過fit技術,使用遺傳演算法找到給定資料的最佳特徵子集和超參數。然後將最佳模型返回。

然後,透過使用評分方法,程式碼對模型在測試集上的表現進行評估,以確定模型的準確性。準確度分數表示模型與資料的適合程度,數值越接近1表示適合程度越好。

最佳模型隨後使用匯出函數匯出到Python檔案中,同時附帶其在測試集上的準確度得分。

結論

總之,Auto-sklearn是一個強大的函式庫,可以簡化機器學習模型的建立和改進過程。透過自動尋找給定資料集的最佳模型和超參數,它可以節省時間和精力。本教學介紹如何在Python中使用Auto-sklearn,包括安裝它、匯入資料、準備資料、建立和訓練模型以及評估模型效能的指導。即使是新手也可以使用Auto-sklearn快速簡單地創建強大的機器學習模型。

以上是自動機器學習Python等效程式碼解釋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除