R Programlama Dili — Giriş ve Uygulamalar
Günümüzde veri analizi gerçekleştirmek için bilgisayarların kullanılması kaçınılmazdır. Bu arada hesaplamalı işlemleri gerçekleştirmek için programlama dilleri geliştirildi, böylece daha fazla özelliğe sahip oldular ve her geçen gün güncelleniyorlar. Bu arada R ve Python gibi hesaplamalı programlama dilleri de oldukça popüler. Ayrıca Cobol programlama dili , ticari programlama alanında en iyi dillerden biri olarak kabul edilir. Faradars dergisinden çıkan bu yazımızda R programlama dili ele alınıyor ve tanıtımının yanı sıra veri analizi alanındaki uygulamalarını inceliyoruz. Bu metnin sonunda bu programlama dilini kullanmanın avantaj ve dezavantajları okuyuculara sunulacaktır.
Programlama dilleri ve veri analizi hakkında daha fazla bilgi edinmek için Python programlama dili makalelerini (Sıfırdan yüze) ve R programlama dilinde işlevleri uygulama – Uygulama Kılavuzu’nu okuyun . Ayrıca kümelemeyle görüntü rengi azaltmayı da okuyun R’de uygulama ve istatistiksel analiz yazılımımızı nasıl seçeceğiz? – Kapsamlı rehber de zarafetten yoksun değildir.
R programlama dili
R, Ross Ihaka ve Robert Gentleman tarafından 1993 yılında geliştirilen bir programlama dili ve özgür yazılımdır. R, çeşitli istatistiksel yöntemler ve grafik yöntemleri içeren kapsamlı kütüphanelere sahiptir. Bu programlama dilinde “Makine Öğrenimi Algoritması” , “Doğrusal Regresyon” , “Zaman Serisi” ve “İstatistiksel Çıkarım” kullanılabilir.
R’de mevcut olan “kütüphanelerin” veya “paketlerin” çoğu R programlama dilinin kendisinde yazılmıştır, ancak ağır bilgi işlem görevleri için C++, C ve Fortran dillerindeki kodlar da mevcuttur ve bu Dilleri içeren kütüphaneler yazılır
R programlama dili yalnızca üniversiteler ve araştırmacılar arasında popüler olmakla kalmıyor, birçok büyük şirket de R programlama dilini kullanıyor. Bunların arasında Uber, Google, Airbnb ve Facebook gibi şirketleri sayabiliriz.
R ile “Veri Analizi” aşağıdaki adımlarda yapılır. “Programlama”, “Dönüştürme”, “Keşfet”, “Modelleme” ve “Sonuç raporlama”. Bu adımların her biri aşağıda tanıtılmaktadır.
- Programlama : R, veri analizi için optimize edilmiş açık ve erişilebilir bir programlama aracıdır.
- Dönüşümler : Bir dizi birbirine bağlı kitaplık ve komut, özellikle veri bilimi için tasarlanmış R programlama dilini oluşturur.
- Keşif : R dilini kullanarak veriler için doğru modeli arayın, hipotezlerinizi keşfedin ve bunları test edin.
- Modelleme : R programlama dilinde, oluşturulan modeli değerlendirmek ve verilere en uygun modeli seçmek için geniş bir araç seti sağlanır.
- Sonuç raporu : Kodların, diyagramların ve çıktıların gelişmiş R Markdown aracıyla entegrasyonu veya web ortamında uygulamalar oluşturması, R programlama dilinin uygulayabileceği olasılıklardan biridir.
Söz konusu içeriğe göre R programlama dili aşağıdaki görevlerin yerine getirilmesi için uygun bir araç olarak değerlendirilebilir.
- İstatiksel sonuç
- Veri analizi
- Makine öğrenimi algoritmalarını uygulama veya oluşturma
R dilinin endüstri ve işletmelere katkısı
Endüstriler ve işletmeler arasında yapılan ankete göre, resim 2’ye göre bir diyagram oluşturuldu. Bilindiği üzere R programlama dilini en çok kullananlar yükseköğretim sektörü ve lisansüstü (Akademik) öğrencileridir. İkinci sırada ise “Sağlık” sektörünü sayabiliriz. Ayrıca tıp alanında bilimsel makalelerin hazırlanması ve araştırmalardan elde edilen istatistiksel sonuçların R programlama dili ile sunulması, bunların güvenilirliğinin artmasına yol açmaktadır. Öte yandan belki de elektrik mühendislerinin MATLAB yazılımına olan istekleri ve aşinalıkları R’yi kullanmalarına engel olmuştur. Bu nedenle aşağıdaki diyagramla ilgili listenin sonuna yerleştirilmiştir.
Popüler R paketleri veya kitaplıkları
Bahsettiğimiz gibi, farklı bilimsel alanlardaki algoritmaları veya birçok fonksiyonu uygulamak için, Şekil 3’te gösterilen R programlama dilinde, kullanıcının sırasına göre sayıya göre kütüphaneler veya tesis paketleri (Yardımcı Program) yer almaktadır. Stack Overflow ( + ) sitesinde sorulan soru ve cevaplardan oluşan bir site oluşturuldu. Birincisi veriler üzerinde dönüşümler gerçekleştirmek için, ikincisi ise çizim yapmak için kullanılan dplyr ve ggplot2 kütüphaneleri en popüler olanlar arasındadır. Öte yandan ölçekler ve gridExtra kütüphaneleri daha az kullanılmaktadır.
Bugüne kadar 12.000’den fazla paketin yer aldığı R kütüphanelerinin tamamı ücretsizdir ve CRAN( + ) sitesinden temin edilebilir . CRAN ücretsiz ve açık kaynaklı bir sitedir. Makine öğrenimi algoritmalarını veya zaman serisi analizini çalıştırmak için birden fazla kitaplık indirebilir ve kullanabilirsiniz .
Neden R’yi kullanıyorsunuz?
Veri bilimi şirketlerin çalışma şeklini şekillendiriyor. Kuşkusuz yapay zeka ve makine öğrenmesinin kullanılmaması şirketlerin ticari faaliyetlerinde başarısız olmasına neden olacaktır. Asıl soru, veri analizi için hangi araç veya dilin kullanılacağıdır?
Finansal işlemlerin gerçekleştirilmesine ve analiz edilmesine yönelik çok sayıda ticari araç bulunmaktadır. Ama ne yazık ki bunların çoğu paradır. Öte yandan şirketinizin çalışma şekliyle veya veri sürecinizle uyumlu olmayabilir. Öte yandan yeni bir programlama dili öğrenmek uzun ve karmaşık bir iştir.
R programlama dilini öğrenmek gerçekten karmaşık mı? Karmaşıklık ve verimlilik arasındaki dengenin dikkate alınması ve şirketin işleri için en iyi programlama dilinin seçilmesi gerektiğini unutmayın. Şekil 4’te diller ile finansal analiz yazılımları arasındaki eğitimin verimliliğini ve basitliğini karşılaştıran bir grafik görebilirsiniz. Verilerinizden en iyi bilgiyi çıkarmak ve görüntülemek istiyorsanız, bunun için doğru aracı, R programlama dilini öğrenmeye biraz zaman ayırmalısınız.
Görsel 4 ile ilgili diyagramın sol üst kısmında Excel ve PowerBI’ı görebilirsiniz . Bu iki aracı öğrenmek oldukça basittir ancak kullanıcıya özellikle modelleme açısından daha az profesyonel performans sunarlar. Diyagramın ortasında Python ve SAS istatistiksel analiz paketi anlamlıdır. SAS, istatistiksel analizi profesyonelce gerçekleştirmek için özel bir araçtır ancak ne yazık ki ücretsiz değildir. Bunun aksine, “Python” tekdüze bir öğrenme eğrisine sahip bir dildir. Python, makine öğrenimi ve yapay zeka algoritmalarını dağıtmak için harika bir araçtır ancak iletişim özelliklerinden yoksundur. Benzer bir öğrenme eğrisi ile R, uygulama ve veri analizi arasında iyi bir denge kurar.
Veri görselleştirme söz konusu olduğunda muhtemelen Tableau yazılım paketini arıyorsunuz. Şüphesiz Tableau, çizelgeler ve grafikler aracılığıyla kalıpları keşfetmek için harika bir araçtır. Üstelik Tableau’yu öğrenmek zaman alıcı değildir. Veri görselleştirmeyle ilgili büyük bir sorun, hiçbir zaman bir model bulamamanız veya bir sürü işe yaramaz grafikle karşılaşmanızdır. Tableau paketi, verilerin hızlı bir şekilde görselleştirilmesi veya “İş Zekası” için uygun bir araçtır . Ancak istatistik ve istatistiksel analiz araçları söz konusu olduğunda R daha uygundur.
İş için R programlama dili seçilmeli mi?
Genellikle bir “Veri Bilimcisi” analizleri programlamak ve yürütmek için iki araç kullanabilir: R programlama dili ve Python. Özellikle veri biliminde yeniyseniz, her ikisini de öğrenmeye zamanınız olmayabilir. Makine öğrenimi, istatistiksel modelleme ve çeşitli algoritmalar, çoğu modern programlama dilinde kullanılan veri analizi için etkili araçlardır. Bu konularda yeterli ustalığa sahip olmak, programlama dili öğrenmekten çok daha etkilidir. Aslında programlama dili, verileri hesaplamak, iletmek ve tanımak için bir araçtır.
Veri bilimindeki en önemli şey verilerle nasıl ilgilendiğinizdir. “İçe Aktarma”, “Temizleme”, “Veri Hazırlama”, “Özellik Mühendisliği” ve “Özellik Seçimi” veri bilimi faaliyetlerinin ana adımlarıdır.
Bu faaliyetler ana odak noktanız olmalıdır. İstatistiksel bir altyapınız olmadan R ve Python’u aynı anda öğrenmek istiyorsanız yanlış yerdesiniz. Bir veri bilimcisinin programcı olmadığını unutmayın. Böyle bir kişinin görevi, verileri anlamak, onu manipüle etmek ve davranışlarını anlamak için en iyi modeli veya yöntemi bulmaktır.
R programlama dilini öğrenmek zor değil
Yıllar önce R’de ustalaşmak zordu. Dilin yeni başlayanlar için kafa karıştırıcı olduğu düşünülüyordu ve yapısı diğer programlama araçlarına benzemiyordu. Bu önemli sorunun üstesinden gelmek için, “Hadley Wickham” (Hadley Wickham), bir kütüphanede veya tidyverse adı verilen pakette bir dizi komut ve olanak hazırladı. Bu sayede verilerin değiştirilmesi ve dönüştürülmesi daha sezgisel hale geldi ve okunabilirliği arttı. Öte yandan analitik grafiklerin çizilmesi ve oluşturulması artık karmaşık ve zor olarak görülmüyordu.
Neyse ki en iyi makine öğrenimi algoritmaları R ile uygulanabilir. Keras ve TensorFlow gibi paketler gelişmiş makine öğrenimi tekniklerine olanak tanır. R ayrıca Kaggle yarışmalarına katılmak için en iyi algoritmalardan biri olan Xgboost’u uygulayacak bir pakete de sahiptir .
R diğer programlama dilleriyle arayüz oluşturabilir. R’de Python , Java , C++ ile iletişim kurmak mümkündür. Büyük veriler üzerinde işlem ve analiz yapılması da R için değerlendirilmektedir. R’yi Spark veya Hadoop gibi farklı veritabanlarına bile bağlayabilirsiniz .
Son olarak R’de paralelleştirme işlemlerinin gücünden bahsedebiliriz. Geçmişte R programlama dili yalnızca tek bir CPU kullandığı için eleştiriliyordu. Neyse ki, görevleri ayrı işlemci çekirdeklerinde gerçekleştirmenize olanak tanıyan paralel hesaplama uygulama paketleri ve kitaplıkları oluşturulmuştur.
Özetle R’nin veri araştırması ve analizi için mükemmel bir araç olduğunu söyleyebiliriz. Makine öğrenmesinde “Kümeleme Analizi” , “Korelasyon” ve “Boyut Küçültme” gibi modern analizler R ile kolay ve hızlı bir şekilde yapılabilmektedir.
R programlama dilinin avantajları ve dezavantajları
Bu bölümde R programlama dilinin bazı özelliklerini ve dezavantajlarını tartışacağız. Elbette avantajlarına şaşırmamak, dezavantajlarına ise cesaretini kırmamak gerekir. Diğer rakiplerle rekabete her zaman yer vardır. Araçlarımızın olanaklarını ve sınırlamalarını doğru bir şekilde anlamak önemlidir.
R programlama dilinin avantajları
- Açık Kaynak : R dili açık kaynak kodlu bir programlama dilidir. Bu, herkesin herhangi bir lisans veya ücret gerektirmeden R ile çalışabileceği anlamına gelir. Ayrıca R paketlerini özelleştirerek yeni paketler geliştirebilir, sorunların çözümüne ve yeni algoritmalar oluşturulmasına katkıda bulunabilirsiniz.
- Çeşitli verilerin tam desteği : R’de her türlü bilgiyi inceleyebilir ve analiz edebilirsiniz. Dplyr veya readr gibi çeşitli kütüphanelerin yardımıyla yapısal olmayan verileri yapılandırılmış veriye dönüştürmek ve analiz etmek mümkündür.
- Çok sayıda paket veya fonksiyonel kütüphane : R kütüphanelerinin yardımıyla, CRAN deposunda 10 binden fazla paketle geniş bir hesaplama işlemleri seti kullanımınıza sunulmaktadır. Bu sayı sürekli artıyor. Bu paketler iş ve bilimsel uygulamaların tüm alanlarını kapsar.
- Kaliteli bir diyagram çizin : Yüksek kaliteli ve doğru bir diyagram çizmek istiyorsanız R dilinde uygun çizim komutları vardır. Ünlü ggplot2 kütüphanesinin işlevleri ve komutları neredeyse her tür grafiği çizmenize olanak tanır. Ayrıca bu tür grafikler üzerinde format değişikliği ggplot paket araçları yardımıyla kolaylıkla yapılmakta , güzel ve göz alıcı grafikler üretilmektedir. Ggplot2 paketi veya kütüphanesi, R programlama dilinin veri görselleştirmedeki güçlü ve etkili noktalarından biridir.
- Uyumluluk : R’de yazdığınız programlar C, C++, Java, Python gibi diğer programlama dillerinde yazılmış komut ve programlarla uyumludur. Ayrıca büyük veri kümeleri üzerinde çalışmak için Hadoop gibi yeni veritabanı teknolojileri bağlanıp veri kaynağı olarak kullanılabilir.
- Platform bağımsız : R programlama dili işletim sisteminden bağımsız bir dildir. Bu nedenle “platformlar arası” bir programlama dili olarak düşünülebilir . Bu, Windows , Linux ve Mac OS’ta kolaylıkla çalışabileceği anlamına gelir.
- Görsel raporlar : Shiny ve Markdown gibi paketler ile R ile veri analizi sonuçlarının raporlanması çok kolaydır. Raporları veriler, grafikler ve R koduyla birleştirebilir ve Markdown Belgesi olarak yayınlayabilirsiniz. Kullanıcının verileri değiştirmesine ve algoritmanızın sonuçlarını görüntülemesine olanak tanıyan etkileşimli web uygulamaları bile oluşturabilirsiniz.
- Makine öğrenmesi işlemleri : R dilinde “Sınıflandırma” (Sınıflandırma) , “Regresyon” (Regresyon) gibi makine öğrenmesi işlemlerini gerçekleştirmek için çeşitli olanaklar bulunmaktadır . Ayrıca R kütüphanelerinde “Yapay Sinir Ağı” (Yapay Sinir Ağı) oluşturma ve geliştirmeye yönelik özellikler sağlanmaktadır.
- İstatistik : R programlama dilini oluşturmanın amacı istatistiksel hesaplamalar yapmaktır. R, belirgin bir şekilde uluslararası istatistik dili olarak tanınmaktadır. R’nin istatistiksel araçlar geliştirme konusunda diğer programlama dillerini geride bırakmasının ana nedeni budur .
- Sürekli büyüme ve gelişme : R’nin açık kaynak ve özgür doğası, sürekli gelişimine katkıda bulunmuştur. Bu programlama dili gelişiyor ve her gün kütüphanelerin veya yazılımın yeni bir sürümü yayınlanıyor. Bu yazının yazıldığı sırada bu yazılımın en son sürümü 10.10.2020 tarihli 4.0.3’tür. Şekil 6’da R kütüphanelerinin büyümesini görebilirsiniz.
Resim 7’de bu yazının yayınlandığı tarihte bu yazılımın son sürümü tanıtılmaktadır.
R programlama dilinin dezavantajları
Yukarıda R programlama dilinin avantajlarından bahsetmiş olsak da maalesef bu programlama dilinde bazı sorunlar bulunmaktadır.
- Zayıf Köken : R, S adı verilen, sağlam bir yapıya sahip olmayan eski bir programlama dilinden türetilmiştir. Bu, R’deki temel kitaplıkların dinamik grafikleri veya 3B görüntüleri desteklemediği anlamına gelir. Elbette ggplot2 ve Plotly gibi gelişmiş kütüphaneleri kullanarak dinamik ve 3D grafikler oluşturmak mümkün.
- Veri Yönetimi : R’de tüm değişkenler fiziksel bellekte saklanır. Yani cihazınızın donanım hafızasına bağlısınız. Bu Python gibi diğer dillerin aksine. Ayrıca R, Python’dan daha fazla bellek kullanır. Ayrıca R, verilere erişmek için tek bir konuma, belleğe odaklanır ve aynı anda farklı kaynaklardan gelen verileri işleyemez. Bu nedenle büyük verilerle çalışırken ideal bir seçenek değildir. Ancak veri yönetimi paketleri ve Hadoop sunucularıyla entegrasyon yeteneği sayesinde bu sorun halledilir.
- Temel güvenlik : R, veriler için temel güvenlikten yoksundur. Bu özellik Python gibi çoğu programlama dilinin önemli bir parçasıdır. Bu nedenle R’nin bir web uygulamasında kullanılamaması nedeniyle çeşitli sınırlamaları vardır, dolayısıyla bilgiler tamamen güvenlidir.
- Karmaşık dil : R öğrenilmesi kolay bir dil değildir. Bu nedenle önceden programlama deneyimi olmayan kişiler R’yi öğrenmeyi biraz zor bulabilirler.
- Yavaş yürütme hızı : R paketleri ve R programlama dili, MATLAB ve Python gibi diğer dillere göre çok daha yavaştır ancak neyse ki bazı paketler paralel işlemede kullanılabilir.
- Çok sayıda bilgi işlem paketi : R’deki algoritmalar farklı paketlere dağıtılmıştır. Bu tür paketlerin varlığına ilişkin önceden bilgi olmadan programlama, algoritmaların uygulanmasını çok zorlaştırabilir.
RStudio yazılımı
R programları geliştirmek için uygun ortamlardan biri RStudio yazılımıdır. Genel olarak RStudio bir IDE veya Entegre Geliştirme Ortamıdır . Bu yazılımda çevresel değişkenleri görüntüleme, çizim çerçeveleri vb. gibi birçok programlama özelliği bulunmaktadır.
Resim 8’de bu yazılımın bir görünümünü görebilirsiniz. Bu pencerede hem terminale hem de konsola erişim bulunmaktadır. Öte yandan, aynı anda birden fazla programla ilgilenebilirsiniz ve düzenleyicinin sekmelerinin her biri, bir kod parçasına veya programa ayrılmıştır.
Yardımın ve çizilen diyagramların RStudio’da ayrı bir yeri vardır. Bu sayede çizilen diyagramları, kaydetme komutlarını koda kaydetmeden doğrudan istediğiniz dosya formatında (PNG, PDF, SVG) kaydedebilirsiniz.
RStudio’da kitaplıkları, veri dosyalarını yüklemek, değişken bilgileri görüntülemek, veri tablolarının yanı sıra dosyaları ve komut geçmişini yüklemek mümkündür. Birden fazla işlemci (çekirdek) kullanmak için R Oturumları olarak bilinen birden çok R oturumunu da kullanabilirsiniz. Birden fazla program koduna aynı anda erişme yeteneği ve bunların düzenlenmesi, RStudio’da dikkate alınan özelliklerden biridir. R dilinde başarılı bir programlama deneyimi yaşamak istiyorsanız RStudio geliştirme ortamını kullanmanız önerilir. RStudio’da R programlama dilinin herhangi bir sürümüyle kodlama yapabileceğinizi unutmayın.
Özet ve sonuç
Bu yazımızda R programlama dilini ve yeteneklerini inceledik. Elbette avantajlarından ve dezavantajlarından da bahsettik. Markdown veya Shiny gibi bu programlama dilindeki geniş olanaklar, onu veri görselleştirmenin yanı sıra hesaplama veya analiz programlarının hazırlanması için çekici bir set haline getirmiştir. Kullanıcıların artan eğilimi ve açık kaynağı (Açık Kaynak), çoğu kullanıcıyı R ile programlamaya çeken diğer konulardır. R’de matris ve vektör hesaplamaları yapma hızı herkesi şaşırttı ve onu rakipsiz bir araç olarak kabul etti