Conference PaperPDF Available

Text Classification with Spark Support Vector Machine

Authors:

Abstract

With the accumulation of technology from the recent years of development, the total amount of data that has been revealed daily at the point reached today are quite excessive in the last forty years. It is of vital importance in our day to clean, understand, classify and make a usable analysis report of this emerging data. Speed is a key factor for information retrieval in this important area. Apache Spark offers an innovative and robust solution to this problem. Unlike the previously used analysis methods, this solution stores data in the memory in order to gain speed in analysis, rather than performing data read/write operations through the disk during analysis. Spark provides near real-time speed with in-memory data read/write, analysis and resulting operations. In this study, a classification analysis was conducted on Reddit social entertainment site comments using Support Vector Machine (SVM) which is the supervised (educated) learning method. The results are presented in tables and graphics.
Spark Destek Vektör Makinesi ile Metin
Sınıflandırma
Text Classification with Spark Support Vector
Machine
İskender Ülgen Oğul1 , Caner Özcan1, Özlem Hakdağlı1
1Bilgisayar Mühendisliği Bölümü, Karabük Üniversitesi, Karabük, Türkiye
iskenderogul@gmail.com, canerozcan@karabuk.edu.tr, ozlemhakdagli@gmail.com
ÖzetçeTeknolojinin son yıllardaki gelişiminden sağlanan
birikimler ile günümüzde ulaştığı noktada günlük ortaya çıkarılan
veri miktarı son kırk yılda ortaya çıkan toplam veriden oldukça
fazladır. Ortaya çıkan bu yüklü verinin temizlenmesi,
anlamlandırılması, sınıflandırılması ve kullanılabilir bir analiz
raporu haline getirilmesi çağımızda oldukça hayati bir önem
taşımaktadır. Ortaya çıkan bu önemli alanda hız faktörü bilgiye
ulaşım için anahtar bir faktör olmaktadır. Apache Spark bu
soruna yenilikçi ve dayanıklı bir çözüm sunmaktadır. Geleneksel
analiz yöntemlerinde analiz süresince veri okuma yazma işlemleri
disk üzerinden gerçekleştirilirken, Spark analizde hız kazanmak
için verileri bellek içinde depolamaktadır. Spark bellek içi veri
okuma-depolama, analiz gerçekleştirme ve sonuçlandırma
işlemleri ile hızı neredeyse gerçek zamanlıya ulaştırmaktadır.
Bu çalışmada denetimli (eğitimli) öğrenme yöntemi olan Destek
Vektör Makinesi (DVM) ile sosyal eğlence sitesi olan Reddit
yorumları üzerinden sınıflandırma analizi gerçekleştirilmiştir.
Sonuçlar tablolar ve grafikler halinde sunulmuştur.
Anahtar Kelimeler —Apache Spark, Makine Öğrenmesi, DVM,
Sınıflandırma, Büyük Veri, Metin Analizi
Abstract With the accumulation of technology from the
recent years of development, the total amount of data that has been
revealed daily at the point reached today are quite excessive in the
last forty years. It is of vital importance in our day to clean,
understand, classify and make a usable analysis report of this
emerging data. Speed is a key factor for information retrieval in
this important area. Apache Spark offers an innovative and robust
solution to this problem. Unlike the previously used analysis
methods, this solution stores data in the memory in order to gain
speed in analysis, rather than performing data read/write
operations through the disk during analysis. Spark provides near
real-time speed with in-memory data read/write, analysis and
resulting operations. In this study, a classification analysis was
conducted on Reddit social entertainment site comments using
Support Vector Machine (SVM) which is the supervised
(educated) learning method. The results are presented in tables
and graphics.
Keywords Apache Spark, Machine Learning, SVM,
Classificiation, Big Data, Text Mining
I. GİRİŞ
Veri madenciliği büyük veri setleri içindeki anlamlı sık
düzenleri (Frequent Pattern büyük bir veri içindeki
değişkenler arasında bulunan ilişkiler) istatistik, makine
öğrenmesi ve veri tabanı sistemleri kullanılarak bilgisayar
yardımı ile ortaya çıkaran oldukça güçlü bir çalışma alanıdır.
Veri madenciliğinin temel amacı büyük veri setleri içerisinden,
ilişkili örüntüler, küme analizleri, anomali tespitleri ve veri
bağımlılık ilişkileri ile anlamlı bilgiyi otomatik ya da yarı
otomatik analiziler yardımıyla keşfetmek ve bu bilgiyi gelecek
kullanımlar için anlaşılabilir bir yapı içerisinde (grafikler ve
analiz modelleri) görüntülemektir [1]. Veri madenciliği süreci
analiz aşamasının yanı sıra, veri tabanı ve veri yönetimi yönleri,
veri ön işleme, model ve çıkarım konuları, karmaşıklık
konuları, görselleştirme ve çevrimiçi güncelleme alanlarını da
içinde barındırmaktadır. Veri işleme çalışmaları çok yeni
olmamakla birlikte uzun yıllar boyunca klasik yöntemlerle
gerçekleştirilmiştir. Düzen keşfinin ilk yöntemleri Bayes
teoremi ve regresyon modellerine dayanmaktaydı [2].
Bilgisayar teknolojilerinin gelişmesi veri toplama, düzenleme
ve analiz metotlarının yaygınlaşmasında oldukça büyük bir rol
oynamıştır. Verilerin üstel olarak büyümesi ile birlikte veri ile
doğrudan etkileşim yerine sinir ağları, küme analizi, genetik
algoritmalar, karar ağaçları, destek vektör makinesi (DVM) ve
makine öğrenmesi gibi yeni bilgisayar teknikleri ile büyük
verilerin işlenmesi otomatik olarak gerçekleştirilmeye
başlanmıştır [3]. Geliştirilen bu teknikler, istatistik ve
matematik temellerinden geliştirilen yapay zekâ ile veri
yönetimi (düzenleme, saklama, indeksleme) arasındaki boşluğu
doldurmaktadır. Veriden bilgi edinimi veri seçimi, ön işleme,
dönüştürme, bilgi çıkarımı (madencilik), değerlendirme ve
sunum olarak beş temel aşama ile gerçekleşmektedir. Veri
seçimi hangi türde verinin işleneceğinin belirlendiği (metin
verisi, market analizi, tavsiye motorları vb.) aşamadır [4].
Verinin türüne göre analiz yöntemleri de farklılık göstermekte
ve alana özel olarak seçilmektedir. Ön işleme içerisinde
verilerin analiz aşamasında süre ve masraf (kod yazımında
geçen süre) kazancı sağlamak için veri tabanı içinde gürültü
(eksik ya da yanlış veri) temizliğinin gerçekleştirildiği oldukça
önemli ve ilerleyen süreçte işlemler üzerinde kazanç sağlayan
bir aşamadır. Dönüştürme işleminde veri tabanı formatından
veri ambarı formatına dönüştürülme ve depolanma aşaması
gerçekleştirilir [5]. Veri ambarına dönüştürülürken satır ve
sütunlar üzerinde birleştirme ve eksik verilerin ortalama
alınarak doldurulması ya da satırın silinmesi söz konusudur.
Bilgi çıkarımı yani madencilik aşamasında verilerin tipine ve
uygulama alanına göre seçilen algoritmalar ile bilgi çıkarımı
için gerekli modeller oluşturulmaktadır. Oluşturulan bu
modeller ile veri içerisinden arzu edilen bilgilerin çıkarımı için
model üzerinden gerekli sorgulamalar yapılmaktadır.
Değerlendirme aşamasında bilgi çıkarımından elde edilen
verilerin tutarlılığı kontrol edilmektedir [6]. Sunum bölümünde
elde edilen ve doğruluğu test edilmiş veriler grafikler şeklinde
ilgili birimlere sunulur. Günümüzde veri analizi daha kısa bir
sıralama biçimi olan ön işleme, veri madenciliği ve sonuç
doğrulama olarak üç başlık altına alınmaktadır. Belirtilen tüm
aşamaların sağlıklı bir şekilde gerçekleştirilebilmesi ve veri
içindeki kalıpların ortaya çıkarılabilmesi için hedef veri setinin
yeteri kadar büyük olması gerekmektedir.
Metin verilerinden, istatistiksel metotlara dayalı modeller
yardımı ile desenlerin, eğilimlerin ve yüksek kalitede amaca
yönelik bilgi çıkarımına metin madenciliği bilimi denmektedir.
Genel metin verisi incelemesi metin verilerinin
sınıflandırılması, metin kümelenmesi, kavram-varlık çıkarımı,
duygu analizi, belge özetleme ve varlık ilişkisi ihtiyaçlarını
karşılama amacıyla geliştirilmiştir [7]. Analiz ihtiyaçlarının
kararlılıkla karşılanabilmesi için bilgi alımı, sözcük frekans
dağılımı, kalıp tanıma, etiketleme, tahminsel analitik ve doğal
dil işleme teknikleri kullanılmaktadır. Metin analizi
temellerinin dayandığı metin analitiği zekâsı, keşifsel veri
analizi, araştırma ve inceleme için metin kaynaklarının bilgi
içeriğini modelleyen ve yapılandıran istatistik ve makine
öğrenmesini bilimlerini tanımlamaktadır [8].
Bu çalışmada metin madenciliği teknikleri kullanılarak açık
kaynaklı sosyal topluluk sitesi reddit.com üzerinden halka
açılan veri seti üzerinden sınıflandırma yapılmıştır.
Sınıflandırma için json formatında bulunan veri dosyaları
üzerinden öncelikle alakasız veriler çıkarılmış daha sonra
gürültü temizliği yapılarak ham veri analize uygun hale
getirilerek analiz işlemleri uygulanmıştır. Analiz için yorum
yazarlarının kadın-erkek olma olasılıkları, spam analizi ve kötü
sözcük (küfür) analizi yapılmıştır. Analiz sonuçlarının daha
tutarlı olması için analizler yorum bazına indirgenerek her
yorum içerisinde tek tek analiz yapılarak dönen etiket üzerinden
yüzdelendirmesi yapılmıştır.
DVM algoritmasının tutarlılığının karşılaştırılması için kadın-
erkek analiz ortamı Naive Bayes algoritması üzerinden de
gerçekleştirilmiştir. Analiz sistemi için bilgisayar
teknolojilerinin son dönemlerde oldukça işlevli olduğunu ispat
eden Apache organizasyonu desteğinde bulunan Spark
çerçevesi kullanılmıştır. Geleneksel analiz sistemlerinden farklı
olarak bir kere oku bir kere yaz mantığını benimsemeyen Spark,
analiz edilecek verileri okuduktan sonra depolama için
bilgisayar belleği üzerinde saklamaktadır. Bellek üzerinde
saklanan veriler sabit diskten bağımsız olarak işlem
gördüğünden bellek-işlemci arasındaki veri akışının çok hızlı
olması sayesinde neredeyse gerçek zamanlı veri analizi
gerçekleştirilmektedir.
II. APACHE SPARK
Orijinal olarak Kaliforniya Üniversitesi, Berkeley’s AMPLab
bünyesinde geliştirilen açık kaynaklı bir küme bilgisayar
hesaplama çerçevesi olan Spark sonradan Apache
organizasyonuna bağışlanmıştır. Apache Spark çekirdeği küme
yönetimi ve dağıtılmış veri depolama sistemine ihtiyaç
duymaktadır. Küme yönetim ihtiyacını karşılamak için Spark
tek başına çalıştırılabilir (standalone) modül sunarken dağıtık
veri birimi için Hadoop dağıtık dosya sistemi (HDFS),
Cassandra, Amazon S3 gibi çoklu platformları
desteklemektedir. Küme tabanlı hesaplama birimi için örtük
paralelleştirme ve hata toleransıyla programlamak için arabirim
sağlayan Spark, programcılar için makineler üzerinde
dağıtılmış veri kümelerinin hataya dayanıklı bir şekilde
muhafaza edildiği esnek dağıtılmış veri kümesi (RDD) olarak
adlandırılan bir yapı sağlamaktadır [9]. Şekil 1 üzerinde Spark
çerçevesi mimarisi ailesinin yapıları katmanlı bir şekilde
gösterilmektedir.
Esnek dağıtılmış veri kümesi, doğrusal veri akışını zorlayan
MapReduce küme bilgi işlem yöntemini kullanmaktadır. Spark
MapReduce, disk üzerinden ilgili veri kümelerini okuduktan
sonra özyinelemeli olarak verileri işlemden geçirerek veri
haritalandırma sonuçlarını düşürür ve azaltma sonuçlarını genel
veri madenciliği yöntemlerinden farklı olarak disk yerine
paylaşılan bellek üzerinde saklar. Verilerin bellek üzerinde
taşma durumunda ise Spark haritalandırdığı kümeleri HDFS
dosya sistemi olarak disk üzerinde geçici dosya olarak
saklamaktadır.
Spark çekirdeği tüm projenin temelini oluşturmaktadır.
Çekirdek temel giriş çıkış işlemleri, görev zamanlaması, paralel
bilgisayarlarda dağıtık işlem gönderme gibi işlemleri RDD
çerçevesinde programlama dili bağımlılığı olmadan Java,
Python, R, Scala dillerine arayüz sağlamaktadır ve Java sanal
makinasının bulunduğu her bilgisayarda çalışmaktadır [10].
Şekil 1. Spark çerçevesinin bileşenlerinin katmanlı gösterimi
Şekil 2. Lojistik regresyon algoritması üzerinde Apache Spark ve Hadoop süre
karşılaştırması (Spark resmi sitesinden alınmıştır)
Spark SQL, yapılandırılmış ve yarı yapılandırılmış verilere
destek sağlayan DataFrame yapısını uygulayan bir modüldür.
Spark DataFrame yapısı RDD tarafından sağlanan derleme
zamanının biraz gerisinde kalmış olmasından dolayı 2.0
sürümünden itibaren güçlü temeller üzerine oturtulan ve
tamamen Spark SQL desteğini inde barındıran DataSet
yapısına geçmiştir. DataSet veriler okunduktan sonra bir SQL
derleyicisinde olduğu gibi verileri satır ve sütunlar içerisinde
barındırmaktadır. Ayrıca verileri bellek üzerinde dağıtık
depolaması sayesinde SQL tabanlı işlem süreleri oldukça kısa
olmaktadır [11]. Şekil 2’de Apache Spark’ın resmi sitesinde
bulunan grafikten alıntı yapılan Spark ve Hadoop mimarileri
üzerinde lojistik regresyon uygulaması ile elde edilen çalışma
süreleri gösterilmektedir. Bu çalışmadan alınan sonuçlara göre
spark bellek içi depolama yapısı sayesinde yüz kata kadar süre
kazancı sağlamaktadır.
Spark makine öğrenmesi (MLlib) kütüphanesi, dağıtılmış
bellek tabanlı Spark mimarisi çekirdeğinin en önemli
yapılarından biridir. Apache Mahout tarafından kullanılan disk
temelli makine öğrenmesi kütüphanesi bünyesinde olan en
küçük kareler (ALS) algoritması üzerinden yapılan testlerde
dokuz kata kadar hız elde edildiği bildirilmektedir. Spark MLlib
kütüphanesi altında sınıflandırma, kümeleme analizi, özellik
çıkarımı gibi birçok yaygın makine öğrenmesi ve istatistiksel
yaklaşım algoritmaları bulunmaktadır [12].
III. KULLANIM ALANI VE YENİLİKLER
Bir bütün olarak ele alındığı zaman Apache Spark açık kaynak
kodlu olarak sunulan Spark SQL, Spark Streaming, GraphX ve
makine öğrenmesi temellerine dayanan ve genel madencilik
yöntemlerinden farklı olarak disk üzerinde işlem
gerçekleştirmek yerine verileri bir kere okuyarak bellek
üzerinde depolama yaklaşımı sayesinde yüz kata kadar hız
sağlamaktadır. Bünyesinde barındırdığı makine öğrenmesi
kütüphanesinden aldığı güç ile çok yaklaşımlı analiz olanağı da
sunmaktadır.
Spark çekirdeğinde barındırdığı yöntem çeşitliliği ile geniş bir
kullanım alanına sahiptir. Akan veri üzerinde anlık olarak işlem
yapabilmesi, sosyal medya verileri üzerinde GraphX
kütüphanesi ile analiz ortamı sunması, Spark SQL ve MLlib
kütüphaneleri ile sınıflandırma, kümeleme ve anlam çıkarımı
konularında geliştirme olanağı sunmaktadır. Spark’ın genel
kullanım alanları yukarıda verilmektedir.
IV. DESTEK VEKR MAKİNESİ (DVM) YÖNTEMİ
Sınıflandırma problemi makine öğrenmesi alanında sıklıkla ele
alınan bir konudur. Yapılan bu çalışma, herhangi iki sınıftan
birine ait olan veri noktalarının hangi sınıfa ait olduğunu
belirleme amacı ile geliştirilen bir çalışmadır. Doğrusal
sınıflandırma olarak bilinen, p vektör içindeki verilerin p-1
alana ayırmak amacıyla kullanılan bir hiperçizgi ile veriler iki
sınıfa ayırılmaktadır. İki sınıf arasında en çok sınıflandırma
yapabilen çizgiye maksimum marjin hiperçizgi adı verilir.
Yüksek ya da sonsuz uzay içerisindeki hiperçizgilere dayanan
DVM, makine öğrenmesinde denetimli (eğitimli) öğrenme
alanında bulunarak, sınıflandırma regresyon ve birçok amaç
için kullanılan bir modeldir [13]. Her iki kategoriden birine
etiketlenen eğitim verilerinin bir model haline getirilerek analiz
edilecek veri seti içinde işleme alınarak belirli bir alanın altında
ve üstüne kalan kısımlar olarak veriler ayrılır. DVM binominal
ya da dinominal olarak analiz gerçekleştirmektedir. Eğitilecek
olan veriler sıfır ya da bir etiketi ile etiketlenerek bir DVM
modeli oluşturulur. Oluşturulan model üzerinden analiz gerekli
veri seti içerisinde gerçekleştirilir. Veri etiketleme yapılmadığı
takdirde denetimli öğrenme mümkün değildir. DVM metin
sınıflandırma, resim sınıflandırma ve biyoinformatik
alanlarında kullanılmaktadır [14]. DVM ve doğrusal DVM
algoritmasının matematiksel formülü şu şekildedir:
() ()+ 1
(; , )
=1
(1)
Birçok makine öğrenmesi algoritması konveks optimizasyon
problemi olarak formülize edilmektedir. Amaç veri girdisinde
ağırlığına sahip vektöre dayanan konveks fonsiyonunu
bulmaktır. vektörü analiz ortamındaki eğitim
verilerinin uzayını temsil etmektedir. 1 ile arasındaki tüm
değerler için ∈  ise bunlara karşılık olan etiketleridir. Eğer
(;,) yapısı , ve olarak ifade edilirse lineer method
olarak adlandırabiliriz. fonksiyonu iki bölümden oluşur,
modelin karmaşıklığını kontrol eden düzenleyici kısmı ve
eğitim verisi modeli üzerinde hatayı kontrol eden kayıp
kısmıdır. (; . ) yapısı içindeki kaybın konveks
fonksiyondur. Düzenleyici  ≥ 0 parametresi ise kaybı
minimize etmeyi ve model karmaşıklığının minimize edilişini
belirtir. Düzenleyiciler model içindeki aşırı sıkıştırmayı
0
20
40
60
80
100
Spark ve Hadoop
Çalışma Süresi
Spark Hadoop
Spark Kullanım ve Uygulama Alanları
Kurumsal iş zekası
Görüntü verisi üzerinde sınıflandırma
Bilimsel metin işleme ve sınıflandırma
Doğal dil işleme
Akan veri üzerinde anlık analiz
önlemek için kullanılır. DVM, L1 ve L2 düzenleyicilerini
kullanır. L2 düzenleyicisi L1e göre performansı daha iyidir
ancak L1 düzenleyicisi daha küçük ve yorumlanabilir
modellerde oluşan ağırlıklarda seyrekliği arttırmaya yardımcı
olabilir [14].
(;,)= {0,1 }
(2)
Geniş ölçekli sınıflandırma problemleri için doğrusal DVM
algoritması birinci denklemde verilmiştir. İkinci denklemde
dayanak kaybı ile formüle edilmiş doğrusal denklemi
verilmiştir. SparkDVM modeli varsayılan olarak L2
düzenleyicisi ve = 1 olarak eğitilmektedir. Lineer DVM
algoritması tarafından gösterilen veri noktalarından bir model
oluşturmakta ve e dayanan verilerden tahminler
yapmaktadır. Eğer 0 ise sonuç pozitif olmaktadır.
V. PROBLEM TANIMI VE YAKLAŞIMLAR
Sınıflandırma projesi için açık kaynak olarak sunulan sosyal
medya internet sitesi olan reddit.coma ait veri seti
kullanılmıştır. 2010 yılına ait haziran ayı veri seti seçilmiştir.
Veri seti sıkıştırılmış olarak 303Mb boyutunda iken
sıkıştırılmış formattan çıkarıldığında json dosyalama
formatında 2GB olarak ölçülmüştür. Analiz aşamasının en
yaygın sorunlarından biri olan gürültü (alakasız veri) temizliği
yapılması gerekmektedir. Gürültü verisi analiz sonucunu
etkileyeceği gibi veri seti içindeki varlığı analiz süresini de
uzatmaktadır. Yanlış yapılan bir analiz çıktısı bu çıktıya
dayanarak alınabilecek kararları da oldukça kötü şekilde
etkileyebilmektedir. Spark SQL kullanılarak gürültü temizliği
gerçekleştirilmesi gerekmektedir. Ana veri setinde araştırılacak
olan analizler, yazılan yorumların yüzde kaçının kadın, yüzde
kaçının erkek olduğu, yorumlar içinde kaç yorumun spam
olarak tespit edildiği ve yüzdesi, son olarak da yorumlar
üzerinde kötü sözcük filtresi yapılarak elde edilen sonuçların
yüzdesi verilecektir. Kadın ve erkek sonuçlarında DVM
algoritmasının tutarlılığını göstermek için aynı veri ve anahtar
kelime setleri Naive Bayes algoritması üzerinden de
uygulanarak Naive Bayes modeli oluşturulup, bu model reddit
yorumları üzerinde sorgulanacak ve çıkan sonuçlar
karşılaştırılacaktır. Yorum satırlarından bilgi çıkarımı
yapılabilmesi için anahtar kelime koleksiyonu oluşturulmalı ve
benzersiz bir şekilde etiketlendirilip analiz ortamına dahil
edilmelidir.
VI. YÖNTEM TASARIMI
Oluşturulan analiz sisteminde makine öğrenmesinin denetimli
öğrenme alanına ait DVM algoritması kullanılmıştır. Analiz
edilecek veri üzerinde anlam çıkarımı yapabilmek için kadın ve
erkekleri ayıran belirleyici anahtar kelimeler bulunarak csv
dosyası haline kaydedilmiştir. Kaydedilen anahtar kelimelerin
analiz ortamına aktarılabilmesi için SparkContext nesnesi
oluşturularak csv dosyası olarak okunmuş ve
JavaRDD<String> nesnesi içine alınarak depolanmıştır.
Denetimli öğrenmenin gerçekleştirilebilmesi için analiz
ortamına alınan anahtar kelimelerin ondalık sayı biçiminde 1.0
Şekil 3. SparkDVM çalışma mantığı akış şeması
ile etiketleme işlemi gerçekleştirilmiştir. DVM algoritması
yapısı gereği veriyi iki sınıfa ayırdığı için veri seti içinde
aramak istenilen anahtar kelimeler 1.0 ile etiketlenir, analiz
esnasında eşleşme gerçekleşmediği zaman model 0.0 etiketini
geri döndürmektedir.
Şekil 3’de SparkDVM çalışma mantığı adımları akış şeması
verilmektedir. DVM yapısında model oluştururken kullanıcının
belirlediği bir tekrarlama (iterasyon) sayısı belirlenerek
etiketlenmiş veriler tekrarlama sayısı üzerinden makine
öğrenmesi algoritması olan DVM ile eğitilerek DVMModel
oluşturulmuştur. Modelin lambda değeri = 1 ve regülasyon
modeli ise L2’dir. Analizin gerçekleştirileceği reddit veri seti,
SparkSession nesnesi üzerinden json formatında okunarak
Dataset nesnesi içinde depolanmıştır. SparkSQL yapısı ile veri
setindeki ilgisiz sütunlar düşürülerek sadece yorum sütunu
bırakılmış ve veri büyük oranda temizlenmiştir. Gürültü azalımı
yapmak için site üzerinde silinmiş yorumların belirtildiği ve
Latin karakter barındırmayan veri satırları da silinerek 268.535
satır gürültü, veri setinden çıkarılmıştır. Dataset nesnesi içinde
bulunan veri setinden yorumlar satır satır okunarak DVM
algoritması üzerinden analiz yapılmış ve her iki kategori için
geri dönen etiket verisi üzerinden sonuç sayısı saklanarak
yüzdelendirme gerçekleştirilmiştir. Aynı işlemler spam analizi
ve kötü sözcük filtresinde sadece anahtar kelimelerde
güncelleme uygulanıp veri seti sabit tutularak
gerçekleştirilmiştir. DVM sonuçlarının tutarlılığını kontrol
edebilmek için kadın erkek analizi Naive Bayes algoritması
üzerinden de gerçekleştirilmiş ve sonuçlar karşılaştırılmıştır.
DVM analiz modelinin başarısını kontrol etmek için eğitim seti
%60-%40 oranında bölünerek kendi içinde analiz edilmiş ve
sonuçları verilmiştir. Spark’ın veri yoğunluğuna göre verdiği
performansın incelenebilmesi için seçilen veri bloklarına göre
süre performansları ve analiz sonuçları verilmiştir. Tüm
sonuçlar tablo ve grafikler halinde verilmiştir. Geliştirilen
yöntemin sözde kodu ise şu şekildedir:
KE YW O RDS
REDDİT
YORUM
VERİ
SET İ
KELİ ME
VEKT ÖRLERİ
ETİ KETLEN MESİ
SPARK SQL VE
TEMİZ LEM ESİ
DES TEK
VEKTÖR
MOD ELİ
EĞİ TİM İ
NAİVE-BAYES
MOD ELİ
FOREACH
FO NK S İYO NU
VERİ ÇEKME
DES TEK VEK TÖR
M AKİ NAS I
MOD ELİ
YORUMLARIN
HASH TF İLE
VEKT ÖRLEŞ ME
ANALİZ
NAİVE-
BAYES
MOD ELİ
EĞİ TİM İ
SINIFLANDIRILMIŞ
VERİ SONUÇLARI
VII. DENEYSEL ÇIKTILAR
Deneysel çalışmalarda Ryzen7 12 çekirdek 24 thread 3.4 Ghz
CPU kullanılmıştır. Sistem üzerinde 32GB belleğin 20GB’lık
kısmı JVM üzerinden Spark çalışmasına ayrılmıştır. SSD disk
kullanılarak veri okumada hız artışı sağlanmıştır. Analiz için
Reddit 2010 Haziran ayı veri seti kullanılarak 3.532.867 satırlık
yorum analiz edilmiştir. SparkSQL üzerinden Latin harf
içermeyen ve [deleted] (site içerisinde silinmiş yorumların veri
tabanındaki karşılığı) olarak girilmiş satırlar silinerek gürültü
temizliği yapılmıştır. Dataset içindeki veri satırları 3.264.332
satıra indirgenerek 268.535 veri satırı temizlenmiştir. Veri seti
ilk kez okunduğunda Spark Dataset fonksiyonu olan count() ile
veri seti içindeki tüm satırların sayısı döndürülmüştür. Gürültü
temizliği yapıldıktan sonra aynı fonksiyon tekrar çalıştırılarak
veri setinde kalan satırların sayıları, ilk sayımda elde edilen
değerden çıkarılarak gürültü temizliğinde indirgenen satırların
sayısı doğrulanmıştır.
Yapılan analiz sonuçlarında elde edilen veri seti içinde 3 ayrı
kapsamda 4 farklı kategori üzerinden analiz gerçekleştirilmiştir.
Kadın ve erkeklerin yapısal özellikleri baz alınarak en çok
kullanılan kelimeler üzerinden birer anahtar kelime grubu
hazırlanmış, etiketlendirilerek eğitilmiştir. Eğitilen model %60-
%40 yüzdelerinde rastgele ayrılarak kendi içinde DVM
algoritması üzerinden analize sokulmuştur. Modelin doğruluk
yüzdesi, ROC (Receiver Operating Characteristic) alıcı işlem
karakteristiği eğrisinin üstünde kalan (TP True Positive)
yüzde oranına göre belirlenmiş ve tabloda sunulmuştur.
TABLO I. KADIN ERKEK ANALIZ SONUÇLARI
Eşleşme Sayısı
Yüzde
2449266
%75,03
1631914
%49,90
TABLO II. SPAM VE KÖTÜ SÖZ ANALIZ SONUÇLARI
Analiz Tipi
Eşleşme Sayısı
Yüzde
Spam İçerik Analizi
2775486
%85,02
Kötü Söz İçerik Analizi
1957503
%59,96
TABLO III. DVM MODEL DOĞRULUK YÜZDELERİ
Destek Vektör Makinesi Model Doğruluk Yüzdesi
Kadın
Erkek
Spam
Kötü söz
%61
%69
%72
%64
TABLO IV. DVM VE NAIVE BAYES ALGORITMASI KARŞILAŞTIRMASI
Algoritma
Cinsiyet
Eşleşme
Yüzde
Süre(ms)
Naive Bayes
Erkek
2283710
%69,95
36428
Kadın
980622
%30,04
DVM
Erkek
2449266
%75,03
37271
Kadın
1631914
%49,90
Doğruluk oranı belirlenen model reddit veri seti üzerinde satır
satır çekilen yorumlar ile analize sokulmuştur. Veri seti sabit
tutularak, spam ve kötü söz için anahtar kelimeler elde edilip
bir model haline getirilerek model doğrulukları sorgulanmış ve
aynı analize sokulmuştur. Sonuçlar tablolar halinde aşağıda
verilmektedir
Tablo I içerisinde DVM algoritması ile Spark üzerinden yapılan
kadın erkek analiz sonuçları, eşleşme miktarları ve yüzdelik
oranlar verilmektedir. Elde edilen sonuçlara göre erkek eşleşme
sayısı 2.449.266 iken oranı %75,03, kadın eşleşme sayısı
1.631.914 ve oranı %49,90 dur Burada analiz
gerçekleştirilirken kadın ve erkek anahtar kelimeleri ayrı ayrı
1.0 ondalık değeri ile etiketlenerek ayrı modeller oluşturulmuş
ve sırası ile reddit verisi üzerinde analize sokulmuştur.
SparkDVM algoritması eşleşme olmaması durumunda 0.0
etiketini geri döndürmektedir. Bu yüzden etiketleme yaparken
0.0 kullanılmaması gerekmekte, kullanıldığı takdirde dönen
sonuçlar içinde hiçbir kategoriye girmemiş veriler de
gelmektedir. Bu durum analiz sonuçlarının hassasiyetini
olumsuz yönde etkileyecektir. Sonuçlardan da anlaşılacağı
üzere sonuç sayıları ve yüzdelerinin toplamları veri setinden
fazla olmaktadır bunun sebebi her seferinde bir model analize
sokulduğu için %20’lik bir veri modelin hassasiyetinin dışında
kalarak hem kadın hem de erkek sınıfına girmektedir. Oluşan
bu durum metin madenciliğin iki kategoriye birden ait olma
durumu olarak adlandırılır ve sıkça görülmektedir. Naive-
Bayes yönteminde de bu görülmemektedir Bayes algoritması
tek seferde çoklu etiket modeli eğitebilir ancak Bayes’in
olumsuz yanı model içerisinde kelime frekanslarından dolayı
tek bir etikete yoğunluk verme eğilimi olabilmektedir. Bu iki
durumun önüne geçebilmek için amaca yönelik ayrımı daha net
yapacak bir hiperçizgi oluşturan anahtar kelimeler kullanmak
Input: Raw Data
Output: Classification Category Ratios
1: read: keywords
2: function LabeledPoint(key, String)
3: for all keyword data
4: union: LabeledPointd
5: train model: TrainingData, Iteration
6: read: Dataset
7: sparkSQL: CleanData
8: foreach: CleanedDataset
9: predict = (pos prob > neg prob) ? pos : neg
10: if Predict: true
11: counter++
12: read: SpamKeywords
13: function LabeledPoint(key, String)
14: for all keyword data
15: train model: TrainingData, Iteration
16: foreach: CleanedDataset
17: predict = (pos prob > neg prob) ? pos : neg
18: if Predict: true
19: counter++
20: read: BadWordKeywords
21: function LabeledPoint(key, String)
22: for all keyword data
23: train model: TrainingData, Iteration
24: foreach: CleanedDataset
25: predict = (pos prob > neg prob)? pos : neg
26: if Predict: true
27: counter++
28: else
29: return
30: end function
gerekmektedir. Bu kelimeleri belirlemek ayrı bir alanda geniş
ve ciddi bir akademik çalışma gerektirmektedir.
Tablo 2 içerisinde ise ilk satırda DVM algoritması ile Spark
üzerinden yapılan spam filtresi analiz sonuçları, eşleşme
miktarları ve yüzdelik oranlar verilmiştir. Bu sonuçlara göre
spam kelime barındıran yorum eşleşme sayısı 2.775.486 iken
oranı %85,02dir. İkinci satırda ise kötü söz filtresi analiz
sonuçları, eşleşme miktarları ve yüzdelik oranlar verilmiştir. Bu
sonuçlara göre kötü söz içeren yorum eşleşme sayısı 1.957.503
iken oranı %59,96’dur. Spark üzerinden gerçekleştirilen DVM
algoritması ile sınıflandırma analiz sonuçlarının tutarlılığının
kontrol edilebilmesi için veri seti ve anahtar kelimeler sabit
tutularak aynı analiz Naive Bayes algoritması ile
gerçekleştirilmiş ve sonuçları Tablo 3’te verilmiştir.
Tablo 3 üzerinde DVM algoritmasın kullanılan her bir modelin
%60-%40 rastgele oranla bölünmesi ve kendi içinde analiz
gerçekleştirmesi ile elde edilen ROC eğrisinin üstünde kalan
oranların göre model doğruluk yüzdeleri verilmiştir.
Tablo 4 üzerinde verilen bilgilere dayanarak Naive Bayes ve
DVM algoritmaları aynı veri seti ve anahtar kelimeler ile aynı
sonuçları vermektedir. Süre bazında Naive Bayes 843 ms gibi
bir kazanç sağlamaktadır. Bunu sebebi Bayes adından da
anlaşılabileceği gibi naif yani lineer bir sınıflandırma
kullanmasıdır ve L1 düzenlemesini (regülasyon) kullanır, DVM
ise L2 düzenlemesi kullanarak logaritmik bir regülasyon
gerçekleştirdiği için süre bazında küçük bir artış gerçekleşir.
Karşılaştırma analizi 3,2 milyon satırlık veri seti üzerinde
gerçekleştirilmiş ve tüm analiz süresi (SparkSQL ile veri
temizleme dahil) üzerinden sonuçlar gösterilmiştir
Şekil 4’de Spark’ın seçilen veri kümeleri üzerinden yapılan
analiz esnasında veri kümeleri ve analiz başına harcanan süreler
milisaniye cinsinden grafik halinde verilmiştir. Grafik
gösterimi yapılırken sadece algoritmanın sınıflandırma
aşamasında harcadığı zaman verilmiştir. SparkSQL üzerinden
veri temizlenmesi dahil edilmemiştir.
Şekil 4. Seçilen veri setleri üzerinden SPAM geçen sürelerin milisaniye
cinsinden ifadesi
VIII. SONUÇLAR
Bu çalışmada veri madenciliği alanında yeni bir yaklaşımla
ortaya çıkan verileri diskten bir kere okuyup RAM üzerinde
depolama mimarisi ile geliştirilen Apache Spark kullanılmıştır.
Spark çerçevesi ile geliştirilen analiz ortamında metin
sınıflandırması ve bilgi çıkarımı probleminde istatistik
temellerine dayanan makine öğrenmesi bilimi kullanılmıştır.
Makine öğrenmesi bünyesinde bulunan Destek Vektör
Makinesi yöntemi ile üç farklı alanda dört kategoride analiz
gerçekleştirilmiştir. Veri setlerinde doğru ve güvenilir analiz
gerçekleştirmek için terminolojide bulunan hedefe yönelik
anahtar kelimeler belirlenmiş ve set haline getirilmiştir. Set
haline getirilen anahtar kelimeler etiketlendikten sonra destek
vektör makinesine göre eğitilmiş ve model haline getirilip veri
seti üzerinden analiz gerçekleştirilmiştir. Elde edilen sonuçlar
süre, analiz eşleşmesi, yüzdelendirme, seçilen belirli
büyüklükteki veri setleri şeklinde bölümlendirilerek detaylı
tablo ve grafiklerle sunulmuştur.
KAYNAKLAR
[1] C. Clifton, Encyclopædia Britannica: Definition of Data Mining”,
Retrieved 2010-12-09.
[2] T. Hastie, R Tibshirani, and J. Friedman, The Elements of Statistical
Learning: Data Mining, Inference, and Prediction”, Second Edition,
Springer, 2009.
[3] I. H. Witten, E. Frank, and M. A. Hall, “Data Mining: Practical Machine
Learning Tools and Techniques”, Third Edition, Elsevier, 2011.
[4] M. Kantardzic, Data Mining: Concepts, Models, Methods, and
Algorithms”, John Wiley & Sons, 2003.
[5] S. Kotsiantis, D. Kanellopoulos, and P. Pintelas, “Data Preprocessing for
Supervised Learning”, International Journal of Computer Science, Vol.
1, Number 1 , 2006.
[6] J. Han, M. Kamber, “Data mining: concepts and techniques”, Second
Edition Morgan Kaufmann, 2001.
[7] K. B. Cohen, L. Hunter, “Getting Started in Text Mining”, PLoS
Computational Biology, 4(1), 2008.
[8] B. Pang, L. Lee, and S. Vaithyanathan, Thumbs up? Sentiment
Classification using Machine Learning Techniques”, Proceedings of the
ACL-02 conference on Empirical methods in natural language processing,
Vol. 10, 2002.
[9] M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica,
Spark: Cluster Computing with Working Sets”, Proceedings of the 2nd
USENIX conference on Hot topics in cloud computing 2010.
[10] M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. J.
Franklin, S. Shenker, and I. Stoica, Resilient Distributed Datasets: A
Fault-Tolerant Abstraction for In-Memory Cluster Computing”, Proc. of
the 9th USENIX conference on Networked Systems Design and
Implementation 2012.
[11] R. Xin, J. Rosen, M. Zaharia, M. Franklin, S. Shenker, I. Stoica, “Shark:
SQL and Rich Analytics at Scale”, AMPLab, EECS, UC Berkeley, 2013.
[12] MLlib | Apache Spark”, spark.apache.org, Retrieved 2017-05-04.
[13] W. H. Press, S.A. Teukolsky, W. T. Vetterling, and B. P. Flannery,
“Section 16.5. Support Vector Machines”, Numerical Recipes: The Art of
Scientific Computing (3rd ed.), 2007.
[14] T. Joachims, “Transductive Inference for Text Classification using
Support Vector Machines”, Proc. of the Sixteenth International
Conference on Machine Learning, 1999.
0
5000
10000
15000
20000
25000
30000
Süreler (ms) Linear (Süreler (ms))
... Other research has also focused on the use of Spark [13], for distributed processing of large amounts of textual data. Spark helps leverage parallel computing power to perform natural language processingintensive tasks [14] [15], improving the e ciency and scalability of text classi cation [16]. ...
Preprint
Full-text available
Today, text classification has always been a crucial discipline in the field of text data processing. However, with the advent of Big Data, text classification has reached new heights in terms of the volume of data to be processed and the complexity of the tasks. This task is of great importance in many fields, such as spam detection, sentiment analysis, document categorization, content recommendation and many more. In this work, we focus specifically on resume classification, an area that presents unique challenges due to diverse formats, ambiguous language, and variations in applicants' work experiences. We propose an innovative approach for distributed classification of CVs using contextual alignment techniques with the job offer and the pre-trained language model BERT (Bidirectional Encoder Representations from Transformers) which constitutes a major advance in this field , and using RNN (Recurrent Neural Network) to solve text classification problems. We use a distributed processing approach to leverage the parallel computing power of Spark, enabling large volumes of data to be processed efficiently. The main objective of our study is to improve the relevance of CV classification by leveraging the pre-trained language models and distributed processing power of Spark.
Conference Paper
Full-text available
The organization of crop cultivation practices is still far from completion, and Web Resources are not used adequately. This paper proposed a method, based on SVM, to organize the knowledge of crop cultivation practices efficiently from Web Resources. The knowledge organization method of crop cultivation was proposed with Good Agricultural Practices (GAP) in the application of the crop cultivation practices. It is that how to organize the existing crop cultivation knowledge, according to the requirements of crop cultivation practices. It mainly includes a text classification method and a search strategy on the knowledge of crop cultivation. For the text classification method, it used a text classification method based on SVM Decision Tree; for the search strategy, it used a strategy, organized by Ontology and custom knowledge bases. The experiment shows that performance of the proposed text classification method and the knowledge organization method with wheat, is workable and feasible. © 2012 IFIP International Federation for Information Processing.
Conference Paper
Full-text available
We present Resilient Distributed Datasets (RDDs), a distributed memory abstraction that lets programmers perform in-memory computations on large clusters in a fault-tolerant manner. RDDs are motivated by two types of applications that current computing frameworks handle inefficiently: iterative algorithms and interactive data mining tools. In both cases, keeping data in memory can improve performance by an order of magnitude. To achieve fault tolerance efficiently, RDDs provide a restricted form of shared memory, based on coarse-grained transformations rather than fine-grained updates to shared state. However, we show that RDDs are expressive enough to capture a wide class of computations, including recent specialized programming models for iterative jobs, such as Pregel, and new applications that these models do not capture. We have implemented RDDs in a system called Spark, which we evaluate through a variety of user applications and benchmarks.
Book
Data Mining: Practical Machine Learning Tools and Techniques, Fourth Edition, offers a thorough grounding in machine learning concepts, along with practical advice on applying these tools and techniques in real-world data mining situations. This highly anticipated fourth edition of the most acclaimed work on data mining and machine learning teaches readers everything they need to know to get going, from preparing inputs, interpreting outputs, evaluating results, to the algorithmic methods at the heart of successful data mining approaches. Extensive updates reflect the technical changes and modernizations that have taken place in the field since the last edition, including substantial new chapters on probabilistic methods and on deep learning. Accompanying the book is a new version of the popular WEKA machine learning software from the University of Waikato. Authors Witten, Frank, Hall, and Pal include today's techniques coupled with the methods at the leading edge of contemporary research. Please visit the book companion website at http://www.cs.waikato.ac.nz/ml/weka/book.html It contains Powerpoint slides for Chapters 1-12. This is a very comprehensive teaching resource, with many PPT slides covering each chapter of the book Online Appendix on the Weka workbench; again a very comprehensive learning aid for the open source software that goes with the book Table of contents, highlighting the many new sections in the 4th edition, along with reviews of the 1st edition, errata, etc. Provides a thorough grounding in machine learning concepts, as well as practical advice on applying the tools and techniques to data mining projects Presents concrete tips and techniques for performance improvement that work by transforming the input or output in machine learning methods Includes a downloadable WEKA software toolkit, a comprehensive collection of machine learning algorithms for data mining tasks-in an easy-to-use interactive interface Includes open-access online courses that introduce practical applications of the material in the book.
Article
This book reviews state-of-the-art methodologies and techniques for analyzing enormous quantities of raw data in high-dimensional data spaces, to extract new information for decision making. The goal of this book is to provide a single introductory source, organized in a systematic way, in which we could direct the readers in analysis of large data sets, through the explanation of basic concepts, models and methodologies developed in recent decades. If you are an instructor or professor and would like to obtain instructor's materials, please visit http://booksupport.wiley.com. If you are an instructor or professor and would like to obtain a solutions manual, please send an email to: [email protected] /* */
Article
Shark is a new data analysis system that marries query processing with complex analytics on large clusters. It leverages a novel distributed memory abstraction to provide a unified engine that can run SQL queries and sophisticated analytics functions (e.g., iterative machine learning) at scale, and efficiently recovers from failures mid-query. This allows Shark to run SQL queries up to 100x faster than Apache Hive, and machine learning programs up to 100x faster than Hadoop. Unlike previous systems, Shark shows that it is possible to achieve these speedups while retaining a MapReduce-like execution engine, and the fine-grained fault tolerance properties that such engines provide. It extends such an engine in several ways, including column-oriented in-memory storage and dynamic mid-query replanning, to effectively execute SQL. The result is a system that matches the speedups reported for MPP analytic databases over MapReduce, while offering fault tolerance properties and complex analytics capabilities that they lack.
Book
This is the third edition of the premier professional reference on the subject of data mining, expanding and updating the previous market leading edition. This was the first (and is still the best and most popular) of its kind. Combines sound theory with truly practical applications to prepare students for real-world challenges in data mining. Like the first and second editions, Data Mining: Concepts and Techniques, 3rd Edition equips professionals with a sound understanding of data mining principles and teaches proven methods for knowledge discovery in large corporate databases. The first and second editions also established itself as the market leader for courses in data mining, data analytics, and knowledge discovery. Revisions incorporate input from instructors, changes in the field, and new and important topics such as data warehouse and data cube technology, mining stream data, mining social networks, and mining spatial, multimedia and other complex data. This book begins with a conceptual introduction followed by a comprehensive and state-of-the-art coverage of concepts and techniques. Each chapter is a stand-alone guide to a critical topic, presenting proven algorithms and sound implementations ready to be used directly or with strategic modification against live data. Wherever possible, the authors raise and answer questions of utility, feasibility, optimization, and scalability. relational data. -- A comprehensive, practical look at the concepts and techniques you need to get the most out of real business data. -- Updates that incorporate input from readers, changes in the field, and more material on statistics and machine learning, -- Scores of algorithms and implementation examples, all in easily understood pseudo-code and suitable for use in real-world, large-scale data mining projects. -- Complete classroom support for instructors as well as bonus content available at the companion website. A comprehensive and practical look at the concepts and techniques you need in the area of data mining and knowledge discovery.
Encyclopaedia Britannica: Definition of Data Mining
  • C Clifton
C. Clifton, "Encyclopaedia Britannica: Definition of Data Mining", Retrieved 2010-12-09.
Thumbs up? Sentiment Classification using Machine Learning Techniques
  • B Pang
  • L Lee
  • S Vaithyanathan
B. Pang, L. Lee, and S. Vaithyanathan, "Thumbs up? Sentiment Classification using Machine Learning Techniques", Proceedings of the ACL-02 conference on Empirical methods in natural language processing, Vol. 10, 2002.