Kategorik değerler, veri setlerinde sıklıkla kullanılan bir veri tipidir. Renk, cinsiyet, ürün kategorisi gibi nominal veya sıralı kategorileri temsil etmek için kullanılırlar. Kategorik değerlerin keşfi ve optimize edilmesi, veri analizinin önemli bir parçasıdır.
Kategorik Değerlerin Keşfi:1. Değerlerin Sıklığını İnceleme:2. Eksik Değerleri Kontrol Etme:3. Kategorilerin Dağılımını Görselleştirme:4. Kategoriler Arasındaki İlişkileri İnceleme:Kategorik Değerlerin Optimize Edilmesi:1. Eksik Değerleri Doldurma:2. Kategorileri Kodlama:3. Nadir kategorileri birleştirmek:4. Kardinaliteyi Düşürme:5. Anomali Tespiti ve Düzeltilmesi:6. Encoding Yönteminin Seçimi:
Kategorik Değerlerin Keşfi:
1. Değerlerin Sıklığını İnceleme:
df['kategorik_sutun'].value_counts()
fonksiyonu ile her bir kategorinin sayısını vedf['kategorik_sutun'].unique()
fonksiyonu ile farklı kategorileri listeleyebilirsiniz.- Sıklık analizi:
- En sık ve en az rastlanan kategorileri belirleyin.
- Sıklık dağılımını görselleştirmek için Pareto grafiği veya histogram kullanın.
- Nadir kategorileri (örneklem sayısı az olan) tespit edin ve bunların analizi için özel yöntemler kullanmayı değerlendirin.
2. Eksik Değerleri Kontrol Etme:
df['kategorik_sutun'].isnull().sum()
fonksiyonu ile eksik değerlerin sayısını kontrol edebilirsiniz.- Eksik değer analizi:
- Eksik değerlerin rastgele mi yoksa belirli bir örüntüye göre mi dağıldığını inceleyin.
- Eksik değerlerin olası nedenlerini ve bunların analizi üzerindeki etkilerini değerlendirin.
- Eksik değerleri doldurmak için uygun yöntemler seçin (ortalama, mod, en sık kategori, vb.).
3. Kategorilerin Dağılımını Görselleştirme:
df['kategorik_sutun'].hist()
fonksiyonu ile kategorilerin dağılımını grafiksel olarak inceleyebilirsiniz.- Dağılım analizi:
- Her bir kategorinin dağılımını ve simetrisini inceleyin.
- Farklı kategoriler arasındaki dağılım farklarını ve bunların anlamlarını yorumlayın.
- Kutu grafiği veya dağılım grafiği gibi görselleştirmeler kullanın.
4. Kategoriler Arasındaki İlişkileri İnceleme:
pd.crosstab(df['kategorik_sutun1'], df['kategorik_sutun2'])
fonksiyonu ile iki kategorik değişken arasındaki ilişkiyi gösteren çapraz tablo oluşturabilirsiniz.chi2_test = pd.crosstab(df['kategorik_sutun'], df['hedef_değişken']).chi2_contingency()
kodu ile kategorik ve hedef değişken arasındaki ilişkiyi istatistiksel olarak test edebilirsiniz.- İlişki analizi:
- Kategoriler arasındaki bağımlılık veya ilişki olup olmadığını belirleyin.
- İlişkinin yönünü ve gücünü analiz edin.
- Mosaic plot veya heatmap gibi görselleştirmeler kullanın.
Kategorik Değerlerin Optimize Edilmesi:
1. Eksik Değerleri Doldurma:
- Eksik değerleri en sık kategori, ortalama, mod gibi yöntemlerle doldurabilirsiniz.
- Doldurma yöntemlerinin seçimi:
- Veri setinin özelliklerine ve analiz amacına uygun yöntemler seçin.
- Çoklu imputation gibi gelişmiş yöntemleri de göz önünde bulundurun.
- Eksik değerlerin analiz üzerindeki etkisini minimize etmeye çalışın.
2. Kategorileri Kodlama:
pd.get_dummies()
fonksiyonu ile kategorileri one-hot encoding veya binary encoding gibi yöntemlerle sayısal değerlere dönüştürebilirsiniz.- Kodlama yöntemlerinin seçimi:
- One-hot encoding, kategoriler arasında ilişki olmadığı durumlarda daha uygundur.
- Binary encoding, kategoriler arasında sıralı bir ilişki olduğu durumlarda kullanılabilir.
- Label encoding, daha az sayıda sütun oluşturmak için kullanılabilir.
3. Nadir kategorileri birleştirmek:
- Sıklık eşiğini belirleyin.
- Analiz amacını göz önünde bulundurun.
- Bilgi kaybını hesaplayın.
Birleştirme yöntemleri:
- Basit: Sıklığı az olanları “Diğer” ile birleştirin.
- Benzerlik: Benzer kategorileri gruplayın.
- Hiyerarşik Kümeleme: K-means gibi algoritmalar kullanın.
Etkisini değerlendirin:
- Model performansı: Birleştirme model performansını düşürür mü?
- Analiz sonuçları: Yorumlamayı zorlaştırır mı?
İpuçları:
- Yedekleme alın.
- Farklı yöntemler deneyin.
- Etkiyi analiz edin.
- Yorumlarken göz önünde bulundurun.
Nadir kategorileri birleştirmek, veri setini basitleştirebilir ve analizini kolaylaştırabilir. Ancak bilgi kaybına dikkat edilmelidir.
4. Kardinaliteyi Düşürme:
- Bir kategorik değişkenin çok fazla kategorisi varsa (örneğin 100’den fazla), bu değişkenin kardinalitesini düşürmeyi düşünebilirsiniz.
- Bunu yapmak için kategorileri birleştirebilir veya kategori aralıkları oluşturabilirsiniz.
- Kardinaliteyi düşürmek, veri setinin boyutunu küçültmeye ve modelleme işlemini hızlandırmaya yardımcı olabilir.
5. Anomali Tespiti ve Düzeltilmesi:
- Kategorik değişkenlerde anormal değerler (örneğin, “Bilinmiyor” veya “Yok”) olabilir.
- Bu değerleri tespit edip düzeltmeniz önemlidir.
- Anormal değerleri düzeltmek için, bunları en yakın kategoriye atayabilir veya “Diğer” kategorisine ekleyebilirsiniz.
6. Encoding Yönteminin Seçimi:
- Kategorik değişkenleri modellemede kullanabilmek için sayısal değerlere dönüştürmeniz gerekir.
- Bunu yapmak için one-hot encoding, binary encoding veya ordinal encoding gibi farklı yöntemler kullanabilirsiniz.
- Seçtiğiniz encoding yöntemi, modelinizin performansını etkileyebilir.
Kategorik değerlerin optimize edilmesi, veri setinin daha iyi anlaşılmasına ve analizinin daha doğru yapılmasına katkıda bulunur.