Web sitemizde size en iyi deneyimi sunmak için çerezleri kullanıyoruz. Hangi çerezleri kullandığımız hakkında daha fazla şey öğrenmek için Gizlilik
Onayla
Türker UZUNTürker UZUN
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
    • BI Araçları
  • LLM – AI
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Reading: Veri Analizi Aşamaları 09 – Özellik Mühendisliği
Paylaş
Aa
Türker UZUNTürker UZUN
Aa
  • VERİ ANALİZİ
  • LLM – AI
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Ara...
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
    • BI Araçları
  • LLM – AI
  • METODOLOJİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Follow US
Türker UZUN > Blog > Veri Analizi > Python Veri Analizi > Veri Analizi Aşamaları 09 – Özellik Mühendisliği
Python Veri Analizi

Veri Analizi Aşamaları 09 – Özellik Mühendisliği

7 Min Read
Paylaş
7 Min Read
Python Blog, Python Soruları, Python Dersleri, Python Veri Analizi, Python İlginç Sorular

Özellik Mühendisliği Nedir? (Feature Engineering)

Özellik mühendisliği, mevcut veri setindeki bilgileri kullanarak yeni ve daha bilgilendirici özellikler oluşturma sürecidir. Bu yeni özellikler, model performansını artırmak ve daha iyi sonuçlar elde etmek amacıyla kullanılır. Özellik mühendisliği, veri bilimi ve makine öğrenmesi projelerinde kritik bir aşamayı temsil eder.

Contents
Özellik Mühendisliği Nedir? (Feature Engineering)Özellik Mühendisliğinin Faydaları:Özellik Mühendisliği Teknikleri:Özellik Mühendisliği Örnekleri:

Özellik Mühendisliğinin Faydaları:

  1. Model Performansını ve Doğruluğunu Artırır: Daha anlamlı ve öngörücü özelliklerle modellerin performansı artar.
  2. Daha İyi Genelleme: Doğru ve etkili özellikler, modellerin farklı veri setlerine daha iyi adapte olmasını sağlar.
  3. Daha Az Karmaşıklık: Özellik mühendisliği, gereksiz karmaşıklığı azaltarak modellerin daha anlaşılır ve yönetilebilir olmasını sağlar.
  4. Hızlı Eğitim: Daha az ve anlamlı özelliklerle modeller daha hızlı eğitilebilir.

Özellik Mühendisliği Teknikleri:

  1. Veri Görselleştirme: Veri setini görselleştirmek, özellikleri anlamak ve yeni özellikler için fikirler edinmek için önemlidir.
  2. İstatistiksel Teknikler: Korelasyon analizi, ortalama, standart sapma gibi istatistiksel bilgilerle yeni özellikler türetilebilir.
  3. Alan Bilgisi: Konuyla ilgili bilgi, özelliklerin daha iyi anlaşılmasını sağlar ve bu bilgiye dayalı olarak yeni özellikler tasarlanabilir.
  4. Makine Öğrenmesi Teknikleri: PCA (Principal Component Analysis), LDA (Linear Discriminant Analysis) gibi teknikler kullanılarak özelliklerin boyutunu azaltabilir veya yeni özellikler türetilebilir.

Özellik Mühendisliği Örnekleri:

Diyelim ki bir e-ticaret platformundasınız ve kullanıcıların ürünleri değerlendirebileceği bir sisteminiz var. Normalde, kullanıcılar bir ürüne 1 ila 5 arasında bir puan verir. Ancak, bu puanlar genellikle genel bir ifade içerir ve spesifik detayları içermez.

Özellik Mühendisliği kapsamında, bu puanları daha anlamlı bir özellik haline getirmek için “Duygu Yoğunluğu” adında yeni bir özellik türetebilirsiniz. Bu özellik, kullanıcı yorumlarının duygusal analizi sonucunda elde edilecek bir değeri ifade eder. Örneğin, bir kullanıcı olumlu bir yorum yapmışsa duygu yoğunluğu yüksek, olumsuz bir yorum yapmışsa düşük olacaktır.

İşte bu özellik mühendisliği örneği, sadece sayısal verilerle değil, metin analizi gibi daha karmaşık bir süreçle de ilgilidir. Bu, sıradan bir puanlama sistemini daha zengin ve anlamlı bir bilgiye dönüştürerek kullanıcı deneyimini daha derinlemesine anlamak için güçlü bir özellik mühendisliği örneğidir.

from textblob import TextBlob
import pandas as pd

# Örnek bir veri seti oluşturalım
data = {'Product': ['Laptop', 'Smartphone', 'Headphones', 'Tablet'],
        'Review': ['The laptop is amazing! Best purchase ever.', 'The smartphone is good, but the battery life could be better.', 'Headphones provide excellent sound quality.', 'The tablet is slow and unresponsive. Not satisfied.'],
        'Rating': [5, 4, 5, 2]}

df = pd.DataFrame(data)

# Duygu yoğunluğu adında yeni bir özellik türetelim
df['Sentiment'] = df['Review'].apply(lambda x: TextBlob(x).sentiment.polarity)

# Veri setini gösterelim
print(df)

Bu sefer, bir müşteri churn (terk) durumunu belirlemek için bir telekomünikasyon şirketinin müşteri veri setini ele alalım. Özellik mühendisliği yaparak müşteri churn’ünü tahmin edecek bir modele daha iyi girdi sağlamaya çalışalım.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# Örnek bir telekomünikasyon müşteri veri seti oluşturalım
data = {'CustomerID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
        'MonthlyCharge': [80, 120, 100, 50, 60, 90, 110, 95, 75, 130],
        'TotalSpent': [800, 2400, 1200, 400, 600, 1800, 2200, 1900, 900, 2600],
        'ContractMonths': [12, 24, 12, 1, 6, 18, 24, 20, 8, 36],
        'SupportCalls': [2, 3, 1, 0, 1, 2, 3, 1, 0, 4],
        'Churn': [0, 1, 0, 0, 0, 1, 1, 0, 0, 1]}

df = pd.DataFrame(data)

# Özellik mühendisliği yapalım
# 1. Müşterinin harcama alışkanlığını belirten 'SpendingScore' özelliğini oluşturalım
df['SpendingScore'] = pd.qcut(df['MonthlyCharge'] * df['ContractMonths'], q=4, labels=False)

# 2. Müşterinin hizmete bağımlılığını belirten 'SupportDependency' özelliğini oluşturalım
df['SupportDependency'] = df['SupportCalls'] / df['ContractMonths']

# Veri setini gösterelim
print(df)

# Bağımsız ve bağımlı değişkenleri ayıralım
X = df[['MonthlyCharge', 'TotalSpent', 'ContractMonths', 'SupportCalls', 'SpendingScore', 'SupportDependency']]
y = df['Churn']

# Veriyi eğitim ve test setlerine bölelim
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Modeli eğitelim (Random Forest kullanalım)
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

# Test seti üzerinde modelin performansını değerlendirelim
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Model Accuracy: {accuracy * 100:.2f}%')

Bu örnekte, çeşitli özellik mühendisliği tekniklerini kullanarak kredi başvurularını daha etkili bir şekilde değerlendirecek bir model oluşturmayı hedefleyelim.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# Örnek bir kredi başvuru veri seti oluşturalım
data = {'ApplicantIncome': [5000, 8000, 12000, 3000, 7000, 10000, 15000, 6000, 9000, 11000],
        'LoanAmount': [10000, 15000, 20000, 5000, 12000, 18000, 25000, 11000, 16000, 20000],
        'CreditScore': [600, 700, 750, 550, 680, 720, 780, 590, 710, 740],
        'YearsOfEmployment': [2, 4, 6, 1, 3, 5, 8, 2, 4, 7],
        'DebtToIncomeRatio': [0.2, 0.25, 0.3, 0.15, 0.22, 0.28, 0.35, 0.18, 0.24, 0.32],
        'Approved': [1, 1, 1, 0, 1, 1, 1, 0, 1, 1]}

df = pd.DataFrame(data)

# Özellik mühendisliği yapalım
# 1. Başvuranın kredi ödeme kapasitesini belirten 'RepaymentCapacity' özelliğini oluşturalım
df['RepaymentCapacity'] = df['ApplicantIncome'] - df['LoanAmount']

# 2. Başvuranın finansal gücünü belirten 'FinancialStrength' özelliğini oluşturalım
df['FinancialStrength'] = df['CreditScore'] * df['YearsOfEmployment']

# Veri setini gösterelim
print(df)

# Bağımsız ve bağımlı değişkenleri ayıralım
X = df[['ApplicantIncome', 'LoanAmount', 'CreditScore', 'YearsOfEmployment', 'DebtToIncomeRatio', 'RepaymentCapacity', 'FinancialStrength']]
y = df['Approved']

# Veriyi eğitim ve test setlerine bölelim
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Modeli eğitelim (Random Forest kullanalım)
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

# Test seti üzerinde modelin performansını değerlendirelim
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Model Accuracy: {accuracy * 100:.2f}%')

Bu örnek, çeşitli özelliklerin birleştirilmesiyle enerji verimliliğini artırmaya yönelik bir modelin nasıl geliştirilebileceğini gösterir.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error

# Sürdürülebilirlik Veri Seti Oluşturma
# Örneğin: Enerji tüketimi, üretim miktarı, hava durumu, iş saatleri gibi çeşitli özellikler içeren bir veri seti

# Veri Setini Yükleme
data = pd.read_csv("surdurulebilirlik_verisi.csv")

# Özellik Mühendisliği: Enerji Tüketimi Tahmini
# Enerji tüketimini etkileyen özellikleri seçme ve yeni özellikler türetme
features = data[["Uretim_Miktari", "Hava_Durumu", "Is_Saatleri"]]
target = data["Enerji_Tuketimi"]

# Eğitim ve Test Veri Setlerini Oluşturma
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)

# Model Oluşturma ve Eğitme
model = RandomForestRegressor()
model.fit(X_train, y_train)

# Tahmin Yapma
predictions = model.predict(X_test)

# Model Performansını Değerlendirme
mae = mean_absolute_error(y_test, predictions)
print(f"Ortalama Mutlak Hata: {mae} birim")

# Modeli Kullanarak Enerji Tüketimi Optimizasyonu
# Örneğin: İş saatleri dışında enerji tüketimini azaltmaya yönelik stratejiler geliştirme

ETİKETLER: Feature Engineering, Özellik Mühendisliği, Python, Python Veri Analizi, Veri Analizi Aşamaları, Veri Analizi Dersleri
Editor Şubat 25, 2024
Paylaş
Whatsapp Whatsapp LinkedIn Email Copy Link

Son Yazılar

  • LangChain Tool Tanıtımı (Kategorik)
  • Flowise Tool Node Tanıtımı
  • Flowise – Hazır Chatflow Akışları
  • Flowise – Hangi Node Ne Zaman Kullanılır?
  • Flowise Eğitimi – Node’ları Tanıyalım

Takip Et

Sponsor Linkler

İlginizi Çekebilir

Büyük Dil Modelleri (LLM)LLM - AI AJANLAR

Büyük Dil Modellerinde Yanıt Süresi Optimizasyonu: Ollama ve Langchain

Doğal Dil İşleme (NLP)LLM - AI AJANLARPython Veri AnaliziVeri Analizi

Türkiye’deki Mobil Bankacılık Deneyiminde Neler Gizli: “Part1 – IOS”

Makine ÖğrenmesiPython Veri AnaliziVeri Analizi

Sorun: CatBoost ve NumPy 2.x Anlaşamıyorlar

BLOGPython Veri AnaliziVeri Analizi

Yemek Yapmayı Kolaylaştıran Gizli Güç: Yapay Zeka ile Tarif Önerisi ve Zorluk Tahmini

Türker UZUNTürker UZUN
Takip Et

Veri Analizi, ETL Süreçleri, Makine Öğrenimi, Doğal Dil İşleme Projeleri, Python Dersleri, Python Blog, Teknoloji Yazarı, AI Agents

Removed from reading list

Undo