Pengekodan Label Merentasi Pelbagai Lajur dalam Scikit-Learn
Apabila berurusan dengan berbilang lajur data kategori dalam DataFrame, ia boleh membosankan dan tidak cekap untuk mencipta objek LabelEncoder individu untuk setiap lajur. Isu ini biasanya timbul apabila bekerja dengan set data yang mengandungi banyak lajur data kategori berasaskan rentetan.
Perihalan Masalah:
Percubaan untuk menggunakan satu objek LabelEncoder pada keseluruhan DataFrame mengakibatkan ralat, seperti yang ditunjukkan dalam coretan kod yang disediakan. Mesej ralat, "bentuk input buruk (6, 3), menunjukkan bahawa LabelEncoder menjangkakan tatasusunan nilai 1D, bukan DataFrame dengan berbilang lajur.
Penyelesaian:
Untuk mengatasi isu ini, adalah disyorkan untuk memanfaatkan kaedah apply() panda. Penyelesaian elegan ini melibatkan penggunaan LabelEncoder kaedah fit_transform() kepada setiap lajur dalam DataFrame Begini caranya:
df.apply(LabelEncoder().fit_transform)
Pendekatan ini berulang melalui setiap lajur, menggunakan transformasi LabelEncoder dan mengembalikan DataFrame baharu dengan nilai yang dikodkan.
Tambahan Pertimbangan:
Alternatif Disyorkan:
Dalam Scikit-Learn versi 0.20 dan lebih baru, OneHotEncoder disyorkan sebagai alternatif yang lebih cekap kepada LabelEncoder untuk data rentetan. Ia menyokong pengekodan satu panas secara langsung, yang selalunya merupakan perwakilan pilihan untuk data kategori dalam model pembelajaran mesin.
OneHotEncoder().fit_transform(df)
Dengan memanfaatkan teknik ini, pengamal boleh mengendalikan pengekodan label dengan cekap untuk berbilang lajur kategori berasaskan rentetan data, memudahkan penyediaan set data untuk analisis pembelajaran mesin.
Atas ialah kandungan terperinci Bagaimana untuk Melabelkan dengan Cekap Mengekod Berbilang Lajur dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!