R Yazılımı Veri Görselleştirme ve Datamining
Son günlerde bir açık kaynak matematik-istatistik-grafik yazılımı olarak R ye ilginin arttığını sevinerek gözlemliyoruz. Burada R nin lisans ücreti olmayan kolay ulaşılabilen ve çok güçlü bir enformatik platform olmasının büyük katkısı var. Burada R yazılımı ve bununla yapılabilecekler konusunda kısa bir özet sunmaya çalışacağız.
R Nedir?
R bir yazılım platformudur ama R denildiğinde akla birkaç şey birlikte gelmeli. Öncelikle R bir script programlama dilidir, R dili bir platform üzerinde çalışır, R paketleri ve geliştirme ortamı (IDE). R nin stratejik özelliği enstalasyon gerektirmemesi ve portatif olarak her ortama yüklenebilmesidir. Yani R yazılımını USB üzerinde cebinizde taşıyabilirsiniz.
R programlama dili (ilk çıkışı 1993 – Yeni Zelanda Auckland Üniversitesi’nde araştırma projesi olarak) 20 yılı aşkın süredir kullanılan ve geliştirilen açık kaynak kodlu bir script dilidir. İstatistiksel hesaplamalar, tahmine dayalı analizler (Predictive Analytics), veri görselleştirme ve raporlama alanları söz konusu olduğunda en çok tercih edilen dildir. Karmaşık istatistiksel hesaplamalar yapıp sonuçları çok geniş yelpazedeki görsellerle sunabilme yeteneği olduğu için özellikle üniversitelerce desteklenmiştir. Devamlı yeni paketler ile geliştiği ve genişleyebildiği için İstatistiksel Analiz ve Veri Bilimi çalışmaları için öncelikle tercih edilen bir yazılım durumundadır.
R Arkasındaki Destek
R Kuruluşu kar amacı gütmeyen bir organizasyondur. Bu organizasyon çeşitli ülkelerdeki üniversiteler ve kurumlar tarafından desteklenmektedir. Dünya çapındaki bağışçılar sayesinde “Development Core Team – Geliştirme Çekirdek Ekibi” R dilini ve ortamını ayakta tutmakta dahası gittikçe güçlendirmektedir. Arkasında canlı ve geniş bir topluluk desteği mevcuttur. R, Free Software Foundation’ın GNU General Public License (GNU Genel Kamu Lisansı) altında açık kaynak kod olarak dağıtılmaktadır. Ücretsizdir.
Ayrıntılı bilgilere şu linkten ulaşabilirsiniz:
https://www.r-project.org/
R Neden Güçlü?
R’ın yetenekleri çalışma ortamına yüklenen paketlerle sürekli olarak genişliyor. Bu arada eski paketlerin de güncellenmiş versiyonları sürekli olarak adapte ediliyor. Böylece R organik olarak giderek genişleyen ve etkinleşen bir yapı. Başlangıçta olmadığı halde artık paralel işlem yeteneklerine de sahip. Bu da Big Data sorunları ile uğraşabilmek kapasitesi sağlıyor. Bu paketler çeşitli analiz teknikleri, gelişmiş grafik özellikleri, farklı türden dosya okuma/yazma gibi bir çok yeteneğe sahip. Şu anda (Mart 2017) CRAN (Comprehensive R Archive Network – Geniş Kapsamlı R Yazılım Ağı) havuzunda erişilebilir durumda 9300+ yetenekli R paketi yer almaktadır. Bunun yanında GitHUB ve BioConductor portallerinde de paketler var. Böylece potansiyel R paketlerinin sayısı 10.000 üzerinde. R nin bir yazılım değil Yazılım Evreni (Cosmos) olduğu çok açık. Kullanıcılar bilgi düzeyleri ve uzmanlık alanlarına göre geniş bir uygulama spektrumuna dağılmış olan bu paketleri yükleyerek kullanabilirler.
Enformatik Ekosistemdeki Yeri Nedir?
R Ekosistemi istatistiksel veri analizi, veri madenciliği, makine öğrenmesi, veri yönetimi, veri bilimi, büyük veri, veri görselleştirme, Finansal Analiz, Stock Trading gibi analiz, tahmin ve raporlama odaklı daha bir çok konu ile ilişkilidir. Dolayısıyla bazı teknolooji şirketleri ürünlerinde R’a destek vermektedir veya tamamen R temelli hizmetler sunmaktadır. R her geçen gün daha da popüler olmaktadır. Odağı veri analizi olmasına rağmen araştırmalara göre popülerlik sıralamasında daima ilk 5 de görünüyor.
Nereden başlamalı?
R dilini öğrenmek ve kullanmak oldukça kolay. Ancak uzman olmak biraz zor. Çünkü bir çok kütüphanenin kullanımı yoğun istatistik ve matematik bilgisi gerektiriyor. Kodlarla çalışmanın doğal yan etkileri de var tabi. Yazmak oldukça yavaş, okumak ve değişiklik yapmak da çok kolay sayılmaz. Ancak koca koca analizleri komut satırları ile ifade edip dağıtmak oldukça pratik. R nin bir ayrıcalığı da R kullanma ve sorun çözme konularını işleyen en çok sayıda internet sitesine sahip olması. R için çeşitli uygulamalara yönelik bir çok eğitim sitesi bulmak mümkün. Bizim önerimiz ise R ile ilginizi Yaparak Öğrenme tekniğini kullanan DATALAB TR ile başlamanız. Bu eğitimlerde katılımcılara R nin en son ve en güvenilir versiyonu ve bazı stratejik R programları yüklenmiş yüklenmiş USB ler vererek veya bunları DropBox portalinden indirerek başlıyoruz. Böylece katılımcılar eğitimle bir likte R kullanmaya başlamış oluyorlar. Sonrası katılımcının heves ve enerjisine bağlı oluyor.
Algoritmik Grafik Datamining
Data Mining, özellikle iş dünyasındaki büyük verileri keşfetmek için dizayn edilmiş; değişkenler arasındaki ilişkileri ortaya çıkaran, desenleri ortaya çıkararak yeni ve anlamlı bilgiler oluşturan yöntemler sürecidir.
En önemli amacı prediction/tahminlemedir. Aynı zamanda da tahminleme en yaygın data mining çeşididir ve iş dünyasındaki herhangi bir alanda bu çeşidin genellikle bir karşılığı bulunur.
Söz konusu Data Mining prosesi üç ana adımdan oluşmaktadır:
1- İlk Keşfetme
2- Model oluşturma ve Doğrulama
3- Geliştirme
Adım 1-İlk Keşfetme:
Genellikle veriyi hazırlama safhasıyla başlar. Veriyi temizleme, veriyi dönüştürme, kayıtlardan alt küme seçme, büyük verileri ve alanları seçme işlemidir. Bu aşamada Feature Selection denilen, modele katlısı olmayacak, modeli gereksiz yere yorabilecek ve modelin yönetimini zorlaştırabilecek alanların tespiti ve eleminasyonu sağlanabilir. Tabi modelin yönetimi derken, modelin ne olduğuna daha önceden karar vermiş olamamız gerekmektedir.
Analitik problemin doğasına bağlı olarak, Regreson Analizi gibi basit işlemlerle, veriyi keşfetmek için Veri Keşfetme (Exploratory Data Analysis (EDA)) yöntemleri kullanılır. Veri keşfetme işlemi sırasında veri karmaşıklığı konusu ve verilerin birbirleri ile ilgili değişkenleri belirlenir.
Adım 2-Model Oluşturma ve Doğrulama:Model Building
Bu aşama çeşitli metotlar üzerinde düşünme ve durumumuza en uygun olanını seçme aşamasıdır. Sadece tek bir operasyon gibi görünmesine rağmen ayrıntılı prosesler içerebilir. Bu amacı gerçekleştirmek için çeşitli teknikler geliştirilmiştir. Bu metodların bir çoğu aynı data seti ile farklı modeller deneyen ve en iyisini seçmek için performanslarını kaşılaştırmaya yarayan “Competitive Evaluation of Models,” denilen bir tekniğe dayanır. Bu teknikler Predictive Data Mining in çekirdeğine ek olarak Bagging (Voting, Averaging), Boosting, Stacking (Stacked Generalizations), ve Meta-Learning yöntemlerini de içerir.
Son aşama bir önceki aşamada seçilen en iyi modelin; umulan çıktıları elde etmek için, yeni verilerle çıkarım ve tahmin yapılması aşamasıdır.
DATALAB TR olarak bu aşamada öncelikle gelişmiş R Grafik Paketlerinden yararlanan Grafik Datamining yaklaşımını öneriyoruz.
Grafik Datamining ve Veri Görselleştirme
Grafik Datamining DATALAB TR nin geliştirdiği ve yazılımının ileri grafik ve harita paketlerinin karmaşık verisetlerinin Veri Görselleştirme odaklı olarak uygulanmasıdır. Yani Grafik datamining ile güzel grafikler yapmak değil veri setlerinin enformatik analizinin grafik yöntemler kullanılarak gerçekleştirilmesi amaçlanır. Kısaca söylenirse Grafik Datamining veri ile başlayan ve yine veri ile sonuçlanan algoritmik araştırma son uçlarının grafik olarak basit ve anlaşılır hale getirilmesidir. R platformu bize bu maca uygun lattice, ggplot2, ggmap, ggviz, leaflet,… gibi çok sayıda grafik görselleştirme paketi sağlıyor. Konuya ve verisetine uygun bir veya birkaçı ile sonuca ulaşabilirsiniz. Grafik datamining Yapay Zeka ve Machie Learning uygulamaları öncesinde araştırmacıya problermin ve verisetinin doğası konusunda bir ön anlayış sağlamasına olanak yaratıyor. R yazılım diline ve çeşitli paketlerin becerilerine hakim olunduğu durumda yoğun verisetlerinden çok etkileyici DASHBOARD grafikler oluşturmak da mümkün.
Machine Learning
Makine Öğrenmesi, verilen bir problemi probleme aitortamdan edinilen veriye göre modelleyen bilgisayar algoritmalarının genel adıdır. Makine öğrenmesi ayrı bir alan olarak 1990 yıllarında yeniden gelişmeye başladı. Burada bilgisayarları hafıza kapasitesi ve hesaplama gücünün artması önemli bir rol oynadı. Çünkü bu algoritmalar üst düzey bilgisayar kapasitesi gerektiriyor. Makine öğrenmesi ve veri madenciliği sık sık aynı yöntemleri kullanırlar ve bu yöntemler önemli ölçüde örtüşmektedir. Bu yöntemler genel hatlarıyla aşağıdaki şekildeki gibi ayırt edilebilir:
- Veri madenciliği algortimik teknikler ile veri kütlelerinde gizlenmiş özelliklerin keşfedilmesine odaklanır. Bu veritabanlarında bilgi keşfi analizinin bir adımıdır.
- Makine öğrenmesi algoritmik araçlar ile öğrenilen verilerden yapılan tahminler ve bu öğrenme ve tahmin işlemlerinin insandan bağımsız bilgisayarların gerçekleştirebilmesine odaklanır.
Bu iki alan birçok yönden örtüşmektedir. Veri madenciliği birçok makine öğrenmesi metodunu kullanır fakat çoğunlukla mantıksal olarak farklı hedefleri vardır. Diğer bir yandan makine öğrenmesi de denetimsiz öğrenme ya da öğrenici doğruluğunu geliştirmek için ön işleme adımı gibi veri madenciliği metotlarını kullanır.
Bu teknikler güçlü potansiyelleri nedeniyle yoğun çalışılan bir konu olduğu için önerilmiş birçok yaklaşım ve algoritma mevcuttur. Bu yaklaşımların bir kısmı tahmin (prediction) ve kestirim (estimation) bir kısmı da sınıflandırma (classification) yapabilme yeteneğine sahiptir. Veriye dayalı olarak eğitim yapılmasının temel amacı eğitilen sistemin benzer konuda hiç bilinmeyen bir örneğe mantıklı bir cevap üretebilmesidir. Genel olarak bu araştırmalar iki amaca yöneliktir:
Tahmin (prediction): Veriden öğrenen modellerde sistem çıkışının nicel olması durumunda kullanılan yöntemlerin ürettiği değerlerdir.
Sınıflandırma (classification): Giriş verisine ait çıkışların nitel olduğu durumlarda kullanılan yöntemlerin her veri örneğinin hangi sınıfa ait olduğunu belirlemesidir.
Bu amaçları gerçekleştirmek için önerilmiş birçok makine öğrenmesi yöntemi mevcuttur. Bunlar probleme yaklaşımlara göre farklılık gösterebilir ve bu yüzden farklı problemlerde farklı başarılara sahip olabilirler. R yazılımı bu teknikleri ve algoritmaları kullanan bir çok pakete sahiptir. Bu paketler algoritmalar konusunda en son ve en gelişmiş teknikleri hizmete sunabilmektedir.
Makine Öğrenmesi yöntemleri verinin yapısına göre ikiye ayrılır.
Danışmansız (unsupervised) Öğrenme: Sınıf bilgisi olmayan veya verilmeyen veri içerisindeki grupları keşfetmeyi hedefler. PCA Kümeleme (clustering) yöntemleri ise danışmansız öğrenme yöntemleri olarak anılırlar.
Danışmanlı (supervised) Öğrenme: Veri, etkiye tepki prensibiyle çalışan sistemlerden alınır ve etki faktörlerinin sonuçlarının tahmin edilmesi için önceden eğitim (train) ve tahmin (test) setlerine ayrıştırılmalıdır (supervising).
Peki Kümeleme nedir?
Danışmansız öğrenmeyi baz alan Kümelemede amaç veri kümesi içerisindeki veri örneklerini sadece özellik (feature) vektörlerine göre gruplamaktır. Bunun için örneklerin birbirine benzerliği gözetilir. Kümeleme literatüründe benzerlik (similarity) terimi uzaklık (distance) terimiyle zıt anlamda kullanılmaktadır. Kümeleme algoritmaları çok çeşitli benzerlik ve uzaklık metriklerini kullanmaktadır. Kullanılan metriğe göre birbirine benzer olan örnekler aynı kümeye ve biribirinden uzak olan örnekler farklı kümelere yerleştirilmeye çalışılır. Küme sayısı genellikle dışarıdan verilir. Optimum küme sayısını belirleyen teknikler de mevcutdur.
Diğer Makine Öğrenmesi (Machine Learning) algoritmalarını daha kapsamlı bir çalışma ile inceleyeceğiz.
Alfabetik sıraya göre CRAN paketleri:
https://cran.r-project.org/web/packages/available_packages_by_name.html
Başlıklara göre değerlemeler:
https://cran.r-project.org/web/views/
R ile ilgili başlıklar:
http://www.r-tutor.com/
http://abdullahkise.blogspot.com.tr/2016/10/adm-adm-veri-bilimi-1-r-dunyasna-giris.html?spref=tw
Kutlu MERİH:
Coşkun KÜÇÜKÖZMEN: http://datalabtr.com/index.php/2016/02/10/buyuk-verinin-analizi-ve-gorsellestirilmesi-2/