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.

29 Kasım 2011 tarihinde veri analizi, veri tabanları, İstatistik içinde yayınlandı ve , , , , , , olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin. Yorum yapın.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: