Mean encoding là gì?
- ★
- ★
- ★
- ★
- ★
Mean encoding trong học máy (machine leanring) là một loại của encoding. Trong phương pháp mean encoding, chúng ta sẽ chuyển đổi các giá trị của biến phân loại (categorical variable) thành giá trị trung bình (mean) dựa trên đầu ra (output) của chúng.
Ví dụ tạo DataFrame có hai đặc trưng (feature) được đặt tên là SubjectName và Target và chúng ta có thể thấy rằng Subject là đặc trưng phân loại (categorical feature), vì vậy chúng ta đã chuyển đổi nó thành đặc trưng số (numerical feature) bằng cách áp dụng mean encoding.
# importing libraries
import pandas as pd
# creating dataset
data={'SubjectName':['s1','s2','s3','s1','s4','s3','s2','s1','s2','s4','s1'],
'Target':[1,0,1,1,1,0,0,1,1,1,0]}
df = pd.DataFrame(data)
print(df)
Output:
SubjectName Target
0 s1 1
1 s2 0
2 s3 1
3 s1 1
4 s4 1
5 s3 0
6 s2 0
7 s1 1
8 s2 1
9 s4 1
10 s1 0
Code : Đếm mọi điểm dữ liệu (data point) trong SubjectName
df.groupby(['SubjectName'])['Target'].count()
Output:
subjectName s1 4 s2 3 s3 2 s4 2 Name: Target, dtype: int64
Code: groupby dữ liệu với SubjectName với giá trị trung bình theo giá trị mục tiêu (target value) dương của chúng
df.groupby(['SubjectName'])['Target'].mean()
Output:
subjectName s1 0.750000 s2 0.333333 s3 0.500000 s4 1.000000 Name: Target, dtype: float64
Đầu ra hiển thị giá trị trung bình được ánh xạ (map) với điểm dữ liệu trong SubjectName với giá trị mục tiêu dương của chúng (1-dương và 0-âm).
Code: Cuối cùng chỉ định giá trị trung bình và ánh xạ với df ['SubjectName']
Mean_encoded_subject = df.groupby(['SubjectName'])['Target'].mean().to_dict()
df['SubjectName'] = df['SubjectName'].map(Mean_encoded_subject)
print(df)
Output:
SubjectName Target
0 0.750000 1
1 0.333333 0
2 0.500000 1
3 0.750000 1
4 1.000000 1
5 0.500000 0
6 0.333333 0
7 0.750000 1
8 0.333333 1
9 1.000000 1
10 0.750000 0
Learning English Everyday