Kaynak Bilgisi: Bu çalışma materyali, sağlanan ders ses kaydı transkripti ve kopyalanmış metin kaynaklarından derlenmiştir.
Veri Madenciliği ve R Yazılımı: Temel Kavramlar ve Uygulamalar
Giriş 📚
Günümüz dünyasında iletişim ve bilişim teknolojilerindeki hızlı gelişmeler, işletmeler ve kurumlar için sürekli değişime ayak uydurmayı zorunlu kılmaktadır. Ekonomik koşullar, iş yapış biçimleri, müşteri beklentileri ve rekabet stratejileri gibi birçok alanda ortaya çıkan bu değişimlere uyum sağlamak, yöneticilerin doğru kararlar almasını ve stratejiler belirlemesini gerektirir. Bu da ancak zamanında ve doğru bilgiye erişimle mümkün olmaktadır. Bilişim teknolojilerindeki ilerlemeler sayesinde büyük miktarda veri kolaylıkla elde edilip saklanabilse de, bu verilerden anlamlı bilgilere ulaşmak her zaman kolay değildir. Geleneksel analiz yöntemleri, artan veri miktarı karşısında yetersiz kalmaya başlamıştır. Veri madenciliği, bu ihtiyaca yanıt olarak ortaya çıkmış, çok büyük ve karmaşık veriler içinden geleneksel yöntemlerle elde edilemeyecek bilgilere ulaşmayı ve bu bilgileri rekabet avantajı sağlayacak kararlarda kullanmayı amaçlayan güçlü bir araçtır. Bu süreçte R yazılımı gibi araçlar, veri madenciliği uygulamalarında önemli bir rol oynamaktadır.
Veri Madenciliğinin Tarihsel Gelişimi 📈
Veri madenciliğinin tarihi, bilgisayarların hayatımıza girmesiyle başlamıştır:
- 1950'ler: İlk bilgisayarlar sayım ve karmaşık hesaplamalar için kullanıldı.
- 1960'lar: Veri depolama ihtiyacıyla veritabanı kavramı ortaya çıktı. Basit öğrenmeli bilgisayarlar ve perseptronlar geliştirildi.
- 1970'ler: İlişkisel Veritabanı Yönetim Sistemleri yaygınlaştı, basit kurallara dayalı uzman sistemler ve makine öğrenimi uygulamaları başladı.
- 1980'ler: Veritabanı yönetim sistemleri genişledi, SQL sorgu dili önem kazandı.
- 1990'lar: Veri miktarının artmasıyla faydalı bilgi çıkarma ihtiyacı doğdu. 1989'da Veritabanlarında Bilgi Keşfi (KDD) Çalışma Grubu toplandı ve 1991'de temel tanım ve kavramlar ortaya kondu. 1992'de ilk veri madenciliği yazılımı geliştirildi.
- 2000'ler: Veri madenciliği sürekli gelişerek hemen hemen tüm alanlara uygulanmaya başlandı ve yaygınlaştı.
Veri Madenciliğine Etki Eden Disiplinler 🤝
Veri madenciliği, birçok farklı disiplinin kesişim noktasında yer alır ve bu disiplinlerden beslenir:
- İstatistik: Verilerin analizi ve değerlendirilmesi için temel yöntemleri sağlar.
- Makine Öğrenimi: Bilgisayarların verilerden çıkarımlar yaparak öğrenmesini ve yeni işlemler üretmesini sağlar. Yapay zekânın temelini oluşturur.
- Görselleştirme: Verilerin tablolar, grafikler gibi görsellerle sunularak daha kolay anlaşılmasına ve analiz edilmesine yardımcı olur.
- Veritabanı Sistemleri: Büyük veri yığınlarının düzenli bir şekilde depolanması, organize edilmesi ve yönetilmesi için altyapı sağlar.
- Örüntü Tanıma: Verilerdeki düzenli ve sistematik tekrar eden ilişki modellerini (örüntüleri) keşfetmek için kullanılır.
Veri Madenciliği Kavramı ve Veritabanlarında Bilgi Keşfi (KDD) Süreci 💡
Veri, Enformasyon ve Bilgi 📚
- Veri: Ham gözlemler, işlenmemiş gerçekler veya izlenimlerdir (harf, rakam, sembol). Tek başlarına anlam ifade etmezler.
- Enformasyon: Verinin anlam oluşturacak şekilde düzenlenmiş halidir. Konuyla ilgili kişi tarafından anlaşılır ve yorumlamada bakış açısı sağlar.
- Bilgi: Verinin işlenmiş ve dönüştürülmüş halidir. Kaydetme, sınıflandırma, sıralama, hesaplama, özetleme, analiz ve raporlama gibi işlemlerle elde edilir. Karar verme sürecine destek olacak anlam kazanmış veridir.
Veri Ambarı ve OLAP 📊
Veri madenciliği için doğrudan işlemsel veritabanları kullanılmaz. Bunun yerine, işletmelerin iç ve dış veri kaynaklarından toplanan, belirli bir amaca göre konu odaklı düzenlenmiş ve veri madenciliği için hazır hale getirilmiş özel veritabanlarına veri ambarı denir. Veri ambarının alt kümeleri olan ve belirli bir iş sürecini ilgilendiren parçalarına ise veri deposu (data mart) denir.
OLAP (On-Line Analytical Processing - Çevrimiçi Analitik İşleme), veri ambarındaki veriler üzerinde çok boyutlu, çok yönlü analiz ve sorgulama yapılmasını sağlayan sistemlerdir. Geleneksel sorgulamalardan farklı olarak, yöneticilere stratejik kararlarında destek olacak yararlı bilgiler sunar. Örneğin, bir kablo üreticisinin farklı bölgelerdeki ürün satışlarını geçmiş dönemlerle karşılaştırması OLAP ile mümkün olur.
Veritabanlarında Bilgi Keşfi (KDD) Sürecinin Adımları ✅
Veritabanlarında Bilgi Keşfi, veriden faydalı bilginin keşfedilmesi sürecinin tamamıdır. Veri madenciliği ise bu sürecin bir adımıdır. KDD süreci beş temel aşamadan oluşur:
- Amacın Tanımlanması: Veri madenciliğinin hangi problem veya amaca yönelik yapılacağının belirlenmesi. Elde edilecek sonuçların başarı düzeyleri ve maliyet/kazanım tahminleri bu aşamada yapılır.
- Veriler Üzerinde Ön İşlemlerin Yapılması: Verilerin veri madenciliği için hazırlanmasıdır. Bu, KDD sürecinin en çok zaman alan aşamasıdır.
- Verilerin Toplanması ve Birleştirilmesi: Amaca uygun verilerin iç ve dış kaynaklardan toplanması ve entegrasyonu.
- Verilerin Temizlenmesi:
- Kayıp Veriler: Eksik verilerin (örn. doğum tarihi) tespiti ve giderilmesi (kaydı çıkarma, manuel girme, ortalama değer atama, tahmin etme).
- Gürültülü Veriler: Doğru olmayacak kadar uç değerlerin (aykırı değerler) veya yanlış girilmiş verilerin tespiti ve düzeltilmesi (bölümleme, sınır değerleri kullanma, kümeleme, regresyon).
- Veri Uyumsuzlukları: Farklı kaynaklardan gelen verilerdeki uyumsuzlukların (farklı zaman dilimleri, ölçü birimleri, kodlamalar) giderilmesi.
- Verilerin Yeniden Yapılandırılması: Verilerin kullanılacak algoritmalara uygun hale getirilmesi.
- Normalizasyon: Farklı değerlerdeki verilerin belirli aralıklara (örn. 0-1) dönüştürülmesi.
- Azaltma: Veri kümesinin temel özelliklerini kaybetmeden miktar olarak azaltılması (boyut azaltma, veri sıkıştırma).
- Dönüştürme: Verilerin gösterim biçiminin algoritmanın etkinliğini artıracak şekilde düzenlenmesi (örn. sürekli veriyi kategorik hale getirme).
- Modelin Kurulması ve Değerlendirilmesi: En uygun veri madenciliği modelinin belirlenmesi, kurulması ve geçerliliğinin çeşitli açılardan sınanması.
- Modelin Kullanılması ve Yorumlanması: Geçerliliği kabul edilen modelin uygulanması ve elde edilen sonuçların belirlenen amaca ulaşılıp ulaşılmadığı açısından yorumlanması.
- Modelin İzlenmesi: Modelin zaman içindeki performansının sürekli olarak izlenmesi ve gerektiğinde değişiklik veya düzenlemelerin yapılması.
Veri Madenciliğinde Kullanılan Modeller 🧠
Veri madenciliği modelleri temel olarak iki ana başlık altında incelenir:
1. Tahmin Edici Modeller 🔮
Eldeki verilerden hareketle bir model geliştirerek, önceden sonuçları bilinmeyen veri kümeleri için sonuçları tahmin etmeyi amaçlar. Bilinenden yola çıkarak bilinmeyeni tahmin etme çabasıdır. Genellikle denetimli öğrenme prensibine dayanır (algoritma, nesnelerin özelliklerini ve tanımlanmış sonuç değişkenlerini kullanarak öğrenir).
- Regresyon Modelleri: Bağımsız değişkenler ile bağımlı değişkenler arasındaki ilişkiyi en iyi tanımlayan fonksiyonu elde etmeyi amaçlar.
- Sınıflandırma Modelleri: Verileri istatistik ve/veya makine öğrenimi yöntemleri kullanarak önceden belirlenen sınıflara atar.
Yaygın Tahmin Edici Algoritmalar:
- Karar Ağaçları: Sınıflandırma problemlerinde sıkça kullanılır, anlaşılması kolaydır. Kök düğümden yaprak düğümlere doğru dallanarak karar verme noktalarını temsil eder.
- Yapay Sinir Ağları (YSA): Biyolojik sinir sistemlerini model alarak karmaşık hesaplamalar yapar. Özellikle doğrusal olmayan ilişkileri modellemede etkilidir.
- Genetik Algoritmalar: Karmaşık optimizasyon problemlerinin çözümünde kullanılır. Evrim sürecine benzer bir yapıda çalışır.
- Zaman Serisi Analizi: Zaman değişkeni ile ilişkilendirilmiş verilerin tahmin edilmesinde kullanılır (örn. borsa tahminleri).
- k-En Yakın Komşu (k-NN): Bir örnek kümesindeki gözlem değerlerini inceleyerek yeni bir verinin ait olduğu sınıfı, en yakın komşularına göre belirler.
- Bayes Sınıflandırması: Mevcut sınıflandırılmış verileri kullanarak yeni bir verinin belirli bir sınıfa girme olasılığını hesaplar.
2. Tanımlayıcı Modeller 🔍
Verilerdeki örüntü veya ilişkileri tanımlar. Analiz edilen verilerin özelliklerini incelemek için kullanılır ve veritabanındaki kayıtlar arasında sık rastlanan kuralları ortaya çıkarır. Genellikle denetimsiz öğrenme prensibine dayanır (önceden belirlenmiş sınıflar yoktur, algoritma verilerdeki benzerliklere göre gruplar oluşturur).
Yaygın Tanımlayıcı Modeller:
- Kümeleme: Verileri birbirlerine olan benzerliklerine göre anlamlı gruplara ayırmaktır. Örneğin, müşteri segmentasyonu.
- Birliktelik Kuralları: Veriler arasındaki güçlü birliktelik özelliklerini tanımlayan örüntüleri keşfeder (örn. "Bira alan müşteriler %80 olasılıkla cips de alır"). Pazar sepeti analizi olarak da bilinir.
- Sıra Örüntü Analizi: Birliktelik kurallarına benzer ancak olayların zaman sıralarıyla ilgilenir (örn. "A ameliyatı olan hastada 10 gün içinde %40 olasılıkla B enfeksiyonu oluşur").
- Özetleme (Karakterizasyon/Genelleştirme): Verileri basit tanımları yapılmış alt gruplara yerleştirme ve veritabanı hakkında betimleyici bilgiler (ortalama, standart sapma) ortaya çıkarma işlemidir.
Veri Madenciliğinin Diğer Veri Analizi Yaklaşımları ile Karşılaştırılması 🆚
Veri madenciliği, geleneksel istatistiksel analiz, veri sorgusu ve OLAP gibi yaklaşımlardan farklılaşır:
-
Geleneksel İstatistiksel Analiz:
- Genellikle bir hipotez kurularak başlanır.
- İstatistikçiler eşitlikleri kendileri geliştirir.
- Genellikle sayısal veriler üzerinde çalışır.
- Kirli veri analiz sırasında bulunur ve filtrelenir.
- Sonuçlar kolay yorumlanabilir, ancak uzman istatistikçilere ihtiyaç duyulur.
-
Veri Madenciliği:
- Herhangi bir hipoteze gerek duyulmaz.
- Algoritmalar eşitlikleri otomatik olarak geliştirir.
- Sayısal verilere ek olarak metin, ses gibi farklı veri türleri üzerinde de işlem yapabilir.
- Temizlenmiş veri üzerinde gerçekleştirilir.
- Sonuçları yorumlamak daha karmaşık olabilir.
-
Kullanım Amacına Göre:
- Veri Sorgusu: Aranan bilginin ne olduğu bilindiğinde ve büyük veritabanlarıyla çalışıldığında.
- OLAP: Büyük veritabanlarında veriler arasındaki basit ilişkilerin keşfedilmek istendiği durumlarda.
- Veri Madenciliği: Veriler arasında var olan fakat açıkça gözlenemeyen örüntü ve ilişkilerin keşfedilmesi istendiğinde.
-
Keşfedilmek İstenen Bilgi Tipine Göre:
- Sığ Bilgi (SQL): Seçilen kayıtlara ait ortalama ve toplam gibi özet bilgiler.
- Çok Boyutlu Bilgi (OLAP): Farklı özelliklerin ortaya çıkma sıklığı hakkında bilgi.
- Gizli Bilgi (Veri Madenciliği): Önceden tahmin edilemeyen örüntü ve ilişkiler.
- Derin Bilgi (Veri Madenciliği): Sadece önsel teknik veya meta bilginin kullanımıyla keşfedilebilecek gizli örüntüler ve ilişkiler.
Veri Madenciliğinin Uygulandığı Alanlar 🌍
Veri madenciliği, büyük miktarda verinin üretildiği ve kaydedildiği, karar verme sürecine ihtiyaç duyulan tüm alanlarda uygulanabilir. Başlıca uygulama alanları şunlardır:
- Pazarlama: Müşteri satın alma örüntülerini belirleme, pazar dilimlerini tanımlama, müşteri elde tutma, satış tahmini, müşteri ilişkileri yönetimi.
- Finans (Bankacılık, Sigortacılık, Borsa): Finansal göstergeler arasındaki korelasyonları bulma, kredi kartı dolandırıcılıklarını belirleme, risk analizi, hisse senedi fiyat tahminleri.
- Sağlık: Yeni ilaç geliştirme, hastalıkların teşhis ve tedavisi, test sonuçlarının tahmini.
- Endüstri ve Mühendislik: Kaynakların optimal kullanımı, üretim süreçlerinin kontrolü, kalite kontrol analizleri.
- Eğitim: Öğrenci verilerinin analizi, başarı/başarısızlık nedenlerinin tespiti, daha etkili eğitim ortamları oluşturma.
- Kamu, İstihbarat ve Güvenlik: Suç tespiti, terörle mücadele, siber güvenlik.
R Yazılımı: Temeller ve Veri İşleme 💻
R Yazılımına Giriş ve Elde Edilmesi 📥
R yazılımı, istatistiksel analiz, grafik çizme ve veri işleme işlemleri için kullanılan, İnternet aracılığıyla ücretsiz olarak dağıtılan genel lisanslı bir programdır. Açık kaynak kodlu olması sayesinde programlama bilgisine sahip kişiler tarafından geliştirilebilir ve hemen hemen tüm işletim sistemlerinde çalışabilir. R yazılımı, http://www.r-project.org adresinden ücretsiz olarak temin edilebilir. Kurulum sonrası, R Console adı verilen komut satırı arayüzü üzerinden komutlar girilerek işlemler yapılır.
Temel Komutlar ve Veri Yapıları ⌨️
R, değişkenler, vektörler, matrisler, listeler ve veri çerçeveleri gibi çeşitli veri yapılarını destekler.
- Matematiksel İşlemler ve Değişken Atamaları:
> 72 + 45 [1] 117 > x <- 72 + 45 # Sonucu x değişkenine atar > x [1] 117 - Yardım Alma:
help(fonksiyon_adı)komutu ile fonksiyonlar hakkında bilgi alınabilir.> help(mean) - Vektörler:
c()fonksiyonu ile oluşturulur.length()ile uzunluğu öğrenilir.seq()ile düzenli seriler,rep()ile tekrar eden değerler yaratılır.> x <- c(1, 2, 3, 4, 5) > x [1] 1 2 3 4 5 > length(x) [1] 5 > isim <- c("Defne", "Kuzey", "Alara", "Miray") > seq(0, 8, 1) # 0'dan 8'e 1'er artan [1] 0 1 2 3 4 5 6 7 8 > rep(3, 8) # 8 adet 3 [1] 3 3 3 3 3 3 3 3 - Matrisler:
matrix()fonksiyonu ile oluşturulur. Elemanlarınamatris[satır, sütun]ile erişilir.> veri <- c(6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6) > matrisim <- matrix(veri, ncol = 2, byrow = TRUE) > matrisim [,1] [,2] [1,] 6 5 [2,] 4 3 [3,] 2 1 [4,] 1 2 [5,] 3 4 [6,] 5 6 > matrisim[2, 2] # 2. satır, 2. sütun elemanı [1] 3 - Mantık Operatörleri ve Fonksiyonları: Karşılaştırmalar (
<,>,==,!=,<=,>=) ve mantıksal işlemler (&,|,!) için kullanılır.is.character(),is.numeric()gibi fonksiyonlar değişkenin tipini kontrol eder.> degisken <- 23 == 4 > degisken [1] FALSE > is.character("Kuzey") [1] TRUE - Liste Nesneleri: Farklı türdeki nesneleri (veri seti, korelasyon matrisi vb.) bir araya getirmek için kullanılır.
> birlikte <- list(veri = x, korelasyon = korx) > birlikte$korelasyon # İsimle erişim - Data Frame: R'deki en yaygın veri yapılarından biridir. Veri seti içerisindeki faktör listeleri ve gözlem birimlerini bir araya getirir. Her sütun bir değişkeni, her satır bir gözlemi temsil eder.
⚠️ Kayıp değerler> ogrencinot <- data.frame(isim, betimsel, karar, bilgisayar, matris) > summary(ogrencinot$betimsel) # Sütuna erişim ve özet istatistiklerNAile temsil edilir ve fonksiyonların bu değerleri nasıl işlediği kontrol edilmelidir.
Kişisel Fonksiyon Oluşturma 🛠️
R'nin en güçlü özelliklerinden biri, kullanıcıların function() komutu yardımıyla kendi fonksiyonlarını yazabilmesidir. Bu, tekrarlayan analizler veya özel teknikler için özelleştirilmiş çözümler üretmeyi sağlar.
> ozetle <- function(veri){
+ ozet <- summary(veri)
+ sapma <- var(veri)
+ par(mfrow = c(1, 2)) # Bir satırda 2 adet grafik
+ hist(veri)
+ boxplot(veri)
+ return(list(ozet = ozet, sapma = sapma)) # Birden fazla değer döndürmek için liste kullanılır
+ }
> ozetle(x)$sapma # Fonksiyonu çalıştırma ve belirli bir değeri alma
Hazır Veri Aktarımı 📤
Veri setleri genellikle başka programlardan (örn. Excel) R'ye aktarılır. read.csv() gibi fonksiyonlar, virgülle ayrılmış değerler (CSV) dosyalarını okumak için kullanılır.
> verisetim <- read.csv("e:\\veriseti.csv", header = TRUE, sep = ";")
Ek Kütüphane Yönetimi 📦
R'nin yetenekleri, R projesi ekibi veya diğer kullanıcılar tarafından geliştirilen binlerce ek kütüphane (paket) ile genişletilebilir. Bu kütüphaneler, "Packages" menüsünden "Install Package(s)" seçeneği ile kolayca yüklenebilir ve library(kütüphaneismi) fonksiyonu ile etkinleştirilir. Kütüphanelerdeki fonksiyonlar hakkında bilgiye "help" menüsü "Html Help" seçeneği ile erişilebilir.








