Ana içeriğe atla

Makine Öğreniminde Özellik Mühendisliği: Pratik Bir Rehber

Bu uygulamalı rehberle özellik mühendisliğini öğrenin. Python’da kodlama, ölçekleme ve eksik değerleri ele alma gibi teknikleri keşfedin.
Güncel 16 Nis 2026  · 15 dk. oku

Özellik mühendisliği, bir modelin performansını iyileştiren anlamlı özellikleri seçmek veya oluşturmakla ilgilidir. Hangi ML algoritmasını kullanırsanız kullanın, veri hazırlığı için muhtemelen özellik mühendisliği tekniklerine güveneceksiniz.

Bu yazıda, özellik mühendisliğini ve yöntemlerini keşfedecek ve bunları uygulamalı bir konut fiyatı tahmini örneğiyle nasıl hayata geçireceğinizi anlayacağız. 

Makine Öğreniminde Özellik Mühendisliği Nedir?

İş yerimde bir zamanında teslim projesinde, zamanında teslim oranlarını iyileştirmek için model kurduğumu hatırlıyorum. Karmaşık topluluk modelleri eğitmek yerine, basit bir regresyon algoritması kullandık ve mevcut verilerden türetilen yalnızca üç ek özellik ekledik.

Bu yaklaşım tek başına zamanında teslim oranımızı %48’den %56’ya çıkardı. 10 milyon kayıt düşünüldüğünde bu büyük bir iyileşme. Özellik çıkarımı gibi özellik mühendisliği tekniklerinin farkı bu kadar belirgindir!

Kısacası, özellik mühendisliği mevcut verilerden doğru özellikleri seçmek anlamına gelir. 

Sıcaklık, konum, ay, yıl ve tarih sütunları olan bir hava durumu veri kümesini düşünün. Ay sütunu bu bilgiyi zaten sağladığı için, tarih sütunu mevsimsellik eğilimlerini yakalamada önemli bir değer katmayabilir. Tarih sütununun kaldırılması, hava tahminlerinin doğruluğunu olumsuz etkilemeden veri kümesinin boyutunu azaltabilir.

Makine Öğreniminde Özellik Türleri

Farklı özellik mühendisliği tekniklerine dalmadan önce, mevcut özellik türlerini anlayalım.

Sayısal özellikler 

İsminden de anlaşılacağı gibi, sayısal özellikler veriyi sayılarla ifade eder. Sürekli nicel değişkenlerdir. Örnekler arasında boy, yaş ve maaş bulunur. 

Kategorik özellikler

Kategorik bir sütun yalnızca ayrık özellikler içerebilir. Örneğin, bir kişinin cinsiyeti yalnızca birkaç cinsiyet türü olabileceğinden kategorik bir sütundur. Doğum ayı da başka bir örnektir çünkü değerler Ocak ile Aralık arasında olmalıdır. 

Kategorik değişkenler ikili ve ikili olmayan olarak ikiye ayrılır. İkili değişkenlerin iki olası kategorisi vardır, ikili olmayan özellikler ise birden fazla kategoriye sahip olabilir. 

Metinsel ve zaman serisi özellikleri 

Metinsel sütunlar yalnızca metin verisi içerir. Örneklere perakende veri kümesindeki ürün yorumları veya ürün açıklaması sütunları dahildir. 

Öte yandan zaman serisi özellikleri, haftalık satışlar veya bir yıl içindeki hisse senedi fiyat dalgalanmaları gibi zamana bağlı verileri temsil eder.

Makine öğreniminde özellik türleri

Görsel: Yazar

Özellik Mühendisliği Teknikleri

Özellik mühendisliği, ham sütunları istenen özelliklere dönüştürmek için çeşitli güçlü teknikler sunar. Burada öne çıkan bazılarını tartışıyoruz. 

Eksik değerleri ele alma

Eksik değerler model performansını bozabilir; bu nedenle doğru şekilde ele alınmaları kritiktir. Başlıca iki yaklaşım vardır:

  • Atama (imputation): Atama, mevcut bilgileri kullanarak eksik değerlerin doldurulmasıdır. Örneğin, eksik değerleri ortalama, mod ve medyan ile değiştirebilirsiniz. 
  • Silme: Bu yöntem eksik değerlere sahip satırları kaldırır ve eksik veri, veri kümesinin %10’undan az olduğunda en uygundur. 

Eksik verileri ele alma üzerine ayrıntılı bir rehber için şu Eksik Verileri Ele Alma Teknikleri Eğitimini okuyun veya şu Python’da Eksik Verilerle Başa Çıkma Kursunu inceleyin.

Aykırı değerleri ele alma 

Aykırı değerler, diğer veri noktalarından önemli ölçüde farklı anormal değerlerdir. Örneğin, gözlemlerin çoğu 90.000 $ ile 120.000 $ arasında olan bir maaş veri kümesinde, 400.000 $ veya 10.000 $ gibi maaşlar aykırı değerdir. 

  • Değiştirin: Aykırı değerleri sütunun maksimumu veya minimumu gibi istatistiksel bir değerle değiştirebilirsiniz.
  • Dönüşümler: Etkiyi azaltmak için log veya karekök gibi dönüşümler uygulayın. 
  • Sağlam modeller: Aykırı değerlere daha az duyarlı modeller kullanın. Karar ağaçları, gradyan artırma ve ridge regresyon aykırı değerlerden daha az etkilenir. 
  • Silin: Hiçbiri işe yaramazsa, aykırı değerleri veri setinden çıkarmak son seçenektir.

Kategorik değişkenleri kodlama

Makine öğrenimi modelleri kategorik değişkenleri doğrudan işleyemez; bu nedenle bunların sayısal temsillere dönüştürülmesi gerekir. Aşağıda bazı popüler kodlama tekniklerini tartışıyoruz. 

  • One-hot kodlama: Kategorik bir özellikteki her kategori ayrı bir sütun olarak temsil edilir; kategorinin örnekte mevcut olması durumunda değeri 1, diğer tüm sütunlar için 0 olur. Aşağıdaki örnek bunu açıklar.

Aşağıdaki kategorik özelliğe sahip bir veri kümesini düşünün:

Ad 

Cinsiyet

John 

Erkek

Rachel

Kadın

Emma 

Kadın

One-hot kodlama kullanarak, Cinsiyet özelliğindeki her olası kategori için ayrı sütunlar oluştururuz:

Ad

Kadın

Erkek

John

0

1

Richale

1

0

Emma

1

0

John Erkek olduğundan, "Erkek" sütunu 1 olurken "Kadın" sütunu 0 kalır. Benzer şekilde, Rachel ve Emma Kadın olduğundan "Kadın" sütunu 1, "Erkek" sütunu 0 olur.

Python’da one-hot kodlamaya dair eksiksiz bir eğitim için şu One-Hot Kodlama Eğitimine göz atın.

  • Etiket kodlama (label encoding): Etiket kodlama, kategorik bir özellikteki her kategoriye benzersiz bir sayısal değer atar. Bu yaklaşım, kategorilerin anlamlı bir sıralamaya sahip olduğu dereceli (ordinal) veriler için kullanışlıdır; ancak dereceli olmayan kategorik değişkenlerde, model sayısal değerleri doğuştan bir sıralama varmış gibi yanlış yorumlayabileceğinden sorunlara yol açabilir.

Konum sütununda kategorik değerler içeren bir veri kümesini düşünün:

Konum 

Kodlanmış değer

New York 

1

California 

2

Texas

3

California

2

Texas

3

Her benzersiz konuma farklı bir sayısal değer atanır. Ancak California (2) doğası gereği New York (1) ile Texas (3) arasında değildir; bu nedenle dereceli olmayan verilerde etiket kodlama kullanmak, modelde yanıltıcı varsayımlara yol açabilir. Bu gibi durumlarda, kategoriler arasında istenmeyen sayısal ilişkiler ima edilmesini önlemek için sıklıkla one-hot kodlama tercih edilir.

  • Ordinal kodlama: Ordinal kodlama, etiket kodlamaya benzer ancak özellikle kategorik değerlerin anlamlı bir sıralamaya sahip olduğu durumlarda kullanılır. Keyfi sayısal değerler atamak yerine, kategorileri sıralamalarına göre eşler. Böylece daha yüksek değerler daha yüksek sıradaki kategorilere karşılık gelir.

Aşağıdaki kategorilere sahip bir Eğitim seviyesi sütununu düşünün:

Eğitim seviyesi

Kodlanmış değer

UG (Lisans)

1

PG (Yüksek Lisans)

2

Doktora

3

Doktora, PG’den; PG ise UG’den daha yüksek bir eğitim seviyesini temsil ettiğinden, atanan sayısal değerler bu sıralamayı yansıtır.

  • Hedef kodlama (target encoding): Her kategorik değeri, karşılık geldiği hedef değişkenin ortalamasıyla değiştirir. Hedef değişken, modelin tahmin etmeye çalıştığı bağımlı değişkendir. Bu teknik, çok sayıda benzersiz değere sahip yüksek kardinaliteli kategorik özelliklerle çalışırken özellikle kullanışlıdır; çünkü boyutu azaltırken ilgili bilgileri korumaya yardımcı olur.

Konumun kategorik bir özellik ve Hedef değişkenin bazı sayısal çıktıyı temsil ettiği bir veri kümesini düşünün:

Konum

Hedef değişken

New York 

2

California 

3

Texas

5

California

1

Texas

4

Konum sütununu kodlamak için, her benzersiz kategori için Hedef değişkenin ortalamasını hesaplarız:

  • California: (3 + 1) / 2 = 2
  • Texas: (5 + 4) / 2 = 4,5
  • New York: Yalnızca bir değer (2) olduğu için 2 olarak kalır

Konum

Kodlanmış değer

New York 

2

California 

2

Texas

4,5

California

2

Texas

4,5

Kategorik verileri ele almaya dair daha kapsamlı bir rehber arıyorsanız, şu Kategorik Veri İşleme Eğitimi ek içgörüler sunar.

Özellik ölçekleme 

Özellik ölçekleme, sayısal özelliklerin standart bir aralıkta yer almasını sağlar; böylece bazı özelliklerin daha büyük değerleri nedeniyle öğrenme sürecine hakim olmasını engeller.

Mesafe tabanlı hesaplamalara dayanan makine öğrenimi modelleri (ör. doğrusal regresyon, en yakın k-komşu ve sinir ağları), özellikler çok farklı ölçeklere sahip olduğunda etkilenebilir.

Örneğin, aşağıdaki özelliklere sahip bir çalışan veri kümesini düşünün:

  • Yaş 20 ile 60 arasında değişir
  • Gelir 30.000 $ ile 150.000 $ arasında değişir

Gelir, yaştan çok daha büyük değerlere sahip olduğundan, bir model ölçekten dolayı gelire daha fazla önem atayabilir; bu da gerçekte daha alakalı olduğu anlamına gelmez.

Bazı yaygın teknikler şunlardır:

  • Normalizasyon (min-maks ölçekleme): Bu yöntem tüm özellik değerlerini 0 ile 1 arasına ölçekler. Sütunun minimum değerini her veri noktasından çıkarır ve ardından bunu sütunun aralığına (maksimum ile minimum arasındaki fark) böler. Formül şöyledir:

Ölçeklenmiş değer =( veri_noktası - min(sütun))/(max(sütun) - min(sütun))

  • Standardizasyon (Z-skor ölçekleme): Bu, tüm özellikleri ortalaması 0 ve standart sapması 1 olacak şekilde dönüştürür. Formül: Bir sütunun ortalaması, o sütunun her veri noktasından çıkarılır ve kalan değer o özelliğin standart sapmasına bölünür. 

Ölçeklenmiş değer =( veri_noktası - ortalama(sütun))/(std(sütun))

Normalizasyon ve standardizasyonun ayrıntılı karşılaştırması için şu Normalizasyon vs. Standardizasyon Rehberine bakın.

Yeni özellikler oluşturma

Mevcut verilerden yeni ve anlamlı özellikler oluşturmak, modele daha mantıklı içgörüler sağlar. 

Örneğin, bir konut fiyatı tahmini veri kümesinde length ve breadth sütunları ayrı ayrı varsa, yeni bir özellik türetebilirsiniz: area = length * breath; bu, hedef değişken olan price ile doğrudan ilişkili olabilir. Bu area özelliğini modele girmek, gizli kalıpları keşfetmeyi kolaylaştırır. 

Özellik seçimi

Özellik seçimi, gereksiz sütunları kaldırarak yalnızca ilgili özellikleri tutar. En bilgilendirici verilere odaklanmak, aşırı uyumu önlemeye, hesaplama karmaşıklığını azaltmaya ve model performansını iyileştirmeye yardımcı olur. Bazı teknikler şunlardır:

  • Filtre yöntemleri: Bu yöntem, özelliklerin istatistiksel özelliklerine göre önemli olanları seçer. Örneğin, aynı bilgiyi taşıyan özellikleri bir korelasyon ısı haritası kullanarak kaldırabiliriz. Diğer teknikler arasında Ki-kare testi, ANOVA ve Bilgi Kazancı yöntemleri bulunur.
  • Sarma (wrapper) yöntemleri: Bu yöntemler, farklı özellik alt kümeleriyle yinelemeli olarak bir tahmin modeli eğitir ve model performansı optimize edilmiş en iyi alt küme seçilir. İleri seçim, geri seçim ve yinelemeli eleme yöntemleri bu kategoriye girer. 

Python ile Özellik Mühendisliği: Pratik Bir Örnek

Özellik mühendisliğini en iyi, uygulamalı olarak gerçekleştirerek anlayabilirsiniz.

“Konut fiyatı tahmini”, 81 sütunlu, büyük ve gerçek dünyadan bir veri kümesidir. Çeşitli özellik aralığı sayesinde, özellik mühendisliği tekniklerini pratikte daha iyi anlamanıza yardımcı olması için bunu seçtim.

Başlarken:

  1. Veri kümesini Kaggle’dan indirin.
  2. Analiz ve özellik mühendisliği için bir Pandas DataFrame’ine yükleyin.

Kategorik eksik değerleri ele alma

Aşağıdaki kod, veri kümesindeki kategorik sütunları belirler ve eksik değerlerini en sık görülen kategoriyle değiştirir:

import pandas as pd

# Load dataset (replace 'your_file.csv' with the actual file name)
df = pd.read_csv('your_file.csv')

# Select categorical columns
categorical_cols = df.select_dtypes(include=['object']).columns

# Replace missing values with the most frequent category (mode)
for col in categorical_cols:
    mode = df[col].mode()[0]  # Get the most common value
    df[col].fillna(mode, inplace=True)  # Fill missing values

Sayısal eksik değerleri ele alma

Sayısal eksik değerleri ortalama veya medyan ile değiştirerek ele alıyoruz. İstatistiksel olarak dağılmış veriler için ortalama daha popüler bir seçenektir; sütunda aykırı değerler olduğunda medyan iyi çalışır. Bu nedenle, aykırı değerlere bakıp yönteme karar vereceğiz. 

Olası aykırı değerleri görselleştirmek için, uç değerleri belirlemeye yardımcı olan kutu grafikleri kullanabiliriz. Aşağıda, seçili sayısal sütunlarda aykırı değerleri tespit etmek için bir Python uygulaması yer alır:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

features = ['LotFrontage', 'MasVnrArea', 'GarageYrBlt']  

# Plot box plots
df[features]=np.log(df[features])
df[features].boxplot(figsize=(8, 4))

plt.title('Box Plot for Outlier Detection')
plt.ylabel('Values')
plt.xticks(rotation=45)
plt.show()

Çıktı:

Aykırı değer tespiti için kutu grafiği

Yukarıdaki kutu grafikleri, bıyıkların dışındaki noktaları gösteriyor—bunlara aykırı değer denir. O halde, eksik değerleri medyan ile değiştirelim.

Boş değerleri medyanla değiştirme kodu:

import pandas as pd
# Select numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns
for col in numerical_columns:
    median = df[col].median()  
    df[col].fillna(median, inplace=True)  # Replace nulls with median

Yeni özellikler oluşturma

YearBuilt, YearRemodAdd, GarageYrBlt ve YrSold gibi sütunlar (ör. 2001, 1976) yılı içerir ve hedef değişkeni doğrudan etkilemez. Bu mutlak yıl değerleri doğrudan konut fiyatlarını etkilemeyebilir; ancak satış anındaki evin veya tadilatın ne kadar eski olduğunu hesaplayarak daha faydalı içgörüler elde edebiliriz.

Örneğin, YearBuilt yerine şu yeni özelliği oluşturabiliriz: House Age=YrSoldYearBuilt

Bu yeni özellikleri oluşturma kodu:

# Get columns that contain 'Yr' or 'Year'
year_columns = [feature for feature in numerical_columns if 'Yr' in feature or 'Year' in feature]

# Convert year values into age-related features
for col in year_columns:
    df[col] = df['YrSold'] - df[col]

Özellik dönüşümü

Makine öğreniminde, çarpık dağılıma sahip sayısal özellikler, özellikle normal dağılım varsayan modellerde (ör. doğrusal regresyon) model performansını olumsuz etkileyebilir. Bunu düzeltmek için log dönüşümü uygularız.

Log dönüşümü uygulamadan önce, çarpık özellikleri belirlemeliyiz. Ancak sıfır içeren sütunları hariç tutarız; çünkü sıfırın logaritması tanımsızdır.

Çarpık sütunları belirlemek için Python ile bir uygulama:

import pandas as pd

# Get numerical columns
numerical_columns = df.select_dtypes(include=['number']).columns

# Identify columns containing zeros
numerical_0s = df.loc[:, (df == 0).any()].select_dtypes(include=['number']).columns

# Remove columns that contain zeros from consideration
numerical_columns = numerical_columns.difference(numerical_0s)

# Calculate skewness for the remaining numerical columns
skewness = df[numerical_columns].skew()

# Set threshold for skewness (e.g., absolute value > 1 indicates high skewness)
skewed_columns = skewness[abs(skewness) > 1]

# Display skewed columns
print("Skewed Columns:")
print(skewed_columns)

Çıktı:

Bu beş çarpık sütunu log-normal dağılım kullanarak Gaussian dağılıma dönüştüreceğiz:

import numpy as np

# The list of highly skewed features identified earlier
skew_features = ['LotFrontage', 'LotArea', '1stFlrSF', 'GrLivArea', 'SalePrice']

# Apply log transformation to each skewed feature
for col in skew_features:
    df[col] = np.log(df[col])

Kategorik özellikleri sayısal değerlere dönüştürme

Önceden birkaç kodlama tekniğini tartıştık; bu örnekte hedef kodlama uygulayacağız.

# Select categorical variables
categorical_columns = df.select_dtypes(include=['object', 'category']).columns

# Apply target encoding
for col in categorical_columns:
    # Compute mean SalePrice for each category
    labels_ordered = df.groupby([col])['SalePrice'].mean().sort_values().index
    
    # Assign numerical values based on target variable mean
    labels_ordered = {x: i for i, x in enumerate(labels_ordered, 0)}
    
    # Map encoded values back to the dataframe
    df[col] = df[col].map(labels_ordered)

Yukarıdaki kodda hedef değişken SalePrice olduğundan, verileri her kategorik sütuna göre grupladık ve her grup için ortalama SalePrice’ı hesapladık. Bu ortalama değerler daha sonra ilgili kategorik değerlere atandı.

Artık veri kümemiz makine öğrenimi için hazır! 

Denetimli öğrenme kavramlarını ve modellerin tasarlanmış özellikleri nasıl kullandığını pekiştirmek istiyorsanız, şu Scikit-Learn ile Denetimli Öğrenme Kursukemmel bir kaynaktır.

Özellik Mühendisliği için Araçlar ve Kütüphaneler

Bu bölümde, özellik mühendisliğini uygulamak için en sık kullanılan Python kütüphaneleri ve otomasyon araçlarını ele alacağız. 

Pandas

Pandas, yapılandırılmış verileri işlemek için en çok kullanılan Python çatısıdır. Dönüştürme, veri toplulaştırma ve özellik çıkarımı gibi birçok özellik mühendisliği adımını gerçekleştirir. Pandas, veri temizleme ve manipülasyonunu da kolaylaştırır.

Pandas’a yeni başlıyorsanız, şu pandas ile Veri Manipülasyonu Kursu harika bir başlangıç noktasıdır.

Scikit-Learn

Scikit-learn, özellik mühendisliği için çeşitli araçlara sahip güçlü bir makine öğrenimi kütüphanesidir. Kategorikleri sayısal değişkenlere dönüştürmek için OneHotEncoder ve LabelEncoder gibi yöntemler içerir. Ayrıca StandardScaler ve Minmaxscaler gibi özellik ölçekleme yöntemleri sunar. 

Feature-Engine

Feature-engine, özellik mühendisliğini basitleştirmek için çeşitli dönüştürücüler sunan açık kaynak bir Python kütüphanesidir. Bu dönüştürücüler; eksik veri ataması, aykırı değer işleme, özellik seçimi ve ayrıklaştırma gibi belirli görevler için özelleşmiş araçlardır. Scikit-learn ile tamamen uyumludur ve bu dönüştürücüler hiperparametre ayarı için girdi parametresi olarak geçirilebilir.

Otomatik özellik mühendisliği araçları

  • Featuretools: Featuretools, özellik mühendisliğini otomatikleştirmek için kullanılan açık kaynaklı bir kütüphanedir. Çerçeve, öncelikle ilişkisel bir veritabanından yeni özellikler oluşturmak için kullanılır. Dönüşüm ve toplulaştırma işlemlerine dayalı olarak yeni özellikler oluşturan DFS (deep feature synthesis) algoritmasına dayanır. 
  • TSFresh: TSFresh, Ölçeklenebilir Hipotez Testlerine Dayalı Zaman Serisi Özellik Çıkarımı olarak bilinir ve zaman serisi verilerinden anlamlı özellikler çıkarmak için özel olarak tasarlanmıştır. Kütüphane, tahmin için istatistiksel olarak anlamlı özellikleri seçmek üzere hipotez testleri yürütür. 
  • Autofeat: Autofeat kütüphanesi, doğrusal model doğruluğunu artırmak için özellik seçimi, oluşturma ve dönüşümünü otomatikleştirir. Örneğin, fit() yerine, girdi verisi üzerinde aynı anda fit ve transform işlemlerini gerçekleştiren bir fit_transform() yöntemi sunar. Ayrıca, özellik seçimi ve ölçekleme için FeatureSelector ve AutoFeatLight modelleri mevcuttur.

Özellik Mühendisliğinde En İyi Uygulamalar

Özellik mühendisliğini etkili bir şekilde uygulamak için şu en iyi uygulamalara odaklanın.

Verinizi tanıyın

Her bir özelliğin anlamını ve önemini anlamak, özellik seçimi veya çıkarımı gibi teknikleri uygulamayı çok daha kolay hale getirir. Etkili özellik mühendisliği için verinizi ve ilgili alan bilgisini araştırmanızı öneririm.

Keşifsel veri analizi (EDA) yapın

Pandas ve Matplotlib gibi Python kütüphanelerini kullanarak kapsamlı keşifsel veri analizi gerçekleştirin; ististatistiksel bilgiler, görselleştirmeler ve korelasyonları keşfederek verideki kalıpları ve olası ilişkileri bulun.  

Etkileşim özellikleri oluşturun

Etkileşim özellikleri oluşturmak, mevcut özellikler arasındaki ilişkileri belirlemeyi ve yenilerini türetmeyi içerir. Örneğin, konut fiyatı tahmininde, inşa yılından mevcut yılı çıkararak evin yaşını hesaplamak; zaman geçtikçe konut fiyatlarının düşmesi gibi eğilimleri vurgular. 

Modelinizi önceden seçin

Farklı makine öğrenimi modelleri, farklı özellik mühendisliği adımları gerektirir. Örneğin, doğrusal veya çoklu regresyon, SVM ve KNN gibi modeller genellikle özellik standardizasyonundan fayda sağlar; ancak bu teknik ağaç tabanlı modellere yardımcı olmaz. 

Bu nedenle, modelinize önceden karar vermek, kullanım durumunuz için etkili bir özellik mühendisliği hattı kurmanıza yardımcı olabilir. 

Sonuç

Özellik mühendisliği, özelliklerden en verimli şekilde yararlanmanızı sağlayarak makine öğrenimi çözümleri oluşturmanın ayrılmaz bir parçasıdır. Bu süreç, herhangi bir veri kümesiyle çalışırken veri bilimciler veya ML mühendisleri tarafından yürütülür. Bir veri profesyoneliyseniz ya da olmayı hedefliyorsanız, bu yazıda bahsedilen tüm tekniklerde ustalaşmak kariyerinizi ilerletmenize yardımcı olacaktır!

Bu teknikleri daha ayrıntılı keşfetmek için, DataCamp’in makine öğrenimi için özellik mühendisliği ve NLP için özellik mühendisliği kurslarına göz atın. Ayrıca R programcıları için özellik mühendisliği kursu da mevcut.

SSS

Özellik mühendisliği, özellik seçiminden nasıl farklıdır?

Özellik mühendisliği, model performansını iyileştirmek için yeni özellikler oluşturmayı veya mevcut olanları dönüştürmeyi içerir. Özellik seçimi ise, aşırı uyumu önlemek ve model karmaşıklığını azaltmak için en ilgili özellikleri seçip ilgisiz veya gereksiz olanları eleme sürecidir.

Özellik mühendisliği otomatikleştirilebilir mi?

Evet! FeatureTools, AutoML kütüphaneleri (ör. Auto-sklearn, H2O.ai) ve Google’ın AutoML Tables gibi Otomatik Özellik Mühendisliği araçları, zaman ve emekten tasarruf ederek özellikleri otomatik olarak oluşturup dönüştürebilir. Ancak, en iyi özellikleri yorumlamak ve seçmek için alan bilgisi hâlâ kritik önemdedir.

Özellik mühendisliği modelin yorumlanabilirliğini nasıl etkiler?

Özellik mühendisliği, kullanılan tekniklere bağlı olarak yorumlanabilirliği artırabilir veya azaltabilir. Örneğin:

  • Anlamlı özellikler oluşturmak (ör. "House Age" yerine "YearBuilt") yorumlanabilirliği artırır.
  • PCA (Temel Bileşenler Analizi) gibi dönüşümler uygulamak özellikleri daha az yorumlanabilir kılabilir; ancak model performansını artırabilir.

Özellik mühendisliği, makine öğrenimi modelinin türüne bağlı mıdır?

Evet! Farklı modeller farklı özellik mühendisliği tekniklerinden faydalanır:

  • Doğrusal modeller (ör. Doğrusal Regresyon, Lojistik Regresyon) – Özellik ölçeklemesi gerektirir ve sıklıkla polinomsal özellik dönüşümlerinden fayda sağlar.
  • Ağaç tabanlı modeller (ör. Karar Ağaçları, Random Forest, XGBoost) – Ölçeklenmemiş veriyi iyi işler ve çoğunlukla dönüşümlerdense özellik seçiminden daha çok fayda sağlar.
  • Derin öğrenme modelleri – Ham özellikleri tercih eder ve kategorik veriler için gömme (embedding) katmanları gibi dönüşümler yardımcı olur.

Özellik çaprazlama nedir ve ne zaman kullanmalıyım?

Özellik çaprazlama (feature crossing), iki veya daha fazla özelliği birleştirerek aralarındaki etkileşimi yakalayan yeni bir özellik oluşturma işlemidir. Örnek:

  • "Yaş" ve "Gelir"i ayrı ayrı kullanmak yerine, yaş grupları arasında finansal istikrarı yakalamak için "Gelir/Yaş Oranı" oluşturun.
  • Değişkenler arası ilişkilerin hedef değişkeni doğrusal olmayan şekilde etkilediği durumlarda özellik çaprazlamayı kullanın.

Bir özelliğin model performansını iyileştirip iyileştirmediğini nasıl değerlendirebilirim?

Bir özelliğin model performansını iyileştirip iyileştirmediğini şu yollarla değerlendirebilirsiniz:

  • Permütasyon Önemliliği – Bir özelliğin karıştırılmasının model doğruluğunu nasıl etkilediğini ölçer.
  • Ağaç Tabanlı Modellerde Özellik Önemi – Random Forest gibi birçok model, yerleşik özellik önem skorları sunar.
  • Çapraz doğrulama performansı – Bir özellik varken ve yokken model doğruluğunu karşılaştırın.

Etkileşim özellik mühendisliği nedir?

Etkileşim özellik mühendisliği, mevcut özellikler arasındaki etkileşimlere dayalı yeni özellikler oluşturmayı içerir. Şunları kapsayabilir:

  • Çarpım (Ürün Özellikleri): İki özelliği birleştirme (ör. BKİ için "Boy × Kilo").
  • Oranlar: Bir özelliği diğerine bölme (ör. "Metrekare Başına Fiyat").
  • Polinomsal Özellikler: Özellikleri bir kuvvete yükseltme (ör. doğrusal olmayan ilişkiler için "Yaş²").

Yüksek kardinaliteli kategorik değişkenleri nasıl ele alırsınız?

Birçok benzersiz değere sahip kategorik değişkenlerde (ör. posta kodları, kullanıcı kimlikleri):

  • Hedef Kodlama: Kategorileri hedef değişkenin ortalamasıyla değiştirin.
  • Gömme Katmanları (Derin Öğrenme için): Kategorilerin daha düşük boyutlu temsillerini öğrenin.
  • Hashing Kodlama: Kategorileri bir karma (hash) fonksiyonu kullanarak kovalarla eşleyin.

Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana, Bilgisayar Bilimleri alanında dört yıllık dereceye sahip serbest çalışan bir teknoloji yazarıdır. Veri bilimi, bulut bilişim, geliştirme, programlama, güvenlik ve daha birçok konuyu yazmak onun için doğal bir süreçtir. Klasik edebiyata ve yeni yerler keşfetmeye tutkuyla bağlıdır.

Konular

Bu kurslarla makine öğrenimi hakkında daha fazla bilgi edinin!

Kurs

Python ile Zaman Serisi Verileri için Machine Learning

4 sa
52.8K
Bu ders, zaman serisi verileri için özellik mühendisliği ve makine öğrenimine odaklanmaktadır.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow