Öznitelik Mühendisliği: Makine Öğreniminde Veri Analizinin Gücünü Artırmak
Veri Analizi ve Öznitelik Mühendisliği
Veri analizi, veri setlerindeki özellikleri keşfetmek, araştırmak ve anlamak için yapılan bir süreçtir. Veri analizi sürecinde, veri setindeki değişkenlerin belirlenmesi ve verilerin nasıl dağıldığı gibi konular ele alınır. Veri analizi, makine öğrenimi projelerinde verilerin kalitesini artırmak için önemli bir araçtır. Ancak, veri analizi sürecindeki en önemli adımlardan biri de öznitelik mühendisliği yapmaktır.
Öznitelik Mühendisliği Nedir?
Öznitelik mühendisliği, veri analizi ve makine öğrenimi projelerinde veri setindeki özelliklerin belirlenmesi, analiz edilmesi, yeni özelliklerin oluşturulması ve gereksiz özelliklerin ayıklanması sürecidir. Öznitelik mühendisliği, veri setindeki özelliklerin kalitesini artırarak, makine öğrenimi modellerinin performansını artırır.
Öznitelik mühendisliğinin amacı, veri setindeki özelliklerin kalitesini artırarak, doğru özelliklerin belirlenmesini sağlamak ve gereksiz özelliklerin ayıklanmasını yaparak veri setinin boyutunu azaltmaktır. Veri setindeki özellikler, makine öğrenimi modelleri tarafından kullanılarak, hedef değişkenin tahmin edilmesinde kullanılır.
Öznitelik mühendisliği yaparken, veri setindeki özelliklerin dağılımı, eksik veriler, aykırı değerler ve özelliklerin birbirleriyle olan ilişkileri incelenir. Bu inceleme sonucunda, veri setindeki özelliklerin kalitesi artırılabilir.
Öznitelik mühendisliğinde, yeni özellikler oluşturulması, veri setindeki özelliklerin birleştirilmesi, dönüştürülmesi, ölçeklendirilmesi ve normalleştirilmesi gibi işlemler yapılır. Bu işlemler, veri setindeki özelliklerin kalitesini artırarak, makine öğrenimi modellerinin performansını artırabilir.
Öznitelik mühendisliği yapılırken, hangi özelliklerin kullanılacağına karar vermek de önemlidir. Bu karar, modelin performansını etkileyebilir. Örneğin, bir müşteri veri setinde, müşterilerin yaşlarından yola çıkarak bir yaş grubu değişkeni oluşturulabilir. Bu yaş grubu değişkeni, bir modelin müşterilerin alışveriş alışkanlıkları üzerindeki etkisini daha iyi anlamasına yardımcı olabilir.
Peki, öznitelik mühendisliği işlemleri nelerdir?
- Aykırı Değerler(Outliers) tespiti ve bu değerleri baskılama işlemleri
- Kayıp Verileri(Missing Values) tespit edip analizlerin yapılması
- Ölçeklendirme(scaling)
- Özellik Çıkarımı (Feature Extraction)
- Encoding (One-Hot Encoding)
Aykırı Değerler(Outliers)
Aykırı değerler (Outliers), veri setinde genellikle diğer verilerden farklı bir davranış veya özellik sergileyen değerlerdir. Aykırı değerler, veri analizi ve makine öğrenimi projelerinde sorunlara neden olabilir ve sonuçları yanıltıcı hale getirebilir.
Aykırı değerler, genellikle veri setindeki en yüksek veya en düşük değerlerdir. Örneğin, bir gelir veri setinde, milyonlarca dolarlık bir kazancın yer aldığı aykırı bir değer olabilir. Ayrıca, bir nüfus veri setinde, yüz yıllık bir insanın yaşı gibi olası bir değer de bir aykırı değer olabilir.
Aykırı değerlerin belirlenmesi, veri setinin kalitesini artırmak ve makine öğrenimi modellerinin performansını artırmak için önemlidir. Aykırı değerleri belirlemek için, veri setinin dağılımı ve deseni incelenir. Aykırı değerler belirlendikten sonra, bu değerlerin neden olabileceği yanıltıcı sonuçları önlemek için, bu değerler genellikle veri setinden çıkarılır veya başka bir değerle değiştirilir.
Aykırı Değerlerin Tespiti
Aykırı değerleri tespit etmek için birkaç yöntem vardır:
Görselleştirme:
Veri setindeki aykırı değerleri görselleştirerek tespit etmek, birçok durumda faydalı olabilir. Box plot gibi grafikler, aykırı değerleri kolayca tanımlamanıza yardımcı olabilir. Ayrıca, scatter plot gibi grafikler de aykırı değerleri tespit etmek için kullanılabilir.
IQR (Interquartile Range Method) ile Baskılama Yöntemi:
Aykırı değerleri tespit etmek için yaygın olarak kullanılan bir yöntemdir. Bu yöntem, bir veri setinin ortanca değeri etrafındaki dağılımı ölçer.
IQR, bir veri setindeki çeyrekler arasındaki aralığı ifade eder.
Q1, veri setinin alt çeyreği ve Q3, veri setinin üst çeyreğidir.
IQR, Q3 — Q1 formülü ile hesaplanır.
Alt sınır, Q1–1.5 x IQR formülü ile hesaplanır.
Üst sınır Q3 + 1.5 x IQR formülü ile hesaplanır.
Bu sınırlar, veri setindeki değerlerin altında veya üstünde kalan değerleri aykırı değer olarak tanımlar.
Bu aykırı değerleri bu sınır değerlere eşitleyerek aykırı değerleri baskılamış oluyoruz.
LOF (Local Outlier Factor):
LOF (Local Outlier Factor) algoritması, veri setindeki her bir noktanın, yakınlık ölçütlerine göre komşuları ile karşılaştırılarak aykırı olup olmadığını belirler.
LOF hesaplanırken aşağıdaki adımlar takip edilir:
- Veri setinde her veri noktası için bir k sayısı belirlenir. Bu k sayısı, veri noktasının komşularının sayısını ifade eder.
- Her veri noktası için k-nn (k nearest neighbors) algoritması kullanılarak, veri noktasının en yakın k komşusu belirlenir.
- Her veri noktasının yoğunluğu, komşularının yoğunluğuna bağlı olarak hesaplanır. Yoğunluk, veri noktasının komşularının uzaklığı ve benzerliği ile belirlenir.
- LOF, her veri noktasının yoğunluğunun ortalamasına bölünerek hesaplanır. Bu, bir veri noktasının yoğunluğunun, komşularının yoğunluğuna kıyasla ne kadar farklı olduğunu belirler.
- LOF değerleri, aykırı değerlerin tanımlanması için belirlenen bir eşik değerine göre karşılaştırılır. Eşik değeri genellikle 1.0 olarak belirlenir. Eğer bir veri noktasının LOF değeri eşik değerinden büyükse, bu veri noktası aykırı değer olarak kabul edilir.
Bu yöntemlerden hangisinin kullanılacağı, veri setinin özelliklerine ve analiz amaçlarına bağlıdır. Bazı durumlarda, birkaç yöntemin birlikte kullanılması da gerekebilir.
Kayıp Veriler(Missing Values)
Kayıp veriler, bir veri setinde belirli bir özellik ya da değişken için eksik olarak bulunan veri noktalarıdır. Kayıp veriler, veri toplama sürecinde oluşabilecek hatalardan, teknik sorunlardan ya da veri kaydı sırasında yapılan hatalardan dolayı oluşabilir.
Kayıp veriler, veri analizi ve makine öğrenmesi modelleri için birçok soruna neden olabilir. Bu nedenle, kayıp verilerin doğru bir şekilde ele alınması gereklidir. Kayıp verilerin ele alınması için birkaç yöntem bulunmaktadır:
- Kayıp verilerin çıkarılması: Bu yöntem, veri setindeki kayıp verilerin yalnızca veri setinden çıkarılması anlamına gelir. Bu yöntem, kayıp verilerin oranı çok düşük olduğunda ve kayıp verilerin diğer verilerle olan ilişkileri göz ardı edilebilecek kadar az olduğunda tercih edilir. Ancak, kayıp verilerin oranı çok yüksekse, veri setinden kayıp verilerin çıkarılması, veri setinin küçülmesine neden olabilir ve gereksiz bilgi kaybına yol açabilir.
- Basit istatistik yöntemleriyle kayıp verilerin doldurulması: Bu yöntem, kayıp verilerin yerine bir sayısal değer atanması veya eksik veri noktasının özelliklerine en uygun olan sayısal değerin bulunması anlamına gelir. Bu yöntem, en yaygın olarak kullanılan yöntemlerden biridir ve özellikle veri setindeki kayıp verilerin oranı düşükse kullanılabilir. Bu yöntem, ortalama, medyan, mod ve en sık kullanılan değer gibi merkezi eğilim ölçüleri kullanılarak gerçekleştirilebilir.
- Tahmin modelleriyle kayıp verilerin doldurulması: Bu yöntem, kayıp verilerin doldurulması için tahmin modelleri kullanır. Bu modeller, kayıp verilerin diğer özellikleriyle olan ilişkisini kullanarak kayıp verilerin tahmin edilmesini sağlar. Bu yöntem, veri setindeki kayıp verilerin oranı yüksek olduğunda ve kayıp verilerin diğer özelliklerle olan ilişkisi önemliyse kullanılabilir.
- Makine öğrenmesi modelleriyle kayıp verilerin doldurulması: Bu yöntem, kayıp verilerin doldurulması için makine öğrenmesi modellerinin kullanılması anlamına gelir. Bu yöntem, veri setindeki kayıp verilerin oranı yüksekse ve veri seti büyükse tercih edilir. Bu yöntem, K-NN (K-Nearest Neighbors) gibi algoritmalarla gerçekleştirilebilir.
Kısacası, kayıp veriler, veri analizi ve makine öğrenmesi modelleri için önemli bir sorundur ve doğru bir şekilde ele alınması gerekmektedir. Bu sorunu çözmek için birkaç yöntem kullanılabilir ve hangi yöntemin kullanılacağı veri setinin boyutuna, kayıp verilerin oranına ve kayıp verilerin diğer özelliklerle olan ilişkisine bağlıdır. Ancak, hangi yöntemin kullanılacağına karar verilirken, kayıp verilerin tamamen yok edilmesinin gerekip gerekmediği ve kayıp verilerin diğer özelliklerle olan ilişkisinin de göz önünde bulundurulması önemlidir.
Ölçeklendirme(scaling)
Ölçeklendirme, veri analizi ve makine öğrenmesi için önemli bir ön işlem adımıdır. Veri setlerindeki farklı özellikler farklı aralıklara sahip olabilir. Özelliklerin farklı aralıklarda olması, veri analizi ve makine öğrenmesi modellerinin doğru sonuçlar üretmesini zorlaştırır. Bu nedenle, özelliklerin ölçeklendirilmesi, farklı özelliklerin doğru bir şekilde karşılaştırılabilmesini sağlar.
Ölçeklendirme işlemi, veri setindeki her bir özellik için ayrı ayrı gerçekleştirilir. Özellikleri ölçeklendirmek için birkaç yöntem kullanılabilir. Bu yöntemler arasında Min-Max Scaler, Z-Score Scaler, Standardscaler ve Robust Scaler gibi yöntemler yer alır.
- Min-Max Scaler: Min-Max Scaler, bir özelliğin en küçük ve en büyük değerleri arasındaki farkı hesaplar ve bu aralığı 0–1 arasına ölçekler. Bu yöntemde, özelliğin en küçük değeri 0'a, en büyük değeri ise 1'e eşitlenir. Diğer değerler ise bu aralığa göre ölçeklenir.
- Z-Score Scaler: Z-Score Scaler, bir özelliğin ortalamasını ve standart sapmasını hesaplar ve özelliği bu değerlere göre ölçekler. Bu yöntemde, özelliğin her bir değeri özelliğin ortalamasından çıkarılır ve bu sonuç özelliğin standart sapmasına bölünür. Böylece, özellik değerleri ortalama değerden uzaklaştıkça, ölçeklenmiş değerler de büyür veya küçülür.
- Standardscaler: Standardscaler, veri ölçeklendirme işlemi için yaygın olarak kullanılan bir yöntemdir. Özellikle, özelliklerin normal dağılıma sahip olduğu durumlarda bu yöntem kullanılır. Bu sayede, özelliklerin ortalaması sıfır, standart sapması bir (1) olduğu için, veri setindeki özelliklerin dağılımı daha kolay yorumlanabilir hale gelir.
- Robust Scaler: Robust Scaler, Min-Max Scaler gibi yöntemlere benzer, ancak bu yöntemde en küçük ve en büyük değerler yerine, özelliğin medyanı ve yüzdelik aralıkları kullanılır. Bu yöntem, aykırı değerlerin olduğu durumlarda
Özellik Çıkarımı (Feature Extraction)
Özellik çıkarımı (feature extraction), veri bilimi ve makine öğrenimi gibi alanlarda kullanılan bir yöntemdir. Bu yöntem, veri setinde bulunan çok sayıda özelliği daha az sayıda özellikle ifade etmek için kullanılır. Özellik çıkarımı, veri setindeki gereksiz bilgilerden arındırılmış bir temsil elde etmek amacıyla veri öncesi bir işlemdir.
Özellik çıkarımı, veri setindeki özelliklerin sayısını azaltırken, veri setindeki önemli bilgilerin korunmasını sağlar. Özellik çıkarımı, veri setindeki özelliklerin doğru şekilde belirlenmesi ve sınıflandırılması sayesinde başarılı sonuçlar verir.
Özellik çıkarımı yöntemi, veri setindeki özelliklerin farklı özelliklerinin birleştirilerek yeni özelliklerin oluşturulmasını sağlar. Örneğin, bir müşteri veri setinde, müşterinin yaş, cinsiyet, maaş gibi özellikleri birleştirilerek müşterinin kredi riski ile ilgili yeni bir özellik oluşturulabilir. Bu sayede, veri setindeki önemli bilgilerin korunması ve gereksiz bilgilerin atılması sağlanır.
Özellik çıkarımı, veri analizi ve makine öğrenimi sürecinde oldukça önemli bir aşamadır. Doğru özelliklerin seçimi ve elde edilmesi, modelin doğruluğunu ve performansını arttırırken, yanlış özelliklerin seçimi ise modelin yanlış sonuçlar vermesine neden olabilir. Bu nedenle, özellik çıkarımı işlemi, veri setinin analizi ve modelleme sürecinde özenle yapılmalıdır.
Encoding
Encoding, veri setlerinde bulunan kategorik (nominal veya ordinal) verilerin sayısal değerlere dönüştürülmesi işlemidir. Makine öğrenimi algoritmaları genellikle sayısal verilerle çalışır ve bu nedenle, kategorik verileri sayısal olarak ifade etmek, verilerin işlenmesi ve analizi için önemlidir.
Encoding, iki farklı türde gerçekleştirilebilir: Label Encoding ve One-Hot Encoding.
Label Encoding, kategorik verileri tek boyutlu bir sayısal dizideki değerler olarak kodlar. Bu kodlama yöntemi, sıralama özelliği olan kategorik veriler için uygundur. Örneğin, “küçük”, “orta” ve “büyük” gibi verileri 1, 2 ve 3 gibi sayısal değerlere dönüştürür.
One-Hot Encoding, her bir kategorik veri ögesini, o ögenin varlığını veya yokluğunu belirten ayrı bir özellik olarak temsil eden yeni bir özellik seti oluşturur. Bu yöntem, sıralama özelliği olmayan kategorik veriler için uygundur. Örneğin, bir araba markası sınıflandırması, “Audi”, “BMW” ve “Mercedes” gibi kategorik verileri “Audi var mı?”, “BMW var mı?” ve “Mercedes var mı?” şeklinde ayrı ayrı özellikler olarak temsil edebilir. Bu yöntem, veri setindeki kategorik özelliklerin sayısı arttıkça, daha fazla bellek kullanımına neden olabilir.
One-hot encoding, dummy tuzağına neden olabilen bir encoding yöntemidir. Örneğin, bir kategorik değişkenin 4 sınıfı varsa, one-hot encoding yöntemi kullanılarak 4 adet dummy değişken oluşturulur. Ancak, bu dummy değişkenler arasında bir doğrusal bağlantı oluşur ve bu da regresyon analizinde çoklu doğrusal bağlantı sorununa neden olabilir.
Dummy tuzağından kaçınmak için, one-hot encoding yöntemi kullanılırken sınıf sayısı kadar değil, sınıf sayısının bir eksiği kadar dummy değişken oluşturulabilir. Bu sayede, dummy değişkenler arasında doğrusal bağlantı oluşması engellenir ve modelin doğruluğu artar.
Bu yazımda Öznitelik Mühendisliği konusunu teorik olarak anlattım.
Uygulama kısmı için takipte kalın :) Bir sonraki yazımda görüşmek üzere..
LinkedIn Hesabım → ramazan-ozdemir
Kaggle Hesabım → ramazan-ozdemir