Spark ile Film Tavsiye Sistemi

Veriseti olarak MovieLens  verisetini kullanacağız. Bu örnekte kullanmak için küçük olan verisetini indirdim. Tavsiye sistemi için Alternating Least Squares (ALS) metodunu kullanacağız. İlk olarak, herzamanki gibi, gerekli fonksiyon ve modülleri içeri aktardık: Yeni bir Spark oturumu oluşturuyoruz: Kullandığımız işletim sistemi Türkçe ise, bir lokalizasyon problemi ortaya çıkmaktadır. Bu sorunu aşmak için aşağıdaki kodları programımıza ekliyoruz: … Okumaya devam et Spark ile Film Tavsiye Sistemi

Reklamlar

Ağaç yapılı öbekleme (Hierarchical Clustering) ve DBSCAN

Hierarchical Clustering Elimizde N-tane nokta olsun. Ağaç yapılı öbekleme algoritmasını aşağıdaki gibi özetleyebiliriz: Her bir nokta, ayrı bir öbek olarak işaretlenir. Yani, elimizdeki N-tane nokta için N-tane öbek elde ederiz. En yakın 2 öbek bulunur ve birleştirilir. Elimizdeki öbek sayısı 1 azalmış olur. Yeni elde ettiğimiz öbekle diğer öbekler arasındaki uzaklıklar hesaplanır. Tüm noktalar tek … Okumaya devam et Ağaç yapılı öbekleme (Hierarchical Clustering) ve DBSCAN

Gözetimsiz Öğrenme (K-Merkezli Öbekleme)

Şimdiye kadar incelediğimiz makine öğrenmesi algoritmaları, etiketli (labeled) eğitim kümeleri üzerinde çalışıyorlardı. Ancak, etiketli veri setleri elde etmek her zaman mümkün olmayabilir. Peki eğitim kümelerimiz etiket içermiyorsa ne olacak? Gözetimsiz öğrenme, konsept olarak gözetimli öğrenmeden çok daha farklıdır. Regresyon işlemi gerçekleştiremeyiz, çünkü giriş verilerimize karşılık gelen hedef verilerimiz yok. Sınıflandırma işlemini de Öbekleme (Clustering) algoritmalarıyla gerçekleştireceğiz. … Okumaya devam et Gözetimsiz Öğrenme (K-Merkezli Öbekleme)

Scikit-Learn ile Stacking

Önceki yazımızda stacking metodundan bahsetmiştik. Şimdi uygulamalı olarak görelim. İlk olarak her zamanki gibi gerekli fonksiyon ve modülleri içeri aktarıyoruz: Verimizi içeri aktarıp, öznitelikler ve hedef olarak ayırıyoruz: Şimdi verimizi daha önceki örneklerden farklı olarak, %60 eğitim (train), %20 geçerleme (validation) ve %20 test verisi olarak ayırmamız gerekiyor. Bunun için bir yol train_test_split fonksiyonunu iki defa kullanmak: Şimdi üç farklı … Okumaya devam et Scikit-Learn ile Stacking

Modellerin birleştirilmesi (Ensemble Learning) – 4

Boosting Boosting, bir çok zayıf öğreniciyi (weak learner) bir araya getirerek bir güçlü öğrenici (strong learner) oluşturmak anlamına gelir. Bir çok boosting metodunun ana fikri, tahmin edicileri ardışık olarak eğitmektir. En sık kullanılan boosting metodları, AdaBoost (Adaptive Boosting) ve Gradient Boosting metodlarıdır. Adaboost Bir tahmin edicinin, kendinden önce gelen tahmin ediciyi düzeltmesi için bir yol, … Okumaya devam et Modellerin birleştirilmesi (Ensemble Learning) – 4

Rastgele Ormanlar(Random Forests) ile Churn Analizi

Churn Analizi Nedir? Müşteri Kayıp Oranı (Churn Rate), müşterilerin bir ürünü ya da hizmeti kullanmayı bırakma olasığı olarak tanımlanabilir. Araştırmalara göre, bir çok iş kolu için, yeni müşteri kazanmak mevcut müşteriyi elde tutmaktan çok daha maliyetlidir. Bu nedenle şirketler churn analizi ile ürün ya da hizmeti kullanmayı bırakma olasığı yüksek olan müşterileri tespit edip, bu … Okumaya devam et Rastgele Ormanlar(Random Forests) ile Churn Analizi

Modellerin birleştirilmesi (Ensemble Learning) – 3

Rastgele Ormanlar (Random Forests) Karar ağaçları yazımızda (Link), karar ağaçlarının, rastgele ormanlar algoritmasının temel bileşeni olduğunu belirtmiştik. Rastgele ormanlar, çok sayıda karar ağacının bagging ya da pasting metodları ile bir araya getirilmesinden oluşur. Şimdi Scikit-Learn ile basit bir örnek yapalım. İlk olarak gerekli fonksiyonları içeri aktardık. Iris verisetini kullanıyoruz. RandomForestClassifier oluşturduk, verilerimizi sınıflandırıcıya besledik. Bir … Okumaya devam et Modellerin birleştirilmesi (Ensemble Learning) – 3

Modellerin birleştirilmesi (Ensemble Learning) – 2

Bagging ve Pasting Başka bir ensemble learning metodu ise, aynı algoritmayı verinin farklı altkümeleri üzerinde çalıştırmaktır. Altkümeleri oluştururken, örnekleme (sampling - kısaca verisetinden noktalar seçimi) işlemi yerine koyma (aynı nokta birden fazla kere seçilebilir) ile yapılırsa, bu yöntem bagging (bootstrap aggreating) olarak, yerine koyma ile yapılmıyor ise de, bu yöntem pasting olarak adlandırılır. Tüm tahmin ediciler eğitildikten … Okumaya devam et Modellerin birleştirilmesi (Ensemble Learning) – 2

Modellerin birleştirilmesi (Ensemble Learning) – 1

Karmaşık bir soruyu binlerce insana soralım ve verdikleri cevapları birleştirelim. Çoğu durumda, bu birleştirilmiş cevap, tek bir uzmanın verdiği cevaptan çok daha iyi olacaktır. Bu "Wisdom of the crowd" olarak adlandırılır (Daha fazla bilgi için tıklayınız). Benzer olarak, birden fazla tahmin edicinin (predictor) tahminlerini bir araya getirirsek, tek bir tahmin ediciden daha iyi sonuç elde … Okumaya devam et Modellerin birleştirilmesi (Ensemble Learning) – 1

k-En yakın komşular (k-Nearest Neighbors)

k-En yakın komşular algoritması en basit makine öğrenimi algoritmalarından biridir. Bir örnekle inceleyelim. Elimizde kırmızı ve yeşil olarak sınıflandırılmış noktalar olsun. Yıldız noktasının sınıfını tahmin etmek istiyoruz. Yıldız noktasına en yakın noktalar "komşu" olarak adlandırılır. Algoritmanın adındaki k sayısı sınıflarına bakılacak komşu sayısıdır. Noktanın komşuları en çok hangi sınıfa ait ise, tahmin o sınıftır. k=3 … Okumaya devam et k-En yakın komşular (k-Nearest Neighbors)