tag gözetimsiz-öğrenme
Apriori Algoritması Nedir? Birliktelik Kuralı Madenciliği (Apriori Algoritması)
Bu sayfada gözetimsiz-öğrenme (Apriori Algoritması Nedir? Birliktelik Kuralı Madenciliği (Apriori Algoritması)) etiketi ile işaretlenmiş 2 yapay zeka kavramını bulabilirsiniz.
Apriori, işlem veritabanlarındaki sık geçen öğe kümelerini (frequent itemsets) bulmak ve bunlardan birliktelik kuralları (association rules) çıkarmak için kullanılan temel veri madenciliği algoritmasıdır. Rakesh Agrawal ve Ramakrishnan Srikant tarafından IBM'de geliştirilerek 1994 VLDB konferansında yayımlanan bu yöntem, özellikle market sepeti analizi alanında devrim yaratan bir teknik oldu. Algoritma üç temel ölçüte dayanır. Destek (Support), bir öğe kümesinin tüm işlemler içindeki görünme oranıdır. Güven (Confidence), bir öncül kümesi satın alındığında ardıl kümesinin de satın alınma olasılığını ifade eder. Kaldıraç (Lift), gözlemlenen destek ile rasgele beklentinin oranıdır; lift>1 ise iki öğe arasında pozitif bir korelasyon vardır. Algoritma yinelemeli (iterative) bir yaklaşımla çalışır. İlk adımda her ürünün tek başına minimum destek eşiğini geçip geçmediği kontrol edilerek sık 1-öğe kümeleri belirlenir. Ardından bu sık kümeler birleştirilerek aday k-öğe kümeleri oluşturulur. Burada Apriori'nin güç noktası devreye girer: bir öğe kümesinin sık olması için tüm alt kümelerinin de sık olması zorunludur (downward closure özelliği). Bu kural, herhangi bir alt kümesi seyrek olan adayları tarama yapılmadan elemeye olanak tanır ve hesaplama maliyetini önemli ölçüde azaltır. Her adımda veritabanı taranarak destek sayımı yapılır; minimum destek eşiğinin altındakiler elenerek bir sonraki adıma geçilir. Pratik bir örnekle açıklamak gerekirse: 10.000 süpermarket işleminden 3.000'inde {ekmek, tereyağı} birlikte satın alınmışsa destek %30'dur. Ekmek alanların %72'si tereyağı da almışsa güven %72'dir. Bu durumda kaldıraç 1'den büyük olduğundan bu kural rasgele birlikteliğin ötesinde anlamlı bir ilişkiye işaret eder; çapraz satış veya raf düzenleme kararı için kullanılabilir. Algoritmanın temel sınırlılığı her öğe kümesi boyutu için veritabanının baştan taranmasıdır; büyük veri setlerinde bu çok sayıda G/Ç işlemi anlamına gelir. FP-Growth algoritması tek geçişte bir ağaç (FP-Tree) yapısı oluşturarak bu sorunu büyük ölçüde ortadan kaldırır ve pratikte Apriori'nin yerini almıştır. Python'da mlxtend.frequent_patterns.apriori fonksiyonuyla, büyük ölçekte ise PySpark MLlib'in FP-Growth implementasyonuyla kolayca uygulanabilir. Kullanım alanları arasında e-ticaret ürün öneri sistemleri, tıbbi tanı örüntü tespiti, web kullanım madenciliği, dolandırıcılık tespiti ve ağ güvenliği anomali analizi öne çıkar. Türkiye'deki e-ticaret platformları ve perakende CRM sistemleri bu tür birliktelik analizine dayanmaktadır.
Apriori Algoritması Nedir? Birliktelik Kuralı Madenciliği (Apriori Algoritması)
Apriori, işlem veritabanlarındaki sık geçen öğe kümelerini (frequent itemsets) bulmak ve bunlardan birliktelik kuralları (association rules) çıkarmak için kullanılan temel veri madenciliği algoritmasıdır. Rakesh Agrawal ve Ramakrishnan Srikant tarafından IBM'de geliştirilerek 1994 VLDB konferansında yayımlanan bu yöntem, özellikle market sepeti analizi alanında devrim yaratan bir teknik oldu. Algoritma üç temel ölçüte dayanır. Destek (Support), bir öğe kümesinin tüm işlemler içindeki görünme oranıdır. Güven (Confidence), bir öncül kümesi satın alındığında ardıl kümesinin de satın alınma olasılığını ifade eder. Kaldıraç (Lift), gözlemlenen destek ile rasgele beklentinin oranıdır; lift>1 ise iki öğe arasında pozitif bir korelasyon vardır. Algoritma yinelemeli (iterative) bir yaklaşımla çalışır. İlk adımda her ürünün tek başına minimum destek eşiğini geçip geçmediği kontrol edilerek sık 1-öğe kümeleri belirlenir. Ardından bu sık kümeler birleştirilerek aday k-öğe kümeleri oluşturulur. Burada Apriori'nin güç noktası devreye girer: bir öğe kümesinin sık olması için tüm alt kümelerinin de sık olması zorunludur (downward closure özelliği). Bu kural, herhangi bir alt kümesi seyrek olan adayları tarama yapılmadan elemeye olanak tanır ve hesaplama maliyetini önemli ölçüde azaltır. Her adımda veritabanı taranarak destek sayımı yapılır; minimum destek eşiğinin altındakiler elenerek bir sonraki adıma geçilir. Pratik bir örnekle açıklamak gerekirse: 10.000 süpermarket işleminden 3.000'inde {ekmek, tereyağı} birlikte satın alınmışsa destek %30'dur. Ekmek alanların %72'si tereyağı da almışsa güven %72'dir. Bu durumda kaldıraç 1'den büyük olduğundan bu kural rasgele birlikteliğin ötesinde anlamlı bir ilişkiye işaret eder; çapraz satış veya raf düzenleme kararı için kullanılabilir. Algoritmanın temel sınırlılığı her öğe kümesi boyutu için veritabanının baştan taranmasıdır; büyük veri setlerinde bu çok sayıda G/Ç işlemi anlamına gelir. FP-Growth algoritması tek geçişte bir ağaç (FP-Tree) yapısı oluşturarak bu sorunu büyük ölçüde ortadan kaldırır ve pratikte Apriori'nin yerini almıştır. Python'da mlxtend.frequent_patterns.apriori fonksiyonuyla, büyük ölçekte ise PySpark MLlib'in FP-Growth implementasyonuyla kolayca uygulanabilir. Kullanım alanları arasında e-ticaret ürün öneri sistemleri, tıbbi tanı örüntü tespiti, web kullanım madenciliği, dolandırıcılık tespiti ve ağ güvenliği anomali analizi öne çıkar. Türkiye'deki e-ticaret platformları ve perakende CRM sistemleri bu tür birliktelik analizine dayanmaktadır.
K-Means Kümeleme (K-Ortalama Kümeleme)
K-Means, makine öğreniminde en yaygın kullanılan gözetimsiz kümeleme algoritmalarından biridir. Temel amacı, etiketlenmemiş veri noktalarını K adet anlamlı gruba (kümeye) bölmektir; küme içindeki noktalar birbirine benzer özellikler taşırken farklı kümeler arasındaki benzerlik minimum düzeyde tutulur. Algoritma dört temel adımla çalışır. Başlatma aşamasında K adet merkez noktası (centroid) rastgele ya da K-Means++ yöntemiyle belirlenir. K-Means++, merkezleri birbirinden olabildiğince uzağa yerleştirerek daha kararlı bir başlangıç noktası oluşturur; bu da yakınsama hızını artırır ve yerel minimuma takılma riskini azaltır. Atama adımında her veri noktası, Öklid uzaklığı ölçütüyle en yakın merkeze atanır. Güncelleme adımında her küme için noktaların koordinat ortalaması hesaplanarak yeni centroid belirlenir. Atama ve güncelleme döngüsü, hiçbir centroid yer değiştirmeyene kadar ya da belirli bir iterasyon sınırına ulaşılana kadar tekrarlanır. Algoritmanın zaman karmaşıklığı O(n · K · I · d) olup n veri noktası sayısını, K küme sayısını, I iterasyon sayısını ve d boyut sayısını ifade eder. Algoritmanın en kritik parametresi K değeridir; kaç küme istediğimizi önceden belirtmek gerekir. K'yı belirlemek için en yaygın yöntem Dirsek Yöntemi'dir (Elbow Method): farklı K değerleri için Küme İçi Kareler Toplamı (WCSS — Within-Cluster Sum of Squares) grafiğe dökülerek eğrinin dirsek yaptığı nokta optimal K olarak seçilir. Silhouette Skoru, Calinski-Harabasz ve Davies-Bouldin indeksleri gibi istatistiksel ölçütler de K seçiminde kullanılan alternatif yaklaşımlardır. K-Means'ın temel avantajları sadelik ve ölçeklenebilirliktir; milyonlarca veri noktasında bile makul sürelerde çalışır. Bununla birlikte bazı sınırlılıkları göz ardı edilmemelidir: K değerinin önceden belirlenmesi zorunludur; algoritma yalnızca küresel (convex) biçimli kümelerde tutarlı sonuçlar verir; aykırı değerlere (outlier) karşı duyarlıdır ve rastgele başlangıç noktaları farklı çalışmalarda farklı sonuçlara yol açabilir. Bu zayıflıkları gidermek amacıyla K-Means++, Mini-Batch K-Means, Bisecting K-Means ve ISODATA gibi varyantlar geliştirilmiştir. Gerçek dünyada K-Means'ın uygulama alanları son derece geniştir: müşteri segmentasyonu, belge ve haber kümeleme, görüntü renk niceleme, pazar analizi, anomali tespiti ve öneri sistemlerinde özellik mühendisliği adımı olarak kullanılır. Scikit-learn, Spark MLlib ve TensorFlow gibi kütüphaneler K-Means'ı hazır API'lerle sunmakta; bu da algoritmayı veri bilimcilerin günlük araç setinin vazgeçilmez bir parçası haline getirmektedir.