Etiket kodlama

Python'da Kategorik Verilerle Çalışma

Kasey Jones

Research Data Scientist

Etiket kodlama nedir?

Temeller:

  • Her kategoriyi 0 ile n - 1 arasında bir tamsayıyla kodlar; burada n kategori sayısıdır
  • Eksik değerler için -1 ayrılmıştır
  • Bellekten tasarruf sağlar
  • Anketlerde sık kullanılır

Dezavantajı:

  • Makine öğrenimi için en iyi yöntem değildir (sonraki derse bakın)
Python'da Kategorik Verilerle Çalışma

Kod oluşturma

Kategorik tipe çevirin ve üretici adına göre sıralayın

used_cars['manufacturer_name'] = used_cars['manufacturer_name'].astype("category")

.cat.codes kullanın

used_cars['manufacturer_code'] = used_cars['manufacturer_name'].cat.codes
Python'da Kategorik Verilerle Çalışma

Çıktıyı kontrol et

print(used_cars[['manufacturer_name', 'manufacturer_code']])
      manufacturer_name  manufacturer_code
0                Subaru                 45
1                Subaru                 45
2                Subaru                 45
...                 ...                ...
38526          Chrysler                  8
38527          Chrysler                  8
Python'da Kategorik Verilerle Çalışma

Kod kitapları / veri sözlükleri

American Housing Survey'den bir kod kitabı örneği.

1 https://www.census.gov/data-tools/demo/codebook/ahs/ahsdict.html
Python'da Kategorik Verilerle Çalışma

Kod kitabı oluşturma

codes = used_cars['manufacturer_name'].cat.codes
categories = used_cars['manufacturer_name']
name_map = dict(zip(codes, categories))

print(name_map)
{45: 'Subaru',
 24: 'LADA',
 12: 'Dodge',
 ...
}
Python'da Kategorik Verilerle Çalışma

Kod kitabı kullanma

Kodları oluşturma:

used_cars['manufacturer_code'] = used_cars['manufacturer_name'].cat.codes

Önceki değerlere döndürme:

used_cars['manufacturer_code'].map(name_map)
0        Acura
1        Acura
2        Acura
...
1 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html
Python'da Kategorik Verilerle Çalışma

Boolean kodlama

İçinde "van" geçen tüm gövde türlerini bulun:

# Önceki dersten kod:
used_cars["body_type"].str.contains("van", regex=False)

Boolean kodlama oluşturun:

used_cars["van_code"] = np.where(
  used_cars["body_type"].str.contains("van", regex=False), 1, 0)

used_cars["van_code"].value_counts()
0    34115
1     4416
Name: van_code, dtype: int64
Python'da Kategorik Verilerle Çalışma

Kodlama alıştırması

Python'da Kategorik Verilerle Çalışma

Preparing Video For Download...