Veri Madenciliği Dersi 2. Ünite Özet
R Yazılımı
- Özet
- Sorularla Öğrenelim
Giriş
R yazılımı İnternet aracılığı ile ücretsiz olarak dağıtılan genel lisanslı bir programdır. Yazılımı elde eden herkes asıl kaynağı belirterek dağıtma ve kullanma hakkına sahiptir. Yazılımın kaynak kodu da açık bir şekilde sunulmaktadır. Yazılımın üstünlüklerinden biri, hemen hemen bütün işletim sistemlerinde çalışabiliyor olmasıdır.
R yazılımı kullanılarak, istatistiksel analiz, grafik çizme ve veri işleme işlemleri yapılabilir. Temel olarak R, Becker and Chembers tarafından geliştirilen S dilinin bir çeşididir. S dili daha sonra S-Plus paket programı hâline dönüşerek ticari bir marka hâline gelmiştir. Günlük bir kullanıcı kolaylıkla bu iki dil arasında geçiş yapabilmektedir. R ise, R yazılımı adı altında paket program hâline gelmiştir.
R yazılımı, http://www.r-project.org adresinden kullanılan işletim sistemine göre ücretsiz olarak temin edilebilmektedir. R yazılımı İnternet sitesinde günlük kullanıcılar tarafından tüm dünya bilim adamlarının kullanımına olanak sağlayacak yaklaşık 600 ek kütüphane bulunmaktadır. Ayrıca birçok bilimsel dergide yayınlanan makalelerde R yazılımı kaynak kodu ile beraber gelmektedir. Yükleme işlemi sırasında hem R yazılımının kullanımı, hem de bu yazılımın içerisinde yer alan fonksiyonların detayları hakkında yardım dosyaları da gelmektedir. Özellikle kullanım kılavuzları kişilerin baskısını alıp çalışabilecekleri PDF dosyaları olarak gelmektedir. Kullanıcıların dile kolaylıkla alışabilmeleri için yardım dosyaları birçok örnek ile sunulmakta, daha ileri problemlerin çözümünde yine isteyen herkesin katılabileceği 4 ayrı tartışma listesi bulunmaktadır.
R yazılımı çevre birimi kullanıcılara etkin bir veri işleme ve depolama olanağı, dizi ve matris hesaplamaları için komutlar grubu, veri analizi için ileri düzeyde teknikler topluluğu, verinin ekranda ya da basılı bir eserde görüntülenebilmesine olanak veren geniş grafiksel özellikler, kolay programlamaya uygun fakat karmaşık programlama dillerinin özelliklerine sahip bir programlama dilinin olanaklarını sunmaktadır.
R Yazılımının Elde Edilmesi
R istatistiksel bilgisayar yazılımı İnternet aracılığı ile dağıtılmaktadır ve isteyen kullanıcılar programın ana sitesini kullanarak ücreti karşılığında CD üzerinden de programı elde edebilmektedirler. Programın lisansı, kullanıcılara ellerinde bulundurdukları programı serbestçe dağıtma ve kullanma hakkını vermektedir. Microsoft Windows, Linux ve Unix sistemleri ve Apple MacOS işletim sistemleri için çeşitli sürümler elde edilebilmektedir.
Kullanıcı programı ilk çalıştırdığında, karşısına çıkacak olan pencere sistemindeki menüleri kullanarak programın yeteneklerini dünyadaki diğer kullanıcıların geliştirdikleri alt programları da yükleyerek genişletebilirler.
Microsoft Windows işletim sistemi için yükleme işlemi şu şekildedir;
R Project İnternet sitesine http://www.r-project.org adresinden erişilebilir. Ana sitede R yazılımının tarihçesi ile ilgili bilgiye ulaşmak mümkündür. Sitede sol kısımda yer alan menüde “ Download” bölümünde bulunan “ CRAN ” (Comprehensive R Archive Network) linkine ulaşılabilir. Windows işletim sistemi için derlenmiş program “Download R for Windows” linkinde yer almaktadır. ( S:25, Resim 2.3 )
Gelen ekranda öncelikle ana programı elde etmek için “base ” linki seçilir. Bu linkin seçilmesiyle hazır durumda sorunsuz olarak çalışan en son sürüm programı elde edilebilir. Sayfada yer alan “Download R 3.0.3 for Windows (54 megabites, 32/64 bit)” linki, istenilen programı içeren dosyadır. Bu dosyayı bilgisayarınızdaki sabit sürücüye indirmek gerekmektedir. Dosyanın büyüklüğü ortalama 54 MB’dir ve indirilen dosya çalıştırılarak bilgisayar kurulum işlemi tamamlanmış olur. Microsoft Windows başlangıç menüsüne R menüsü, yükleme sırasında eklenmektedir. Programın ilk kez çalıştırılmasıyla (S:34,Resim 2.2’de yer alan ) R for Windows 3.0.3 yazılımı arayüzü elde edilir.
R Yazılımının Temelleri
R yazılımı bir veri işleme ve grafik çizme programıdır. Microsoft Windows versiyonu bir pencere içinde kullanıcının gerekli komutları interaktif olarak ele almasına olanak tanımaktadır. Her ne kadar R yazılımı için Minitab ve SPSS benzeri menü sistemi geliştirilmeye çalışılsa da temel olarak yapılması gereken, komutların yazılarak çıktıların görüntülenmesi işlemidir.
Komutların girilmesi için kullanılan bölgeye “R Console ” denir. Komut satırlarında yer alan > işareti komut satırının kendisini temsil etmektedir.
Temel Komutlar
Herhangi bir atama yapılması ya da matematiksel bir ifadenin hesaplanması için en basit komutlar olarak meydana çıkan komutlar grubuna temel komutlar denir.
Örneğin; R Console’da
> 72+45 komutu yazılarak Enter’a basıldığında [1] 117 sonucu ekranda görüntülenecektir.
Matematiksel işlemin hemen sonucunu elde etmek yerine sonuçlar herhangi bir değişkene de atanabilir. Bu atama işlemi için “değişken <- işlem” yapısı kurulmalıdır. Örneğin önceki toplam x gibi bir değişkene atanmak istenirse > x <- 72+45 komutunun verilmesi yeterli olacaktır. Yeni bir atama yapılmadığı sürece x değişkeni bu toplamın sonucundan oluşacaktır.
R ile çalışırken herhangi bir fonksiyon ya da kitaplık hakkında yardım almanın iki yolu vardır;
- Aritmetik ortalama hesabında kullanılan mean() komutu biliniyorsa, yardım alma komutu help(mean) dir. (S:37, Resim 2.4)
- Yardım almanın diğer bir yolu ise R arayüzü help menüsünün kullanılmasıdır.
Vektörler
R yazılımında değişkenler ile çalışırken vektör ve matris kullanımı olanaklıdır. Bir vektörü en basit şekilde oluşturabilmek için c() fonksiyonu kullanılmaktadır.
x değişkenini 5 birimlik bir vektör hâline dönüştürme işlemi ve sonucu şöyledir;
> x <- c(1,2,3,4,5)
> x
[1] 1 2 3 4 5
R yazılımı büyük ve küçük harfe olan duyarlıdır. X ve x değişkenleri tamamen farklı değişkenlerdir.
Önceden tanımlanmış bir vektörün birim sayısını öğrenmek için length () fonksiyonu kullanılır.
> length(x)
[1] 5
c() fonksiyonu karakter değişkenleri yaratmak için de kullanılır.
S:38 Örnek1, Örnek.2 incelenebilir .
Belirli bir düzene sahip olan vektörlerin yaratılmasında da seq () fonksiyonu kullanılır. Bu fonksiyonun genel yazılımı seq(altlimit, üstlimit, artışmiktarı) şeklindedir. Örneğin, Dörtten on altıya kadar 4’er artan rakamlardan oluşan vektörü oluşturma komutu;
> seq(4, 16, 4)
[1] 4 8 12 16
S:38 Örnek3, Örnek.4, Örnek.5 incelenebilir .
Belirli bir düzene sahip verilerin oluşturulması için rep() fonksiyonu kullanılır. İstatistikteki varyans analizi işlemi gerçekleştirebilmek için ilgilenilen değişkenin her seviyesi için birim sayısı kadar isim girilmesi gerekmektedir. Bu komut, rep (istenenduzen,tekrar-sayısı ) şeklinde yapılandırılır. Örneğin, 8 adet 3 rakamını içeren vektörü oluşturmak için yazılması gereken komut;
> rep(3,8)
[1] 3 3 3 3 3 3 3 3
S:39 Örnek7, Örnek.8, Örnek.9, Örnek.10 incelenebilir .
Bir vektörün herhangi bir elemanına ulaşmak için köşeli parantezler içinde istenilen vektör elemanının sıra numarası verilir. Örneğin, bir değişkene altı tane birim atayarak bu birimlerden dördüncüsünün değerini görüntüleyen, daha sonra da birinci ve altıncı birimlerin değerlerini gösteren komut;
> isim <-c(“Ali”,“Can”,“Nedim”,“Ümit”,”Fuat”,“Volkan”)
> isim[4]
[1] “Ümit”
> isim[c(1,6)]
[1] “Ali” “Volkan
Bir değişkenin karekökü sqrt() fonksiyonu yardımıyla hesaplanabilir. S:40, Örnek. 12 incelenebilir.
Matrisler
R yazılımında matris oluşturmak için matrix() fonksiyonu kullanılır. Bu fonksiyonun genel yazılımı;
matrix(veri, nrow(satırsayısı), ncol(sütünsayısı), byrow=F(veri sütun olarak girilsin))
şeklindedir. 2 değişken ve 6 gözlem değerinden oluşan veri seti için iki sütun ve altı satırlık bir matris oluşturalım. Veri, matrix() komutu içinde aşağıdaki gibi oluşturulabilir
> matrix(c(6,5,4,3,2,1,1,2,3,4,5,6),ncol=2) [,1] [,2]
[1,] 6 1
[2,] 5 2
[3,] 4 3
[4,] 3 4
[5,] 2 5
[6,] 1 6
Veri, bir değişken kullanılarak aşağıdaki gibi oluşturulabilir.
> veri <-c(6,5,4,3,2,1,1,2,3,4,5,6)
> matrix(veri,ncol=2)
[,1] [,2]
[1,] 6 1
[2,] 5 2
[3,] 4 3
[4,] 3 4
[5,] 2 5
[6,] 1 6
Eğer öncelikle satırlar veri kısmında tanımlanıyor ise byrow=T parametresinin kullanılması gerekmektedir. Daha önce tanımlanan köşeli parantezler kullanılarak, matrisin herhangi bir elemanına ait olan satır ve sütun sayısı girilerek ulaşılabilir. Matrisin herhangi bir satırına [satırno,] ve herhangi bir sütununa da [,sütunno] köşeli parantezleri yardımıyla ulaşılabilir. Ayrıca aritmetik işlemler de matrisler üzerinde kolaylıkla uygulanabilir.
Kitabınızın 41 ve 42 sayfaları incelenebilir.
Mantık Operatörleri
R yazılımı ile mantık tipi değişkenlerin oluşturulması mümkündür. Doğru (T) ve Yanlış (F) olmak üzere iki mantıksal değer vardır. Çeşitli operatörler ve anlamları için S:43 Tablo 2.1 incelenebilir.
Bir mantık operatörü yardımıyla bir değişkene Doğru (T) ya da Yanlış (F) değeri atamasını sağlanabilir.
> değişken <-23 == 4
> değişken
[1] FALSE
Verilen örnekte değişkenin değeri olan 23’ün 4’e eşit olup olmaması durumu mantık değeri olarak tekrar değişkene atanmıştır. Artık değişkenimizin değeri FALSE, yani yanlıştır.
Mantık fonksiyonları yardımı ile ilgilenilen değişkenin bir karakter değişkeni mi yoksa sayısal bir değişken mi olduğu anlaşılabilir . Örnekler S:43 ve 44’de incelenebilir.
List Nesneleri
Çeşitli istatistiksel analizler için oluşturulan farklı nesnelerin bir araya getirilmesinde List Nesnelerinden faydalanılır. Örneğin; ilgilenilen veri kümesi ile bunlara ait korelasyon matrisi aynı nesne içerisinde görüntülenebilir (ya da hafızada birlikte saklanmaları sağlanabilir). Bir veri seti oluşturularak korelasyon matrisi ile birlikte tek bir veri seti hâline getirilmesi örneği S:45 ve 46’da incelenebilir .
Data Frame
Bir çok araştırmada ilgilenilen değişkenin çeşitli seviyeleri ve bu seviyeler için gözlem değerleri bulunmaktadır. R yazılımında veri seti içerisindeki faktör listeleri ve gözlem birimleri data frame olarak bir araya getirilirler. “data.frame” fonksiyonunda her sütunda eşit sayıda birim yer almaktadır. Her satır bir gözlem birimini temsil etmektedir. 8 adet öğrencinin 4 farklı dersten aldıkları başarı puanları bir değişkende bir araya getirilmesi örneği S:47’de incelenebilir.
List nesnelerinde olduğu gibi istenen sütun $ işareti yardımıyla görüntülenebilir. Eğer herhangi bir gözlem biriminin değeri elde edilememiş, yani kayıp değer ise bu işlem gözlem birimine NA değerinin atanması ile gerçekleştirilir. Konu örnekleri için S:47 incelenebilir .
R yazılımı fonksiyonlarının kayıp değerler için farklı yaklaşımları olabilmektedir. Bazı fonksiyonlar kayıp değerin yer aldığı değişkeni ya da gözlem birimini tamamen gözardı ederek işlem yaparken, kimi fonksiyonlarda işlemin yürütülmesi sırasında hata mesajı verebilirler.
Kişisel Fonksiyon Yazma
Hazır yazılmış fonksiyonlar bazen analizler için yeterli olmayabilir. Bu tür durumlar için kullanıcılar kendi fonksiyonlarını yazabilirler. R yazılımında bu işlem function (parametreler) komutu yardımıyla gerçekleştirilir. Konu ile ilgili örnek S:48, 49’da incelenebilir.
function() komutu, return() komutu ile sonlandırılır. Eğer bu fonksiyonun belli bir değeri vermesi isteniyor ise return içerisine bu değerin ait olduğu değişken yazılır.
Hazır Veri Aktarımı
Çoğunlukla veri setleri başka programlardan hazır olarak elde edilirler Verinin R yazılımına okutulabilmesi için bir kaç farklı teknik bulunmaktadır. Bu işlem için kullanılabilecek fonksiyonlar sırasıyla; scan() düşük seviyeli veri okutma işlemi, read.table() dosyalardan formatlanmış data frame elde edilmesi işlemi, read.fwf() belirgin bir genişlik tanımlanmış veri dosyalarından okuma işlemi, read.csv() değişkenlerin virgülle ayrıldığı dosyalardan okuma işlemi olur.
Özellikle Microsoft Excel dosyalarından okuma işlemleri gerçekleştirilirken, her bir çalışma sayfası “csv” dosyası olarak kaydedilerek daha sonra bunların her biri read.csv() fonksiyonu ile elde edilebilir. Genellikle veri aktarımı scan() fonksiyonu ile yapılmaktadır. Bu fonksiyon özellikle vektörlerin tek tek okunmasında büyük kolaylık sağlamaktadır. Konu ile ilgili örnek S:50’de incelenebilir .
Ek Kütüphane Yönetimi
Başka kullanıcılar ya da R projesi ekibi tarafından oluşturulan ek kütüphaneler “Packages” menüsündan “Install Package(s)” seçeneği yardımıyla yürütülebilir. Bu seçenek bir diyalog ekranı getirir ve bu ekranda o an için bulunan kütüphanelerin listesi sunulur (S:50, Resim 2.5). Kütüphaneler içinde yer alan fonksiyonlar için bilgiler “help” menüsü “Html Help” seçeneği yardımıyla elde edilebilir.
Zaman zaman bu kütüphanelerde meydana gelen değişimlerin güncellenmesi faydalı olacaktır. Bu işlemde yine “Packages” menüsü “update packages” seçeneği yardımıyla gerçekleştirilebilir.