Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-11-11 02:53:02
asal
1027 orang telah melayarinya

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)
Salin selepas log masuk

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

OneHotEncoder().fit_transform(df)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan