Scikit-learn: çok sütunlu etiket kodlamasını kullanın
Makine öğrenmesinde etiket kodlama , kategorik bir değişkenin değerlerini tam sayı değerlerine dönüştürme işlemidir.
Örneğin, aşağıdaki ekran görüntüsü Team adı verilen kategorik bir değişkenin her benzersiz değerinin, alfabetik sıraya göre bir tamsayı değerine nasıl dönüştürüleceğini gösterir:
Python’da çok sütunlu etiket kodlaması gerçekleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:
from sklearn. preprocessing import LabelEncoder #perform label encoding on col1, col2 columns df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Python’da etiketleri kodlamak
Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:
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
Team , pozisyon ve all_star sütunlarındaki her kategorik değeri tam sayı değerlerine dönüştürmek amacıyla etiket kodlaması gerçekleştirmek için aşağıdaki kodu kullanabiliriz:
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
Sonuçta takım , pozisyon ve all_star sütunlarındaki her bir değerin tam sayı değerlerine dönüştürüldüğünü görebiliriz.
Örneğin, ekip sütununda şunları görebiliriz:
- Her “A” değeri 0’a dönüştürülmüştür.
- Her “B” değeri 1’e dönüştürülmüştür.
- Her “C” değeri 2’ye dönüştürüldü.
- Her “D” değeri 3’e dönüştürüldü.
Bu örnekte, DataFrame’in üç sütununda etiket kodlaması gerçekleştirdiğimizi, ancak etiket kodlamasını istediğimiz sayıda kategorik sütunda gerçekleştirmek için benzer sözdizimini kullanabileceğimizi unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandas’ta kategorik bir değişken sayısala nasıl dönüştürülür?
Pandalarda boole değerleri tamsayı değerlerine nasıl dönüştürülür?
Pandalarda dizeleri sayı olarak kodlamak için faktörize() nasıl kullanılır?