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ı 07 – Anomali Tespiti
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ı 07 – Anomali Tespiti
Python Veri Analizi

Veri Analizi Aşamaları 07 – Anomali Tespiti

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

Bir veri setindeki anomali, genel veri dağılımından sapma gösteren bir veri noktasıdır. Anomaliler, hatalı veri girişi, veri toplama hataları veya veri setinde nadir bulunan bir durumu temsil edebilir. Anomalileri tespit etmek ve uygun şekilde ele almak, veri analizinin ve makine öğrenmesi modellerinin doğruluğu için önemlidir.

Anomali Tespiti Teknikleri:

  • İstatistiksel Tekniklerin Ayrıntılı İncelenmesi:
  • İstatistiksel teknikler, veri setlerindeki anomali tespitinde kullanılan yöntemlerdir. Bu teknikler, verilerin genel dağılımından sapmaları belirleyerek anomali olarak tanımlanan nadir durumları ortaya çıkarmayı amaçlar. İstatistiksel yöntemler arasında Z-skoru (Z-score) ve IQR (interquartile range) gibi ölçütler kullanılarak, veri noktalarının genel trendten ne kadar saptığı değerlendirilir. Bu sayede, istatistiksel anormalliklerin tespiti ve analizi mümkün olur. İstatistiksel teknikler, özellikle veri setinin genel özelliklerine dair bilgi sağlayarak, veri analizinde kullanıcıya önemli bilgiler sunar.
import numpy as np
import matplotlib.pyplot as plt

def detect_anomalies_zscore(data, threshold=3.0):
    """
    Z-skoru kullanarak veri setindeki anomalileri tespit eder.

    Parameters:
    - data (np.ndarray): Anomali tespiti yapılacak veri seti.
    - threshold (float): Anomali olarak kabul edilecek Z-skoru eşik değeri.

    Returns:
    - anomalies (np.ndarray): Anomalileri içeren bir dizi.
    """

    mean_val = np.mean(data)
    std_dev = np.std(data)

    z_scores = (data - mean_val) / std_dev

    anomalies = np.where(np.abs(z_scores) > threshold)[0]

    return anomalies

# Örnek veri seti oluşturma
np.random.seed(42)
data = np.concatenate([np.random.normal(0, 1, 900), np.random.normal(10, 1, 100)])

# Anomalileri tespit etme
anomalies_zscore = detect_anomalies_zscore(data)

# Veriyi ve tespit edilen anomalileri görselleştirme
plt.figure(figsize=(10, 6))
plt.plot(data, label='Veri')
plt.scatter(anomalies_zscore, data[anomalies_zscore], color='red', label='Anomaliler')
plt.title('Z-skoru ile Anomali Tespiti')
plt.xlabel('Veri Noktası')
plt.ylabel('Değer')
plt.legend()
plt.show()
  • Görselleştirme Tekniklerinin Pratik Uygulamaları:
    • Görselleştirme teknikleri, veri setlerindeki anomali tespitinde kullanılan pratik uygulamalardır. Bu teknikler, veriyi grafiksel olarak temsil ederek, görsel analiz yoluyla anormal değerleri belirlemeyi amaçlar. Görselleştirme yöntemleri arasında kutu çizimleri (box plots), histogramlar, scatter plot’lar ve zaman serisi grafiği gibi araçlar bulunur. Bu teknikler, veri setindeki örüntüleri ve dağılımları anlamak, anormallikleri gözlemlemek ve veri analizine hızlı bir görsel bakış sağlamak için etkili bir yoldur. Görselleştirme teknikleri, veri bilimi uzmanlarına, veri setlerinin karmaşıklığını anlama ve anormallikleri görsel olarak tanımlama konusunda yardımcı olur.
  • Makine Öğrenmesi Tekniklerinin Detaylı İncelemesi:
    • K-Means, veriyi belirli sayıda küme (burada 2 küme) içine ayırır ve her bir veri noktasının bu kümelerden ne kadar uzakta olduğunu ölçer. Bu uzaklık değerleri, belirli bir eşik değerinin üzerinde olan noktalar anomaliler olarak kabul edilir.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

def detect_anomalies_kmeans(data, num_clusters=2):
    """
    K-Means kullanarak veri setindeki anomalileri tespit eder.
    Parameters:
    - data (np.ndarray): Anomali tespiti yapılacak veri seti.
    - num_clusters (int): K-Means algoritması için kullanılacak küme sayısı.
    Returns:
    - anomalies (np.ndarray): Anomalileri içeren bir dizi.
    """

    data = data.reshape(-1, 1)  # K-Means için veriyi uygun şekle getirme

    kmeans = KMeans(n_clusters=num_clusters, random_state=42)
    kmeans.fit(data)
    cluster_centers = kmeans.cluster_centers_
    distances = [np.linalg.norm(x - cluster_centers) for x in data]
    anomalies = np.where(np.array(distances) > np.percentile(distances, 95))[0]
    return anomalies

# Örnek veri seti oluşturma
np.random.seed(42)
data = np.concatenate([np.random.normal(0, 1, 900), np.random.normal(10, 1, 100)])

# Anomalileri tespit etme
anomalies_kmeans = detect_anomalies_kmeans(data)

# Veriyi ve tespit edilen anomalileri görselleştirme
plt.figure(figsize=(10, 6))
plt.plot(data, label='Veri')
plt.scatter(anomalies_kmeans, data[anomalies_kmeans], color='red', label='Anomaliler')
plt.title('K-Means ile Anomali Tespiti')
plt.xlabel('Veri Noktası')
plt.ylabel('Değer')
plt.legend()
plt.show()
  • Python’daki Anomali Tespiti Kütüphanelerinin Karşılaştırılması:
    • Python, anomali tespiti için kullanılan bir dizi kütüphane içermektedir. Bu kütüphaneler farklı algoritmalar ve yöntemler sunarak kullanıcıya çeşitli seçenekler sunar. İşte bazı önemli anomali tespiti kütüphaneleri ve kısa bir karşılaştırma:
    • Scikit-learn:
      • Avantajlar:
        • Geniş bir makine öğrenimi kütüphanesi olması nedeniyle çeşitli algoritmaları içerir.
        • Kolayca entegre edilebilir ve yaygın olarak kullanılır.
        • İstatistiksel teknikler ve temel makine öğrenimi modelleri içerir.
      • Dezavantajlar:
        • Anomali tespiti için özel olarak tasarlanmamıştır, bu nedenle PyOD gibi özel kütüphanelere göre belirli senaryolarda daha sınırlı olabilir.
    • PyOD (Python Outlier Detection):
      • Avantajlar:
        • Özel olarak anomali tespiti üzerine odaklanmış bir kütüphanedir.
        • Birçok popüler anomali tespiti algoritmasını içerir.
        • Kolay kullanım sağlar ve çeşitli metrikler sunar.
      • Dezavantajlar:
        • Genel makine öğrenimi için tasarlanmamıştır, bu nedenle temel makine öğrenimi algoritmalarını içermez.
    • Elliptic Envelope:
      • Avantajlar:
        • İstatistiksel temelli bir yöntemdir ve çok değişkenli normal dağılıma dayanır.
        • Basit ve hızlı bir çözümdür.
      • Dezavantajlar:
        • Sadece çok değişkenli normal dağılıma uyan veri setlerinde etkilidir.
    • Isolation Forest:
      • Avantajlar:
        • Özellikle büyük boyutlu veri setlerinde etkili olan bir orman tabanlı bir yöntemdir.
        • Hızlı ve paralel hesaplamaya uygun.
      • Dezavantajlar:
        • Parametre ayarı gerektirebilir.
    • One-Class SVM (Support Vector Machine):
      • Avantajlar:
        • Tek sınıflı öğrenme kullanarak anomali tespiti yapar.
        • Veri setinin normal sınıfını temsil etmek için eğitilir.
      • Dezavantajlar:
        • Ayarlanması gereken birkaç parametre vardır.

Gerçek Hayat Senaryoları ve Çözümleri:

Senaryo 1: Finansal Sahtekarlık Tespiti

Senaryo: Bir finans kuruluşu, kredi kartı işlemlerinde sahtekarlığı tespit etmeye çalışmaktadır. Sahtekarlığı belirlemek için düzenli olarak gerçekleşen işlemlerden sapmaları tespit etmek gerekiyor.

Çözüm: Makine öğrenimi tabanlı bir anomali tespiti yöntemi kullanılabilir. PyOD kütüphanesinde bulunan birçok algoritma, finansal sahtekarlık tespiti için kullanılabilir. Örneğin, Isolation Forest veya One-Class SVM, normal işlem desenlerini öğrenir ve bunlardan sapmaları belirler.

from pyod.models.iforest import IForest
import pandas as pd

# Veri setini yükle
data = pd.read_csv("credit_card_transactions.csv")

# Modeli oluştur ve eğit
model = IForest()
model.fit(data)

# Anomalileri tespit et
anomaly_scores = model.decision_function(data)
threshold = anomaly_scores.mean() + 3 * anomaly_scores.std()  # Özel bir eşik belirleme
anomalies = data[anomaly_scores > threshold]

Senaryo 2: Endüstriyel Üretim Hata Tespiti

Senaryo: Bir üretim tesisinde, üretilen ürünlerin kalitesini kontrol etmek için sensörler kullanılmaktadır. Sensör verilerindeki anomaliler, üretim hatalarını ve kalite sorunlarını tespit etmek için kullanılmalıdır.

Çözüm: Zaman serisi analizi ve istatistiksel teknikler kullanarak üretim sensör verilerindeki anomalileri tespit edebiliriz. Örneğin, hareketli ortalama veya Z-skoru kullanabiliriz.

import pandas as pd
import numpy as np

# Sensör verilerini yükle
sensor_data = pd.read_csv("production_sensor_data.csv")

# Hareketli ortalama ve standart sapma hesapla
window_size = 10
sensor_data['rolling_mean'] = sensor_data['value'].rolling(window=window_size).mean()
sensor_data['std_dev'] = sensor_data['value'].rolling(window=window_size).std()

# Z-skoru hesapla
sensor_data['z_score'] = np.abs((sensor_data['value'] - sensor_data['rolling_mean']) / sensor_data['std_dev'])

# Anomalileri tespit et
threshold = 2.5  # Özel bir eşik belirleme
anomalies = sensor_data[sensor_data['z_score'] > threshold]

Bu senaryolarda olduğu gibi, gerçek hayat problemlerine özel çözümler geliştirmek için belirli bir endüstri veya kullanım durumunu dikkate almak önemlidir. Anomali tespiti, geniş bir uygulama yelpazesi bulunan güçlü bir araçtır, ancak kullanılacak teknik ve algoritmaların doğru seçimi büyük önem taşır.

ETİKETLER: Anomali Tespiti, 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