PARALEL VERİ MADENCİLİĞİ
ALGORİTMALARI
BAŞARIM’09, 15-18 Nisan 2009, ODTÜ, Ankara
Veri Madenciliğine Genel Bir Bakış
Veri Madenciliğinin Görevleri
Sınıflama
Seri Sınıflama Algoritmaları
Paralel Sınıflama Algoritmaları
Öbekleme
Seri Öbekleme Algoritmaları
Paralel Öbekleme Algoritmaları
Birliktelik
Seri Birliktelik Algoritmaları
Paralel Birliktelik Algoritmaları
FP-Growth
Seri Yaklaşım
Paralel Yaklaşım – 1
Paralel Yaklaşım – 2
TOBB ETÜ Öbeği
Yapılanlar - Yapılacaklar
Büyük veri ambarlarından yararlı bilgi elde
edilmesi süreci.
Girdi
Veri
Veri Ön
işleme
Veri
Madenciliği
Özellik Seçimi
Boyut İndirme
Normalizasyon
Veri Altkümeleme
Veri Son
işleme
Filtreleme
Örüntüleri
Görselleştirme
Örüntü yorumlama
Veritabanlarında Bilgi Edinme Süreci
Kaynak: Introduction To Data Mining, Tan, P., Steinbach, M., Kumar, V., Pearson, 2006
Bilgi
Veri madenciliği birçok disiplinin birleşmesinden
oluşur.
İstatistik
Yapay Zeka,
MakineÖğrenm
e,
Örüntü Tanıma
Veri
Madencili
ği
Veritabanı Teknolojisi, Paralel Hesaplama, Dağıtık
Hesaplama
Sınıflama(Classification)
Öbekleme(Clustering)
Birliktelik(Association)
Çıktı
Girdi
Özellik
Kümesi
(x)
Sınıflam
a Modeli
Sınıf Etiketi
(y)
•Karar ağaçları(DecisionTrees)
•Bayes ağları(Bayesian Networks)
•Yapay sinir ağları(Neural Networks)
•Doğrusal(Linear)
•Olgu Tabanlı(Instance Based)
Support Vector Machine, SVM
ID3 ve C4.5
Bayes ağları kullanır
K-nearest neighbour
Yapay sinir ağları kullanır
K2 ve Naive Bayes
Karar ağaçları kullanır
Back-propagation
Doğrusal model kullanır
Olgu tabanlı model kullanır
Adaboost
Bagging
SPRINT[Shafer., J.C., Agrawal, R., Mehta, M.,
1996]
Karar ağaçları tabanlı
Çok sayıda işlemci paralel olarak bir karar ağacı
üretir
Paralel ve dağıtık boosting
Etkin ve hızlı
Seri yaklaşımdaki yineleme sayısı paralel
yapılmaktadır
Öbek, benzer nesnelerin oluşturduğu bir
gruptur.
Öbekleme, verileri aynı öbek içindekiler
benzer, ayrı öbektekiler farklı olacak
şekilde gruplama sürecidir.
Bir Gazetedeki Makalelerin Değerlendirilmesi
Makale
Kelimeler
1
dolar:1, endüstri:4, ülke:2, borç:3, anlaşma:2, hükümet: 2
2
hasta:4, semptom:2, ilaç:3, sağlık:2, klinik:2, doktor:2
3
farmasötik:2, şirket:3, ilaç:2, aşı:1, grip:3
4
mekanizma:2, iş gücü:3, market:4, endüstri:2, iş:3, ülke:1
5
ölüm:2, kanser:4, ilaç:3, kamu:4, sağlık:3, müdür:2
6
iş:5, enflasyon:3, zam:2, işsizlik:2, market:3, ülke:2,
index:3
7
yerel:3, tahmin:2, kar:1, market:2, satış:3, fiyat: 2
8
tıbbi:2, maliyet:3, kar:2, hasta:2, sağlık:3, bakım:1
Ekonomi
.1
.4
.6
.7
Sağlık
Hizmetleri
.2 .5
.8
.3
Kaynak: Introduction To Data Mining, Tan, P., Steinbach, M., Kumar, V., Pearson, 2006
Kullanılan yaklaşımlar;
Density-Based
Gaussian Mixtures
Subspace
Kullanılan temel algoritmalar;
K-means
Agglomerative/divisive hierarchical
SOM
DBSCAN
EM ile mixture modelleme
CURE
Paralel k-means
Verinin artan boyutu, kayıt sayısı ve öbek
sayısına bağlı değişiklikler analiz edilir
Paralel DBSCAN
R* - Tree
Ön işlemden geçirilen veri mesajlaşma yoluyla
diğer istemcilere dağıtılır
Birliktelik algoritması, bir birliktelikte bir niteliğin
aldığı değerler arasındaki bağımlılıkları, diğer
niteliklere göre gruplama yapılmış verileri
kullanarak bulur.
Bulunan ilişkiler (örüntüler) sıklıkla birlikte geçen
nitelik değerleri arasındaki ilişkiyi gösterir.
Uygulama Alanları
•
Pazarlama,
•
Biyoenformatik,
•
Tıbbi tanı,
•
Ağ madenciliği,
•
Bilimsel veri analizi.
Market Alışveriş Örneği
İşlem
Öğeler
Numarası
1
Ekmek, Süt
2
Ekmek, Peynir, Gazete, Yumurta
3
Süt, Peynir, Gazete, Kola
4
Ekmek, Süt, Peynir, Gazete
5
Ekmek, Süt, Peynir, Kola
{Peynir} {Gazete}
Bu örneğe göre peynir ve gazete arasında güçlü bir ilişki vardır. Çünkü peynir
alan birçok kişi gazete de almıştır.
AIS[Agrawal, R., Imielinski, T., Swami, A., 1993]
Apriori[Agrawal, R., Srikant, R., 1994]
AprioriTid
AprioriHybrid
DHP[Zaki, M.J., Ogihara, M., 1998]
Partition[Chen, M.S., Han, J., Yu, P.S., 1996]
FP-Growth[Han, J., Pei, J., Yin, Y., 2000]
Apriori
Veri paralel yaklaşım
Veri tüm istemcilere dağıtılır
Herkes kendi yerel verisinde 1-öge kümesini ve
destek değerlerini hesaplar
Bunu diğerlerine gönderir
Gönderilen 1-öge kümeleri birleştirilerek global
1-öge kümesi oluşturulur
Sık olmayanlar elenir
Süreç tüm öge kümeleri için tekrar eder
Görev paralel yaklaşım
FP-Growth
o
o
Sık örüntüleri bulmak için kullanılan bir veri
madenciliği algoritmasıdır.
Apriori benzeri algoritmalara göre daha verimli bir
algoritmadır.
Neden?
Tüm veritabanı bir veri yapısı (FP-Tree) içine
sıkıştırılmıştır.
Tüm algoritma süresince veritabanı sadece iki kez
taranır.
FP-Growth algoritması iki adımda gerçekleşir:
1. FP-Tree veri yapısının oluşturulması.
2. Bu
veri yapısı kullanılarak sık örüntülerin
bulunması.
Hareket No
Alınan Ögeler
Sıralı Sık Ögeler
100
a, b, c, d, e
c, e, a, b
200
b, c, e, f
c, e, b
300
a, e
e, a
400
b, c, e
c, e, b
500
a, c, d
c, a
Örnek Veritabanı
Öge
Destek
Değeri
a
3
b
3
c
4
d
2
e
4
f
1
Minimum Destek Değeri:3
Başlık Tablosu
öge
c
e
a
b
root
düğüm başı
e:1
c:4
e:3
a:1
a:1
b:2
b:1
a:1
Başlık Tablosu
öge
root
düğüm başı
c:3
c
e
e:3
Başlık Tablosu
öge
c
root
düğüm başı
c:3
b için oluşturulan şartlı sık örüntü ağaçları
Düğüm1
Har
.
No
Sıralı Sık Öğeler
Düğüm2
100
f, c, a, m, p
Har Sıralı Sık
. No Öğeler
200
f, c, a, b, m
300
f, b
Har Sıralı Sık
. No Öğeler
100
f, c, a, m, p
400
c, b, p
400
c, b, p
200
f, c, a, b, m
500
f, c, a, m, p
500
f, c, a, m, p
300
f, b
Kaynak: Pramudiono, I., Kitsuregawa, M., 2003
Tüm veritabanı tek bir işlemci tarafından okunur
FP-Tree oluşturulur
Oluşturulan ağaç diğer işlemcilere gönderilir
Her işlemci aldığı seriyi deserialize ederek ağacı
kendi tarafında oluşturur
Algoritma özyineli olarak kendini çağırır
Bu kısım boş olan bir işlemciye görev olarak verilir
Düğüm
0
FPGrowth
düğüm0
Boş düğüm iste
düğüm1
düğüm1
düğüm2
Görev gönder
Düğüm
1
ist
e
üm
ğ
ü
şd
o
B
m2
ü
ğ
dü
FPGrowth
Görev gönder
Düğüm
2
FPGrowth
Donanım
9 adet Sun Fire X2200 M2 Server
AMD Opteron 1800Mhz X64 İşlemci
2GB DDRR2 667Mhz Bellek
Çift girişli Gigabit Ethernet
Yazılım
Solaris 10 x86 işletim sistemi
Sun HPC ClusterTools 7 (Open MPI)
Sun Studio 12 (C, C++, Fortran
derleyicileri ve grafiksel geliştirme ortamı)
Sun N1 Grid Engine 6.1
Seri FP-Growth algoritmasının C dilinde gerçekleştirimi
Paralel FP-Growth gerçekleştirimi. Adımlar:
1.
FP-Tree nin dizi şeklinde diğer işlemcilere
gönderimi(serialize)
2.
Gönderilen dizinin alınan tarafta tekrar ağaca
dönüştürülmesi(deserialize)
3.
Algoritmanın özyineli olarak kendini çağırdığı
durumlarda bunun boş olan işlemciler tarafından paralel
olarak gerçekleştirimi(Görev paralel yaklaşım, iş havuzu)
Algoritmanın büyük veri tabanlarında testi
Seri Fp-Growth ve gerçekleştirilen diğer paralel Fp-Growth
yaklaşımıyla karşılaştırılması
Katılımınız için teşekkürler