BaşlayınÜcretsiz Başlayın

String'ler ve kategoriler

Bildiğin gibi, Spark modelleme için sayısal veriler gerektirir. Şimdiye kadar bu bir sorun değildi; hatta boolean sütunlar bile kolayca tamsayıya çevrilebilir. Ama modelinde hava yolu şirketini ve uçağın varış noktasını da özellik olarak kullanacaksın. Bunlar string olarak kodlanmış ve bunları sayısal bir veri tipine dönüştürmenin bariz bir yolu yok.

Neyse ki, PySpark'ın pyspark.ml.features alt modülünde bunu ele alan işlevler var. Her uçuşun hava yolu şirketini ve varış noktasını temsil etmek için 'one-hot vektörler' oluşturabilirsin. Bir one-hot vektör, kategorik bir özelliği temsil etmenin bir yoludur; her gözlem için, tüm elemanları sıfır olan ve en fazla bir elemanı bir (1) değerine sahip olan bir vektör bulunur.

Vektördeki her eleman, özelliğin bir seviyesine karşılık gelir; böylece vektörde hangisi bir (1) ise doğru seviyeyi anlayabilirsin.

Kategorik özelliğini kodlamanın ilk adımı bir StringIndexer oluşturmaktır. Bu sınıfın üyeleri, bir DataFrame içindeki bir string sütunu alıp her benzersiz string'i bir sayıya eşleyen Estimatorlardır. Ardından, Estimator bir Transformer döndürür; bu da bir DataFrame alır, eşlemeyi metadata olarak ekler ve string sütuna karşılık gelen sayısal bir sütuna sahip yeni bir DataFrame döndürür.

İkinci adım, bu sayısal sütunu bir OneHotEncoder kullanarak one-hot vektör olarak kodlamaktır. Bu, bir Estimator ve ardından bir Transformer oluşturarak StringIndexer ile tam olarak aynı şekilde çalışır. Sonuçta, kategorik özelliğini Machine Learning rutinleri için uygun bir vektör olarak kodlayan bir sütun elde edersin!

Karmaşık görünebilir ama endişelenme! Hatırlaman gereken tek şey bir StringIndexer ve bir OneHotEncoder oluşturman; gerisini Pipeline halleder.

Neden bir kategorik özelliği one-hot vektör olarak kodlamak zorundasın?

Bu egzersiz

PySpark Temelleri

kursunun bir parçasıdır
Kursu Görüntüle

Uygulamalı interaktif egzersiz

İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün

Egzersizi başlat