Blog Arşivleri

ORACLE ve R


Bu yazımda, açık kaynak kodlu olarak geliştirilen istatistiksel hesaplama dili R ile oracle’a bağlanıp R’ın RODM paketini kullanıp neler yapabildiklerimi kısaca anlatacağım. Öncelikle R açıp RODM paketini yükleyelim.

> library(RODM)

 Yukarıdaki komut R’da RODBC paketi gibi veritabanı ile R bağlantısını (R ile veritabanı konuşturmak için)  yapmak için gerekli olan komutları hafızaya yükler. Paketi yükledikten sonra şimdi R’da veritabanı bağlantısı yapalım.

DB <- RODM_open_dbms_connection(dsn="orcl", uid="ahmet", pwd="sdf")

 Yukarıda DB isimli bir nesne oluşturduk. Bu nesne “ahmet” kullanıcısı bağlantı yaptığımız veritabanı bağlantısını tutmaktadır. Bu paketi kullanmak bize, R’da yaptığımız analizler sonucu elde ettiğimiz R verilerini ( ki burada R verileri nesne,data frame, liste, vektör, ..vs olarak tutmaktadır.) Oracle’nın anlayacağı bir şekilde çevirim yapılmasını sağlamaktadır. Şuana kadar R’da Oracle bağlantısı yaptık, şimdi birkaç küçük analizle veri madenciliğine giriş yapalım. Test verileri üzerinden gidelim. Elimde hangi verilerin olduğu görmek için R konsolunda aşağıdaki komutu girelim.

> data()

Ekranda küçük bir pencere açılacak ve bize hali hazırda olan verileri ve tanımlamalarını verecektir. Örnek verimiz Orange olsun. R Konsoluna şu komutu girelim

> head(Orange)

Yukarıdaki komut veri setinin 5-6 satır verisini getirecektir. Böylece veriseti hakkında bilgimiz olacaktır.

> orange_data=Orange

 Yukarıda komut ile orange nesnesinin verilerini oracle_data adında yeni bir nesneye atadık. Şimdi bu verimizi oracle’ın içerisine alalım. Yani veritabanımızda bir tabloya alalım. Bunun için;

> RODM_create_dbms_table(DB, "orange_data")

Yukarıdaki komut arka planda ODM algoritmalarını ve işlemleri yaparak orange_data nesnesindeki verileri Oracle’da ahmet şemasının altında orange_data isimli bir tabloya aktarır. Burada dikkat edilmesi gereken şey şudur; bir çok R kullanıcı analizlerini yaparken nesnelerinde . kullanarak isimlendirme yapmayı tercih eder. Eğer . içeren bir nesnedeki veriyi Oracle’a aktarmak istersek bize hata verir. Nedeni ise nesne isimindeki noktadan önce gelen kısmı şema ismi olarak algılar ve kullanıcı bulunamadı hatası verir. Böyle bir hata almamak için nesne isimlerine dikkat edilmelidir. Ayrıca R’da kolon isimleri verirken 30 karakteri geçmemeye ve (.) nokta kullanılmaktan kaçınılmalıdır.

Şimdi kolon isimlerini alalım

> sqlColumns(DB, 'orange_data')$COLUMN_NAME

 Yukarıdaki komut ile orange_data tablosundaki kolonları isimlerini aldık. Bazı algoritmalar Case ID bilgisine ihtiyaç duymaktadır. Şimdi bunu nasıl yapacağımızı görelim.

> numrows <- length(orange_data[,1])
> orange_data.rows <- length(orange_data[,1])
> orange_data.id <- matrix(seq(1, orange_data.rows)
,nrow=orange_data.rows, ncol=1, dimnames= list(NULL, c("CASE_ID")))
> orange_data <- cbind(orange_data.id, orange_data)

Yukarıda işlemler aynı zamanda veritabanındaki veri kaynağımız ile eş zamanlı olarak yapılması için veritabanına tekrar yazılmalıdır.. R’da işlemleri bittikten sonra verinin nihai halini veritabanına gönderelim

> RODM_create_dbms_table(DB, "orange_data")

Yukardaki işlemler yapılmış mı kontrol edelim.

> sqlColumns(DB, 'orange_data')$COLUMN_NAME

İşlemlerimizi veritabanında son hali ile tutulmaktadır.

Aşağıdaki listede RODM paketinin, veri madenciliğinde kullanılan algoritmalara karşılık gelen fonksiyonlarını verdim.

  • RODM_create_ai_model
  • RODM_create_assoc_model
  • RODM_create_dt_model
  • RODM_create_glm_model
  • RODM_create_kmeans_model
  • RODM_create_nb_model
  • RODM_create_nmf_model
  • RODM_create_oc_model
  • RODM_create_svm_model

Bu fonksiyonların anlatımlarını uygulamlı olarak bir sonraki yazımda anlatacağım.

Reklamlar

R (açık kaynak kodlu) İstatistik Programlama Dili


Biz istatistikçiler olarak yaptığımız işleri en kısa zamanda ve hatasız olarak yapmak için bilgisayar yazılımları kullanırız. İstatistikçiler ve istatistik işi ile uğraşanların aşina oldukları  yazılımlar şunlardır; Spss, SAS, R,……Listeyi uzatmak münkün. En çok bilinen programlar bunlar olduğu için yazılarımda bu programlardan bahsedeceğim.

R açık kaynak kodlu GNU lisansı olan bir yazılım. Temel olarak istatistiksel analizler ve işlemler yapıyor. (istatistiksel analizlerin dışında başka çok şey yapıyor. Aslında bir programla dili). R hakkında daha fazla bilgi buradan ulaşabilirsiniz.

R ile çalışmak için en güncel sürümü bilgisayarınıza yükledikten sonra bilgisayarımızda masaüstüne gelen R simgesine tıkladığımızda bizi diğer istatistik programlarınında alışık olmadığımız bir şekilde konsol karışılıyor. Bu konsolda R ile yapacağımız tüm işlemleri kodlar yazarak yapıyoruz. Yani R bizim ne istediğimizi bizim yazdığımız kodlardan anlıyor, yorumluyor ve sonucu bize veriyor. Şunuda belirtmek istiyorum ki; açık kaynak kodlu yazılımların bir avantajı mı bilmiyorum ama R da paketler var. Bu paketler ileR istediğimiz özellikleri ekleyebiliyoruz. ( tabi ki paker içeriklerine göre). Kod tabanlı çalışmaktan hoşlamayan yada alışık olmayanlar için kullanıcı arayüzü içeren paket bile var.

Kısaca R böyle bir şey 🙂 Bir sonraki yazımda kodları vereceğim.