Scikit-learn: menggunakan pengkodean label multi-kolom


Dalam pembelajaran mesin, pengkodean label adalah proses mengubah nilai variabel kategori menjadi nilai integer.

Misalnya, tangkapan layar berikut menunjukkan cara mengonversi setiap nilai unik dari variabel kategori yang disebut Tim menjadi nilai bilangan bulat berdasarkan urutan abjad:

Anda dapat menggunakan sintaks berikut untuk melakukan pengkodean label multi-kolom dengan Python:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding on col1, col2 columns
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: pengkodean label dengan Python

Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang berbagai pemain bola basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
                   ' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12

Kita dapat menggunakan kode berikut untuk melakukan pengkodean label guna mengonversi setiap nilai kategorikal di kolom team , position , dan all_star menjadi nilai integer:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding across team, position, and all_star columns
df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform )

#view udpated DataFrame
print (df)

   team position all_star points
0 0 1 1 11
1 0 0 0 8
2 1 1 1 10
3 1 0 1 6
4 1 0 1 6
5 2 1 0 5
6 2 1 1 9
7 3 0 0 12

Dari hasilnya terlihat bahwa setiap nilai kolom team , position dan all_star telah diubah menjadi nilai integer.

Misalnya pada kolom tim kita dapat melihat:

  • Setiap nilai “A” telah dikonversi menjadi 0 .
  • Setiap nilai “B” telah dikonversi menjadi 1 .
  • Setiap nilai “C” dikonversi menjadi 2 .
  • Setiap nilai “D” dikonversi menjadi 3 .

Perhatikan bahwa dalam contoh ini kita telah melakukan pengkodean label pada tiga kolom DataFrame, namun kita dapat menggunakan sintaks serupa untuk melakukan pengkodean label pada kolom kategorikal sebanyak yang kita inginkan.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya dengan Python:

Cara mengonversi variabel kategorikal menjadi numerik di Pandas
Cara mengubah nilai boolean menjadi nilai integer di Pandas
Cara menggunakan factorize() untuk menyandikan string sebagai angka di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *