首頁 >後端開發 >Python教學 >機器學習中的標籤編碼

機器學習中的標籤編碼

王林
王林原創
2024-08-23 06:01:081236瀏覽

標籤編碼是機器學習中最常用的技術之一。它用於將分類資料轉換為數字形式。因此,數據可以擬合到模型中。

讓我們了解為什麼我們使用標籤編碼。想像一下,資料包含 string 形式的基本欄位。但是,您無法將這些數據放入模型中,因為建模僅適用於數值數據,我們該怎麼辦?這是一種挽救生命的技術,當我們準備好資料進行擬合時,它會在預處理步驟中進行評估,即標籤編碼

我們將使用 Scikit-Learn 庫中的 iris 資料集來了解標籤編碼器的工作原理。確保您安裝了以下庫。

pandas
scikit-learn

要安裝為庫,請執行以下命令:

$ python install -U pandas scikit-learn

現在打開 Google Colab Notebook,開始編碼學習 Label Encoder。

讓我們編碼吧

  • 先導入以下函式庫:
import pandas as pd
from sklearn import preprocessing
  • 匯入iris資料集,並初始化以供使用:
from sklearn.datasets import load_iris
iris = load_iris()
  • 現在,我們需要選擇想要編碼的數據,我們將對鳶尾花的物種名稱進行編碼。
species = iris.target_names
print(species)

輸出:

array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
  • 讓我們實例化 預處理 中的 LabelEncoder 類別:
label_encoder = preprocessing.LabelEncoder()
  • 現在,我們準備好使用標籤編碼器來擬合資料:
label_encoder.fit(species)

您將輸出類似這樣的內容:

Label Encoding in ML

如果得到此輸出,則表示您已成功擬合資料。但是,問題是如何找出分配給每個物種的值以及分配的順序。

標籤編碼器適合資料的順序儲存在classes_屬性中。編碼從0開始到data_length-1。

label_encoder.classes_

輸出:

array(['setosa', 'versicolor', 'virginica'], dtype='<U10')

標籤編碼器會自動對資料進行排序,並從左側開始編碼。這裡:

setosa -> 0
versicolor -> 1
virginica -> 2
  • 現在,讓我們來測試擬合的數據。我們將改造山鳶尾品種。
label_encoder.transform(['setosa'])

輸出:陣列([0])

再說一遍,如果你改造維吉尼亞幣。

label_encoder.transform(['virginica'])

輸出:陣列([2])

您也可以輸入物種列表,例如["setosa", "virginica"]

標籤編碼器的 Scikit Learn 文件>>

以上是機器學習中的標籤編碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn