Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melakukan Pengekodan Label Merentas Berbilang Lajur dalam Scikit-Learn?

Bagaimana untuk Melakukan Pengekodan Label Merentas Berbilang Lajur dalam Scikit-Learn?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-11 02:53:021025semak imbas

How to Perform Label Encoding Across Multiple Columns in Scikit-Learn?

Pengekodan Label merentas Berbilang Lajur dalam Scikit-Learn

Apabila berurusan dengan set data yang mengandungi berbilang lajur data kategori, ia menjadi perlu untuk mengekod ini label secara berangka untuk digunakan dalam algoritma pembelajaran mesin. Scikit-learn menyediakan kelas LabelEncoder untuk tujuan ini. Walau bagaimanapun, penggunaannya secara langsung pada DataFrame dengan banyak lajur (cth., 50) boleh menyebabkan ralat disebabkan bentuk input yang salah.

Untuk mengatasi cabaran ini, cara yang elegan untuk melaksanakan pengekodan label merentas semua lajur secara serentak ialah:

df.apply(LabelEncoder().fit_transform)

Sebagai alternatif, terutamanya untuk scikit-learn versi 0.20 dan ke atas, pertimbangkan untuk menggunakan OneHotEncoder:

OneHotEncoder().fit_transform(df)

OneHotEncoder secara asli menyokong input rentetan dan menjana vektor berkod satu panas .

Sebagai alternatif, jika anda memerlukan kawalan ke atas kejadian LabelEncoder untuk lajur yang berbeza atau hanya perlu mengekod subset lajur, anda boleh menggunakan ColumnTransformer:

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder

transformer = ColumnTransformer(
    transformers=[('labels', LabelEncoder(), ['column1', 'column2'])],
)

transformed_data = transformer.fit_transform(df)

Dengan menggunakan ColumnTransformer, anda boleh nyatakan lajur untuk dikodkan dan kekalkan kejadian LabelEncoder yang berasingan, membolehkan lebih fleksibiliti dalam penyediaan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengekodan Label Merentas Berbilang Lajur dalam Scikit-Learn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn