May the FoRce Be with You

Sebnem Ozdemir
Deep Learning Türkiye
5 min readJan 29, 2018

İnsanlık tarihi incelendiğinde güce olan açlık, sanattan sinemaya, savaşlardan mimari değişimlere kadar farklı pek çok alanda görülebilmektedir. Güç; başlangıçta fiziksel güce eş değerken (en iri yarı olan, en iyi kılıç kullanan, en fazla ağırlığı kaldırabilen vb.), sonrasında buharın, makinenin, elektriğin ve petrolün gücü ile değişimini sürdürmüştür. İçinde bulunduğumuz çağda artık güç, verinin gücü ile bağdaştırılmaktadır.

İnsanoğlu veri biliminin başlangıcından bu zamana kadar ürettiği veri miktarının tamamını, şimdilerde dakikalar içinde üretebilmektedir. Örneğin bir jet uçuşunda, sadece kalkış esnasında Terabyte’lar düzeyinde veri oluşmaktadır. Dünya üzerinde kaç jet uçağı olduğunu, ne kadar sıklıkla havalandıklarını bir hayal edin, sanırım verideki hacimsel büyümeye karşın ne kadar aciz kaldığımızı anlayabileceksiniz. Veri üretme rolü sadece insanlığın omuzlarındayken bile, depolamak, süzmek değerli bilgiye ulaşmak oldukça zor. Peki ya bu rol paylaşılırsa? Endüstri 4.0 (Industry 4.0) kavramı ile robotlar ve üretilen her ürünün de internetin bir nesnesi (IoT) haline gelmesi planlanmaktadır. İnternetin nesnesi olmaktan kasıt dijital dünyadan veri çekme ve yine dijital dünyaya veri üretme fonksiyonlarının kazanılmasıdır.

Veri göllerine akışta kontrol zorluğu yaşayan, bilgi edinebilmek için kıyasıya mücadele eden insanlık; robotlar ve ürünler de veri üretmeye başlayınca William Wallace misali “fredoom” diye isyan mı edecek?

Arabesk’e Bağlamadan Önce

Veri Bilimci, veri göllerinde kendimizi kaybetmeden önce bizi kurtaracak kişi rolünde. Ancak bu role sahip insan sayısı, gerektirdiği özellikler nedeniyle ihtiyaç duyulanın çok çok altında. IBM, 2020 yılına kadar veri bilimcilere olan ihtiyacın her yıl katlanarak artacağını, o yıla gelindiğinde ise 700,000 veri bilimciye ihtiyaç duyulacağını açıkladı. Peki veri bilimciyi bu kadar özel ve az bulunur kılan nedir? Rahmetli Hocam Doç. Dr. Kutlu Merih “iyi bir veri bilimci en az 24 dalda first class uzmanlık sahibi olmalı” derdi. Bu yazıyı yazarken Google’da “data science skill” araması yaptığımda karşıma 62,300,000 adet sonuç çıktı. Artan ihtiyaçla beraber, niteliklerde de artış söz konusu. Ancak en önce çıkanlarda “meraklı, şüpheci ve yaratıcı olması, hata yapmaktan korkmaması, iyi bir istatistik ve matematik bilgisi olması, iyi düzeyde bir veri analiz aracı kullanması” başı çekiyor.

Devlerle Mücadele Ederken Dev Olmak mı, Devlerin Omuzlarında mı Yükselmek?

Veri analiz aracı denilince son beş yıldır “R vs Python” şeklinde tatlı bir çekişme göze çarpmaktadır. KDnuggets’ın her yıl yayınladığı istatistiklerde kimi zaman R’yi kimi zaman da Python’ı ipi göğüslerken görüyoruz. Bu yazımda veri bilimi macerasına R ile başlarsanız sizi neler bekliyor özetlemeye çalışacağım.

FoRce

R; Bell laboratuvarlarında, S dilinin uzantısı olarak geliştirilmiştir. Açık kaynak kodludur, GPL lisansı ile korunmaktadır. R kullanmaya konsol (gui) ile başlayabileceğiniz gibi, RStudio gibi bir arayüz yardımıyla da başlayabilirsiniz (Şekil 1 ve Şekil 2). R konsolunu https://cran.r-project.org/bin/windows/base/ adresinden kolaylıkla indirebilirsiniz; kapladığı alan bakımından basit bir USB’ye kurup sürekli yanınızda bulundurabilmeniz mümkündür (Yaklaşık 1060 paketli hali 2GB yer kaplıyor). RStudio’yu kurabilmek için https://www.rstudio.com/products/rstudio/download/ adresinden faydalanabilirsiniz. Ancak öncelikle R’yi bilgisayarınıza kurmuş olmalısınız.

Şekil 1: R Konsol (gui) Ekranı
Şekil 2: RStudio Ekranı

Şekil 1’de gördüğünüz gibi R konsol tek bir pencere ile bizi karşılıyor. Grafikler çizdikçe, çeşitli görüntülemeler yaptıkça ek pencerelerde çıktılarımızı görebiliriz. Şekil 2’de görülen RStudio, 4 pencere ile işlemlerimizi takip imkanı sağlamaktadır. Sol üst pencerede, R scipritlerini yazıp kolaylıkla saklayabilir ve çağırabiliriz. Sol alttaki pencere, script ekranındaki komutlarımızı run ettiğimizde çıktılar ve hata mesajlarını bize sunmaktadır. Sağ üst köşedeki pencere, oluşturulan nesneleri takip edebilmemizde kolaylık sağlamaktadır. R, nesne yönelimli özelliğe sahip bir dil olması nedeniyle veri analizinde pek çok esnekliği kazandırmaktadır. Sağ alttaki pencere ise yüklü paketleri, çizilen grafikleri, o an çalıştığımız dizini kontrol etmemize imkan tanımaktadır.

R mi Rstudio mu derseniz, bu biraz IOS mu Android tabanlı telefon kullanmak mı sorusuna benzer. Ancak öğrencilerimde gözlemlediğim kadarıyla programlama bilgisi zayıf olan hatta hiç olmayanların RStudio ile başlaması, hali hazırda programcı olup bu alana eğilenlerin ise R konsol tercih etmesi işlerini kolaylaştırmaktadır.

İster R konsol kullanın, ister RStudio farklı analizler yapmak için paketler yüklemeniz ve çağırmanız gerekecek. CRAN üzerinden 10.000’den fazla paket hizmetinize sunulmuş vaziyette. Bu paketleri aramak için MRAN (the Microsoft R Application Network)’ı kullanabilirsiniz (https://mran.microsoft.com/packages) . En popüler paketleri görüntülemek için leaderbord (https://www.rdocumentation.org/trends), çalışacağınız alana göre hangi paketi seçmelisiniz sorusuna ise Cran Task Views (https://cran.r-project.org/web/views/) ile cevap bulabilirsiniz (Öğrencilerimizle bu yapıların Türkçe versiyonlarını hazırlamak üzere çalışmalarımıza başladık :). Kullandığınız paketlerin fonksiyon anlamında eşdeğeri pek çok paket olduğunu unutmayın. Hangisi en iyisi/kullanışlısı sorusuna basit bir Google Scholar araması ile en çok atıf alanı seçerek yanıt bulabilirsiniz.

Paket kurumlarında, paket sağlayıcı pek çok yansı(mirror) arasından France (Lyon 1)’i tercih etmenizi öneririm. En fazla paket seçeneği ve kurulumdaki hata miktarının azlığı nedeniyle bu yansı (mirror) diğerlerine fark atmıştır. Bu konudaki raporları incelemek isterseniz https://cran.r-project.org/mirmon_report.html adresine göz atabilirsiniz.

R büyük küçük harfe duyarlı bir dildir. Komutları yazarken, fonksiyonları çağırırken yazım biçimlerine dikkat etmelisiniz. Bu açıdan RStudio tamamlama özelliği ile olası yazım yanlışlarının önüne geçilmesini sağlamaktadır. Kasım 2017’den beri R 3.4.3 (Kite-Eating Tree) versiyonu yayında, ancak eski versiyonlarına da https://cran.r-project.org/bin/windows/base/old/ adresinden erişebilirsiniz.

R, sürekli takip gerektiren çok canlı bir yapıya sahip. Mesela 3.4’lü versiyonlarının ilk çıkış felsefesi 3D ve animasyonlu grafikler çizebilmek üzerine kuruluydu. Bu nedenle makine öğrenmesi analizleri yapan araştırmacılar 3.2.5 ya da 3.3’lü versiyonlarını kullanmaya devam ettiler (çünkü 3.4’lü versiyonların performansından çok memnun değildik ve bazı paketler çalışmıyordu). 3.4.3 versiyonu bu sıkıntıyı da gidererek herkese rahat çalışabileceği bir ortam sağlamış oldu.

İşe istatistikle başlamak isteyenler, Anova’dan doğrusal regresyona kadar çeşitli analizleri paket kullanmadan R’nin kendi fonksiyonları ile kolaylıkla gerçekleştirebilirler. Ancak hipotez testlerinde (Breusch-Pagan Testi gibi) lmtest paketini kurmanız gerekecektir. Salt paket kurarak analiz yapmak için sandwich, lawstat, psych, rcompanion, FSA, multcompView, lsmeans, lme4, nlme gibi paketleri indirmelisiniz. Söz konusu machine learning olduğunda ise büyük bir okyanusun sizi kucaklamaya hazır olduğunu belirtmeliyim.

R ile ilgili yapılanları daha bilimsel bir dil ve düzenle okumak isterseniz R journal https://journal.r-project.org/archive/2017-1/ adresinden hizmetinizdedir.

Daha önce SPSS, Weka, Rapidminer kullanmış biri olarak gönlüm R’den yana… Olur da sizin de gönlünüz R’ye kayar ve danışacak birilerini ararsanız sebnemozde@gmail.com adresine mail gönderebilirsiniz.

Sonuç olarak “may the foRce be with you”.

--

--

Sebnem Ozdemir
Deep Learning Türkiye

Academician. She has publications on machine learning, data mining.