R ile Programlamaya Giriş ve Uygulamalar Yrd. Doç. Dr. Mustafa Gökçe Baydoğan Berk Orbay, MS Endüstri Mühendisliği Bölümü Boğaziçi Üniversitesi Uzay Çetin, MS Bilgisayar Mühendisliği Bölümü Boğaziçi Üniversitesi XIX. Türkiye'de İnternet Konferansı 27 Kasım 2014 Yaşar Üniversitesi, İzmir İçerik Giriş R’ye genel bakış R dili R nedir, ne değildir? Neden R? Arayüz Çalışma alanı Yardım R ile çalışmak Paketler Veri okuma/yazma İşleme Grafik oluşturma Uygulamalar Sonuç Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 2 Giriş Lisans ve Yüksek Lisans dereceleri ODTÜ Endüstri Mühendisliği Bölümü 2006 ve 2008 yılları Yüksek lisans çalışmaları sırasında metasezgisel algoritmalar (çoğunlukla genetik algorithmalar) ve çok amaçlı eniyileme üzerine çalıştı. Doktora derecesi ASU Endüstri Müh., Tempe, Arizona, ABD (2012) Veri madenciliği üzerine birçok projede çalıştı. Doktora tezi zaman serilerinde veri madenciliği üzerine oldu. Çalışmalarının çoğunda R dilini kullandı. Şu anda Boğaziçi Üni. Endüstri Müh. öğretim görevliliği, İTÜ Teknokent’te faaliyetlerini sürdüren Invent Analytics şirketine danışmanlık yapmaktadır. Sorularınız ve detaylı bilgi için E-posta @ [email protected] Sayfa @ www.mustafabaydogan.com Başlamadan önce sunum sırasında #inettr hashtagli tivitleri R kullanarak toplamaya başlıyoruz. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 3 R’a genel bakış R dili ve tarihi Temeli 1976 yılından bu yana Bell Laboratuvarları’nda istatistiksel programlama dili olarak geliştirilen S diline dayanır. UNIX ile aynı zamanda geliştirilmeye başlandı. Araştırma ve veri analizi için geliştirilmiştir. Sonraları lisanslı olarak S-Plus olarak piyasa sürülmüştür. S diline benzer ama açık kaynaklı bir platform olarak R dili 1990’lı yıllara Yeni Zelanda’daki Auckland Üniversitesi İstatistik Bölümü’nden Ross Ihaka ve Robert Gentleman tarafından yazılmıştır. Daha sonra dünyanın çeşitli yerlerindeki araştırmacılar R’yi geliştirmek için bir araya gelmiş ve 1997’de bu gruba “R core team” adı verilmiştir. R dilinin ilk sürümü “R core team” tarafından 29 Şubat 2000 tarihinde yayınlanmıştır. Her iki-üç ayda bir sürümler güncellenmektedir. En son sürümü “R version 3.1.2 (Pumpkin Helmet)” 31 Kasım 2014’de yayınlanmıştır. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 4 R’ye genel bakış R nedir, ne değildir? R GNU S’dir. Veri işleme, hesaplama ve grafik gösterimi için bir dil ve çevre sağlar. Geniş bir yelpazede istatistiki ve grafiksel teknikleri içerir. doğrusal ve doğrusal olmayan modelleme, klasik istatistik testleri, zaman-serileri analizi, sınıflandırma, kümeleme, ... Açık kaynak kodlu olması itibariyle geliştirilmeye çok yatkındır. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 5 R’ye genel bakış R nedir, ne değildir? R dilinin söz dizimi kuralları (syntax) C diline benzerlik gösterir. Fonksiyonel bir programlama dili olan R istatistikçiler ve matematikçiler için kod yazmayı kolaylaştıran fonksiyonlara sahiptir. R, yaygın olarak kullanılan SPSS, SAS gibi istatistik paket programlarının aksine istatistiksel yazılım geliştirme ortamıdır. Etkin veri işleme ve saklama özelliğine sahiptir. Dizi ve özellikle matris hesaplamalarında kullanılabilecek özel operatörler mevcuttur. Veri analizi için kullanılabilecek uyumlu ve bir arada kullanılabilen araçlar içerir. Veri çözümlemede kullanılabilecek grafiksel araçlara sahiptir. Kaynak: A. F. Özdemir, E. Yıldıztepe ve M. Binar, Akademik Bilişim 2010 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 6 R’ye genel bakış R nedir, ne değildir? Özetle R Bir programa dilidir. İstatiksel bir pakettir. Bir yorumlayıcıdır (interpreter). Özgür bir yazılımdır. Fakat R Bir veri tabanı değildir ama veri tabanlarına bağlanabilir. Kullanıcı dostu olmasa da java gibi diller aracılığıyla ara yüz desteğine sahip bir yazılım geliştirme ortamıdır. Tablolardan oluşan yazılım paketi (Excel, Minitab gibi) değildir ama bunlara bağlanabilir. Profesyonel veya ticari desteğe tabi bir yazılım değildir. Kapalı kutu yazılımlardan oluşan bir yazılım değildir. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 7 R’ye genel bakış Neden R? = STATA, SPSS ve SAS gibi programlarının kullanıcıları ‘Muggle’ gibidir.* Yapabilecekleri kendileri için geliştirilmiş algoritmaların sağladığı esneklik ile sınırlıdır ve bu algoritmalara güvenmek zorundadırlar. Üzerine bir de para ödenmesi gerekmektedir. *A very brief introduction to R -Matthew Keller (http://www.matthewckeller.com/) Muggle: Büyüden yoksun bir aileden doğan Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 8 R’ye genel bakış Neden R? = R kullanıcıları aksine sihirbaz gibidirler.* İstatistik alanında çalışma yapan araştırmacılar tarafından geliştirilen fonksiyonlara güvenebilirsiniz ve bunları kendiniz oluşturabilirsiniz Güven? Açık kaynak kodlu olması itibariyle fonksiyonların ne yaptığı kullanıcılar tarafından incelenip, doğrulanabilir. Yeterli seviyeye ulaşıldığınızda yapabilecekleriniz uçsuz bucaksızdır. *A very brief introduction to R -Matthew Keller (http://www.matthewckeller.com/) Muggle: Büyüden yoksun bir aileden doğan Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 9 Paket Sayısı R’ye genel bakış Neden R? Kaynak Yeni R Sürümü Çıkış Tarihi http://r4stats.com/ http://blog.revolutionanalytics.com/r-is-hot/ Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 10 Konu Sayısı Tartışma Listesindeki Trafik R’ye genel bakış Neden R? Yıl Kaynak Yazılım http://r4stats.com/ http://blog.revolutionanalytics.com/r-is-hot/ Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 11 R’ye genel bakış Neden R? Artıları Hızlı ve ücretsiz Hesaplama yoğun işlemlerde başarı Güncel İstatistik alanında çalışan araştırmacılar algoritmalarını R ortamında paylaşmaktalar. Yaygın kullanım ve kullanıcı desteği Analizin nasıl yapılması gerektiği hakkında düşündürür. Diğer diller ve programlar ile bağlantı desteği İşletim sisteminden bağımsız olarak çalışır. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 Eksileri Öğrenme süreci uzundur. Profesyonel destek eksikliği problemlerin kullanıcı tarafından çözülmesini gerektirir. Kullanıcı dostu değildir. Basit seviyede bir kullanıcı arayüzüne sahiptir. Hata yapmak kolaydır ve tespit edebilmesi zor olabilir. Veriyi işlenecek hale getirmek zaman alıcı ve hataya açık bir süreçtir. Tüm işlemler hafızada gerçekleştirilir. Çok büyük veriler fazla RAM gerektirir. 12 R’ye genel bakış R’ye giriş Yükleme R-Project web sayfası http://www.r-project.org/ Windows, Linux, Mac OS X, source Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 13 R’ye genel bakış R Ara yüzü R terminali Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 14 R’ye genel bakış R Ara yüzü R editörü Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 15 R’ye genel bakış R Ara yüzü R dilinde komut satırına girilen söz dizim kuralları (syntax) aynı zamanda metin dosyalarına da yazılabilir. Bu durumda metin dosyası uzantısı “*.R” olarak kaydedilir. Bu şekilde kaydedilmiş bir dosya artık R script dosyasıdır. Kaynak: A. F. Özdemir, E. Yıldıztepe ve M. Binar, Akademik Bilişim 2010 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 16 R’ye genel bakış Alternatif editörler ve ara yüzler En yaygın kullanılan editör + ara yüz RStudio’dur. http://www.rstudio.com/ R ortamı R editörü R geçmişi R terminali Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 R dosyalar grafikler paketler yardım 17 R’ye genel bakış Alternatif ücretsiz editörler ve ara yüzler Geany http://www.geany.org/ Notepad++ http://notepad-plus-plus.org/ RWinEdt http://cran.r-project.org/web/packages/RWinEdt/index.html Tinn-R http://sourceforge.net/projects/tinn-r/ JGR (R için Java ara yüzü) http://www.rforge.net/JGR/ Emacs + ESS http://www.gnu.org/software/emacs/ http://ess.r-project.org/ Rattle http://rattle.togaware.com/ Playwith (grafikler için) https://code.google.com/p/playwith/ Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 18 R’ye genel bakış R dili Örnekler (Hesap makinesi olarak R) > log2(32) [1] 0 1 2 3 4 5 >plot(sin(seq(0,2*pi,length=100))) 0.0 -0.5 > seq(0, 5, length=6) -1.0 [1] 1.414214 sin(seq(0, 2 * pi, length = 100)) > sqrt(2) 0.5 1.0 [1] 5 0 20 40 60 80 100 Index Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 19 R’ye genel bakış R dili R, belleğe direkt erişim yerine özel veri yapılarını kullanır. R’deki temel nesne türleri: numeric integer, double, complex character logical function Bu nesneler kullanılarak aşağıdaki objeler oluşturulabilir Vektörler: aynı tipte nesneleri barındıran dizilerdir. Listeler: Listeler de vektördür ancak listedeki elemanlar farklı tiplerde olabilir. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 20 R’ye genel bakış R dili Değişkenleri çalışma sırasında tanımlanır. Önceden tanımlamaya gerek duyulmaz. > a = 49 > sqrt(a) [1] 7 > a = "Kedi ödevimi yedi" > sub("Köpek","Kedi",a) [1] "Köpek ödevimi yedi" > a = (1+1==3) > a [1] FALSE Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 numeric function character string logical 21 R’ye genel bakış R dili Vektörler, matrisler ve diziler > a = c(1,2,3) > a [1] 1 2 3 > a[1] [1] 1 > a[-1] [1] 2 3 > a[2] [1] 2 > a[4] [1] NA > a[5]="c" > a [1] "1" "2" "3" NA "c" > a[10]="deneme" > a [1] "1" "2" "3" NA "c" NA NA [9] NA "deneme“ > length(a) [1] 10 NA (not available) NA Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 22 R’ye genel bakış R dili Vektörler, matrisler ve diziler Operatörler <= > x <- c(0,1,2,3,4) > x [1] 0 1 2 3 4 > y = 1:5 > y [1] 1 2 3 4 5 > median(x = 1:10) > x Error: object 'x' not found > median(x <- 1:10) > x [1] 1 2 3 4 5 6 7 8 9 10 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 > a = c(1,2,3) > a [1] 1 2 3 > a[1] [1] 1 > a[-1] [1] 2 3 > a[0] numeric(0) > a[2] [1] 2 > a[4] [1] NA > str(a) num [1:3] 1 2 3 23 R’ye genel bakış R dili Vektörler ile matematiksel işlemler > x <- c(0,1,2,3,4) > y <- 1:5 > z <- 1:50 > x + y [1] 1 3 5 7 9 > x * y [1] 0 2 6 12 20 > x * z [1] 0 2 6 12 20 0 7 16 [12] 12 26 42 60 0 17 36 57 [23] 46 72 100 0 27 56 87 120 [34] 102 140 0 37 76 117 160 0 [45] 180 0 47 96 147 200 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 27 80 0 42 40 0 0 22 32 66 86 132 24 R’ye genel bakış R dili Vektör: aynı tipe sahip veriler topluluğu a = c(1,2,3) Matris: aynı tipe sahip iki boyutlu veri a = matrix(0,5,10) Örnek: 5 öğrencinin 10 günlük yoklama bilgisi Dizi: ikiden daha fazla boyutlu matris a = array(1:60, dim=c(3,4,5)) Örnek: Renkli resim R, G, B (Kırmızı, Yeşil ve Mavi) kanallarındaki piksel yoğunlukları Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 25 R’ye genel bakış R dili Liste: farklı tipte sıralı veriler topluluğu Genel olarak vektörler indeks (sayı) ile listeler ise elemanlarının isimleriyle erişilir. Listeler indeksi de destekler. > denemeList=list(isim="mustafa",yas=31,evliMi=F) > str(denemeList) List of 3 $ isim : chr "mustafa" $ yas : num 31 $ evliMi: logi FALSE > denemeList[1] $isim [1] "mustafa" > denemeList[[1]] [1] "mustafa" > denemeList$yas [1] 31 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 26 R’ye genel bakış R dili Data frame: Özelleşmiş bir liste türüdür. R’nin veri okuma fonksiyonlarının çoğu varsayılan tip olarak data frame tipinde bir nesne oluşturur. read.table, read.csv > path='C:/Mustafa/Research/Presentations/inet/ornek.csv' > ornekdata=read.csv(path) > ornekdata Col1 Col2 Col3 1 100 a1 b1 2 200 a2 b2 3 300 a3 b3 > str(ornekdata) 'data.frame': 3 obs. of 3 variables: $ Col1: int 100 200 300 $ Col2: Factor w/ 3 levels "a1","a2","a3": 1 2 3 $ Col3: Factor w/ 3 levels "b1 ","b2 ","b3": 1 2 3 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 27 R’ye genel bakış R dili Alt kümeleme > ornekdata[1,] Col1 Col2 Col3 1 100 a1 b1 > ornekdata[,2] [1] a1 a2 a3 Levels: a1 a2 a3 > ornekdata[,2:3] Col2 Col3 1 a1 b1 2 a2 b2 3 a3 b3 > ornekdata$Col1 [1] 100 200 300 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 Faktörler: Karakterden farklı olarak belirli sayıda seviyeye sahip olan veri tipi Örnek: günler 28 R’ye genel bakış R dili Fonksiyonlar Diğer dillerdeki gibi tanımlanır. Argüman listesi vardır. Herhangi bir veri tipinde değer dönebilir. > ornekFonk <- function(x){ 2*sqrt(x) } > ornekFonk(4) [1] 4 > x <- c(0,1,9,25) > ornekFonk(x) [1] 0 2 6 10 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 29 R’ye genel bakış R dili Yardım almak (Tarayıcıda açılır) help() > help(read.table) starting httpd help server ... done help.search() > help.search('median') Arama motorları Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 30 R’ye genel bakış R dili help(“read. table) ?read.table http://127 .0.0.1:256 45/library/ utils/html/ read.table .html Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 31 R’ye genel bakış R dili help.search(“median”) http://127.0.0.1:25645/doc/html/Search?pattern=median Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 32 R’ye genel bakış R Oturumu (Session) ve Yönetimi Çalışma klasörü (working directory) Kaydedilen (diske) her türlü bilgi bu klasöre yazılır (eğer uygun bir yol belirtilmemişse). getwd() > getwd() [1] "C:/Users/baydogan/Documents" setwd(path) komutu ile yeni klasör belirlenebilir. Çalışma alanında tanımlı nesneler ls() > ls() [1] "a" "denemeList" "m" "ornekdata" "path" Takibi hafıza kullanımı açısından önemlidir. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 33 R’ye genel bakış R Oturumu (Session) ve Yönetimi Objeleri silme Hafıza yönetimi oldukça önemlidir. rm() > ls() [1] "a" "denemeList" "m" "ornekdata" "ornekFonk" "path" "x" > rm("denemeList","m") > ls() [1] "a" "ornekdata" "ornekFonk" "path" "x" > gc() used (Mb) gc trigger (Mb) max used (Mb) Ncells 266520 14.3 531268 28.4 350000 18.7 Vcells 502038 3.9 1031040 7.9 1007484 7.7 gc() Çöp toplayıcısı Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 34 R ile çalışmak Koşullar Söz dizim kuralları dışında döngü mantığı diğer diller ile aynıdır. > x = 1:9 if (length(x) <= 10) { x <- c(x,10:20); print(x) } else { print(x[1]) } Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 35 R ile çalışmak Döngüler Söz dizim kuralları dışında döngü mantığı diğer diller ile aynıdır. > for(i in 1:10) { x[i] <- rnorm(1) } j = 1 while( j < 10) { print(j) j <- j + 2 } C gibi temel dillere kıyasla döngüler yavaş çalışır. Vektörler üzerindeki işlemleri vektörel olarak kodlamak önemlidir. Örneğin bir vektörün (a olsun) her elamanını 5 ile çarpak için bir döngü yazmak yerine sonuc=5*a kullanılabilir. lapply, sapply ve apply fonksiyonları önemlidir. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 36 R ile çalışmak Paket yapısı R fonksiyonları ayrı paketler halinde düzenlenmişlerdir.* Böylece gerekli paketlerle çalışarak daha az bellek kullanımı ve hızlı işlem gücü sağlanır. Bu paketlerin bir başka avantajı da yazılan fonksiyonlardan oluşan paketlerin R web sitesinden temin edilerek yüklenebilmesidir. Her paketin bir yaratıcısı ve kendisine ait bir yardım dosyası bulunur. http://cran.rproject.org/web/packages/LPStimeSerie s/index.html *Kaynak: A. F. Özdemir, E. Yıldıztepe ve M. Binar, Akademik Bilişim 2010 Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 37 R ile çalışmak Paket yapısı Paketler ara yüz aracılığıyla yüklenebilir. Terminalden install.packages(paketismi) komutu kullanarak da yüklenebilir. Paketin indirileceği bir sunucu seçilmesi gereklidir. Paketlere ait fonksiyonlar kullanılacağı zaman paket çağrılmalıdır. > require(LPStimeSeries) Loading required package: LPStimeSeries LPStimeSeries 1.0 > library(LPStimeSeries) Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 38 R ile çalışmak Veri alışverişi Kullanılacak olan veri dosyalarının R ortamına alınabilmesi için farklı seçenekler vardır: metin dosyalarından (txt,csv), gerekli paketleri yükleyerek binary ve dbase (dbf) dosyalarından, hesap tablosu dosyalarından (xls, sav), farklı veri tabanlarından (MySQL, MS Access, Microsoft SQL Server, Postgre SQL, Oracle, IBM DB2) diğer programların çıktılarından (SPSS, SAS, WEKA) web tabanlı json, xml dosyalarından Daha fazla bilgi için: http://www.r-tutor.com/r-introduction/data-frame/data-import Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 39 R ile çalışmak Paralelleştirme ve Büyük Veri Unix ortamında birden çok çekirdekli işlemcilere sahip bilgisayarda işler farklı işlemcilere dağıtılabilir. doMC paketi bunu sağlayan örnek paketlerdendir. Bilgisayar hafızasına sığmayacak büyük veriler ile çalışıldığında çeşitli indeksleme seçenekleri sağlayan paketler kullanılabilir. bigmemory paketi bunu sağlayan örnek paketlerden biridir. Zaman alan ve hafıza tutan işlemlerin bir kısmını daha temel dillerde (C gibi) yapılıp R’a entegre edilebilir. R C, Fortran vb. gibi dillere bir ara yüz sağlamaktadır. Detaylı bilgi: http://cran.r-project.org/web/views/HighPerformanceComputing.html Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 40 Sonuç Bu çalışmada, son yıllarda yaygın olarak kullanılan R programlama dilinin tanıtılması hedeflenmiştir. R, ücretsiz olarak temin edilmesi ve birçok araştırmacının bu dilin gelişimine destek vermesi sonucunda, özellikle veri madenciliği alanlarında çalışan uygulamacıların dikkatini çekmiştir. SAS, SPSS ve STATA gibi programlar ile R arasındaki en önemli fark R’nin istatistiksel yazılım geliştirme ortamı ve programlama dili olmasıdır. Kişisel olarak hem danışmanlık faaliyetlerinde hem de akademik çalışmalarda oldukça başarılı sonuçlar elde edilmiştir. Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 41 Teşekkürler Sorular Baydoğan, Çetin ve Orbay, R, inet-tr’14, İzmir - 27/11/2014 42 ile Programlamaya Giriş ve Uygulamalar Mustafa Baydoğan Uzay Çetin Berk Orbay Neden R? (Bence) Hızlı, Kolay ve Gelişmiş • • • • • • Hızlı prototip oluşturma ve deneme yapma imkanı" " Kullanım kolaylığı" " Paket sistemi ve CRAN" " Geliştirici sofistikasyonu" " Güçlü güncellemeler" " Müthiş destek (stackoverflow, mail listeleri)" " • Açık kaynak http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Neden R değil? (Bence) Muhtelif sudan sebepler • Büyük ve bağlantılı projelere uygun değil" " • • Veri saklamak için sadece memory kullanıyor" " Tek çekirdek kullanıyor (bazı paketlerle üstesinden gelmek mümkün)" " • • • • İşlem hızı (bir Java veya C++ değil ama işi oraya atabiliyorsunuz)" " Açık kaynak (bazı şirketlerin sebebi)" " Satır satır kod yazmak (beyaz yaka problemi)" " Döngü (loop; for, while) sevenler uzak dursun Neler Yapacağım? Basit Finansal Uygulama • • • • Çeşitli kaynaklardan veri çekmek (Google Finance, Quandl ve dosyadan)" " BIST100, Altın ve Dolar/TL" " Grafik çizdirmek, bazı basit görsel finansal analizler" " Basit aylık performans raporu" • Twitter’da paylaşma" • Döküman haline getirme Neler Yapacağım? Çok Paket, Az Kod • • • • • • Quantmod - Veri çekmek ve grafik oluşturmak" " Devtools ve GitHub - CRAN dışında da paket kullanmak" " Quandl - Büyük veritabanına API yardımıyla bağlanmak" " ggplot2 - Güzel grafikler oluşturmak" " TwitteR - Tweet atmak" " Rmarkdown - Rapor oluşturmak" " • • • OIdata - Veri örnekleri ve haritalandırmak" RColorBrewer - Renk skalası oluşturmak" classInt - Aralık oluşturmak Bonus - Dikkat Edilmesi Gereken İnsanlar Andrew Ng - Baidu Baş Bilim İnsanı Eski google çalışanı (Google Brain) , Stanford profesörü, yapay zeka, makine öğrenme, deep learning Hadley Wickham - Rice University Yeni Zelandalı, Hadleyverse, veri analizi için pratik paketler, veri görselleştirme http://adv-r.had.co.nz/ Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar R ile Sosyal A˘g Analizine Giri¸s Uzay C ¸ etin ¨ Bo˘ gazi¸ci Universitesi Bilgisayar M¨ uhendisli˘ gi B¨ ol¨ um¨ u Kasım 2014 Uzay C ¸ etin R ile Sosyal A˘ g Analizi 1 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ˙I¸cerik Karma¸sık A˘glar ¨ A˘ g Ornekleri Karma¸sık A˘g Modelleri R ile Sosyal A˘g Analizi Igraph Paketi Uygulamalar Co-occurence A˘ gı Paul Butler @Facebook - Bilgiyi g¨ orselle¸stirmek foto˘ graf¸cılıktan farksız. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 2 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri A˘g Bilimi Ne i¸se yarar? A˘glar, modelledikleri sistem hakkında bir¸cok bilgiyi i¸cinde barındırır. Kı¸skırtıcı Ger¸cek liderlerin, potansiyel g¨ uc¸ odaklarının, sistemin en zayıf noktasının ya da se¸cimlerde en ¸cok kime oy atılaca˘gının ipu¸clarını bize g¨osterebilir. S¸a¸sırtıcı Birbirinden ¸cok farklı dinamikler neticesinde olu¸san a˘g modellerinde, ¸sa¸sırtıcı benzerlikler bulunmu¸stur. Bunun arkasında yatan sebep ne olabilir? Uzay C ¸ etin R ile Sosyal A˘ g Analizi 3 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Kimler a˘g bilimi ile ilgilenir? Manipulasyonun pe¸sinde olanlar I I ˙Insanları y¨onlendirmek isteyen politikacılar ˙Insanlara bir ¸seyler satmak isteyen pazarlamacılar Ger¸ce˘gin pe¸sinde olanlar I I Do˘gayı anlamak isteyen fizik¸ciler ˙Insan ili¸skilerini anlamak isteyen sosyal bilimciler Uzay C ¸ etin R ile Sosyal A˘ g Analizi 4 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri A˘g Nedir? A˘g, en basit ifadeyle birbirine ba˘glı objelerden olu¸smaktadır. A˘gdaki d¨ u˘gu ¨mler objeleri, o d¨ u˘gu ¨mler arasındaki kenarlar ise objeler arasındaki ili¸skiyi temsil eder. ¨ Sosyal A˘g Ornekleri D¨ u˘gu ¨mleri insan olan a˘glardır. I Arkada¸slık a˘gları, romantik ili¸ski a˘gları I Film akt¨orleri a˘gı, aynı filmde oynama Uzay C ¸ etin R ile Sosyal A˘ g Analizi 5 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri N d¨ug˘u¨m¨u olan birbirinden farklı ka¸c a˘g vardır? 3 D¨ u˘gu ¨mle olu¸sabilcek t¨ um a˘glar 2 kenarlı a˘glar Tam A˘ g Bo¸s A˘ g 1 kenarlı a˘glar Uzay C ¸ etin R ile Sosyal A˘ g Analizi 6 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri N D¨ug˘u¨ml¨u T¨um A˘glar T¨ um a˘glar, tam a˘gdan elde edilebilir. Tam A˘ g N 2 a I Tam a˘gdaki ba˘glantı sayısı, I Tam a˘gdaki, herhangi bir ba˘glantı(kenar) ya vardır ya da yoktur. N ( N d¨ u˘ gu ¨ml¨ u t¨ um a˘gların sayısı 2 2 ) ’dir. I ’sidir. a Tam a˘ gda, herhangi iki d¨ u˘ gu ¨m arasında bir ba˘ glantı vardır. Matematikte N d¨ u˘ gu ¨m arasından herhangi iki ⇣ ⌘ d¨ ug ˘u ¨m se¸cme i¸slemine N’in 2’li kombinasyonu, N ’si, denir. 2 Uzay C ¸ etin R ile Sosyal A˘ g Analizi 7 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri N ( ln(2 2 ) ), N’ye g¨ore de˘gi¸simi Karma¸sıklık Sadece 24 d¨ u˘gu ¨mle olu¸sturulabilecek t¨ um a˘gların sayısı, evrendeki atom sayısı 1080 ’den, fazladır. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 8 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Kenar Ba˘ glantılar (kenarlar), b¨ ut¨ un¨ u olu¸sturan par¸calar arasındaki ili¸skilerdir. Y¨ons¨uz Ba˘glantılar I Simetrik ili¸skilerdir. I I Facebook arkada¸slık ili¸skisi A B ile arkada¸ssa, B de A ile arkada¸stır. Y¨onl¨u Ba˘glantılar I Asimetrik ili¸skilerdir. I I Twitter takip¸cileri B, A’yı takip etmese de; A, B’yi takip edebilir. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 9 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri A˘g verisi I I I I A˘g verisinin g¨osterimi I Kenar Listesi I Kom¸suluk Listesi I I I I I I Kom¸suluk Matrisi Uzay C ¸ etin R ile Sosyal A˘ g Analizi B,A B,C B,D E,C B,A B,C B,D C,A E,C 10 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri A˘g verisi I I I I I A˘g verisinin g¨osterimi I Kenar Listesi I Kom¸suluk Listesi I Kom¸suluk Matrisi I I I I I Uzay C ¸ etin R ile Sosyal A˘ g Analizi A: B: A,C,D C: D: E: C A: B: A,C,D C: A D: E: C 11 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri A˘g verisi A B C D E A˘g verisinin g¨osterimi I Kenar Listesi I Kom¸suluk Listesi I A B C D E Kom¸suluk Matrisi Uzay C ¸ etin R ile Sosyal A˘ g Analizi A 0 B1 B B0 @0 0 B 0 0 0 0 0 C 0 1 0 0 1 D 0 1 0 0 0 E 0 0 0 0 0 A 0 B1 B B1 @0 0 B 0 0 0 0 0 C 0 1 0 0 1 D 0 1 0 0 0 E 0 0 0 0 0 0 0 1 C C C A 1 C C C A 12 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ A˘g Ornekleri Saddam’ın yerini kim biliyor? I I 15 u ¨st r¨ utbeli asker yakalandı, hi¸cbiri Saddam’ın yerini bilmiyordu. Foto˘ graf alb¨ um¨ u ¸cok daha alt seviyedeki ikinci seviye bir bodygardı i¸saret ediyordu Network Science Book Saddam’ın foto˘ graf alb¨ um¨ unden u ¨retilen ¨ ozel sosyal a˘ gı Uzay C ¸ etin R ile Sosyal A˘ g Analizi 13 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ A˘g Ornekleri Moviegalaxies Sitesi I Film karakterlerinin sosyal a˘ gı I Hangi a˘ g topolojisi filmin ba¸sarılı olmasını etkiler? moviegalaxies.com 3 kıtada 4 farklı konuyu birbirine ba˘ glayan, Babil filminin ana teması, ileti¸simsizlik. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 14 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ A˘g Ornekleri Yeni bir Bach par¸cası yaratabilece˘gimiz hi¸c aklnıza geldi mi? Bach eserindeki ardı¸sık notaların olu¸sturdu˘gu a˘g Chi K. Tse, 88 tu¸slu piyano ve 20 farklı zaman aralı˘ gı nedeniyle 1760 (nota) d¨ u˘ gu ¨m oldu˘ gu belirtilmi¸s. springer Uzay C ¸ etin Bach Keman Solo R ile Sosyal A˘ g Analizi 15 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ A˘g Ornekleri R¨onesans’ın Godfather’ı I Daha az varlık ve politik g¨ u¸cle ba¸sladı ama Floransa’yı y¨ onetti. Anadolu beyliklerinden Osmanlı’nın y¨ ukseli¸sini acaba a˘ g bilimi ile a¸cıklayabilir miyiz? Meidici Ailesi Evlilik a˘ gı: Medici Ailesi a˘ gda arasındalık de˘ geri en y¨ uksek aile. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 16 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Merkezilik A˘gdaki hangi d¨ u˘gu ¨mlerin ¨onemli oldu˘guna dair, ¨ol¸cu ¨d¨ ur. Merkezilik I Derece Merkezili˘gi I I ¨ Oz-vekt¨ or Merkezili˘gi I I G¨ u¸cl¨ u, etkili dostları olan, az sayıda ki¸si tanısa da, etkilidir. Arasındalık Merkezili˘gi I I Ba˘glantı sayısı c¸ok fazla olan, etkilidir. Bilgi akı¸sında k¨ opr¨ u vaziyeti g¨ oren d¨ u˘ gu ¨mler. Yakınlık Merkezili˘gi I Bilgiyi en kısa s¨ urede yayabilme kapasitesine sahip d¨ u˘ gu ¨mler. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 17 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ? Derece Merkezili˘gi = Pop¨ulerlik Arkada¸slık a˘gında tanıdı˘gınız ki¸si sayısı, ya da internet a˘gında ka¸c sitenin sizin sayfanıza link verdi˘gi bu a˘g metri˘gi ile ¨ol¸cu ¨l¨ ur. Y¨onl¨u A˘g I Girdi Derece I C ¸ ıktı Derece Y¨ons¨uz A˘g I Uzay C ¸ etin Derece R ile Sosyal A˘ g Analizi 18 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Y¨onl¨u A˘glarda C ¸ ıktı Derecesi C ¸ ıktı Derecesi, k ¸c : 0 M = 0 B B 1 B B B 1 B B B 0 @ 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 I Kom¸sulara giden ba˘glantı sayısı I 2. d¨ ug˘u ¨m¨ un c¸ıktı derecesi k2¸c = 1 C 0 C C C 0 C C C 0 C A 0 5 X M2j = 3 j=1 Uzay C ¸ etin R ile Sosyal A˘ g Analizi 19 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Y¨onl¨u A˘glarda Girdi Derecesi Girdi Derecesi, k g : 0 M = 0 B B 1 B B B 1 B B B 0 @ 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 I Kom¸sulardan gelen ba˘glantı sayısı I 2. d¨ u˘gu ¨m¨ un girdi derecesi k2g = 1 C 0 C C C 0 C C C 0 C A 0 5 X Mi2 = 0 i=1 Uzay C ¸ etin R ile Sosyal A˘ g Analizi 20 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Y¨ons¨uz A˘glarda Derece D¨u˘gu¨m¨un derecesi 0 M = 0 B B 1 B B B 0 B B B 0 @ 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 I Ba˘glantılı kom¸su sayısı I 2. d¨ ug˘u ¨m¨ un derecesi k2 = 1 C 0 C C C 1 C C C 0 C A 0 5 X M2j = j=1 Uzay C ¸ etin R ile Sosyal A˘ g Analizi 5 X Mi2 = 3 i=1 21 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ Oz-vekt¨ or Merkezili˘gi Pagerank Web sayfanız ne kadar ¨onemli? Bu ona link veren sayfalarının ne kadar ¨onemli oldu˘guna ba˘glı. Aij = 1¸c olacak ¸sekilde bir pagerank akı¸s matrisi yaratılır. (E˘ ger Kendini tekrarlayan yapı k i ¸c ki = 0 ise, Aii = 1 olsun). t T t 0 r = (A ) ⇥ r , r ⇤ T = (A ) ⇥ r ⇤ Sizin ne kadar merkezi oldu˘ gunuz, kontaktarınızın ne kadar merkezi oldu˘ guna ba˘ glıdır. Bunun i¸cin farklı A matrisinin 1 ¨ ozde˘ gerine kar¸sılık gelen r ⇤ ¨ ozvekt¨ or¨ u, pagerank de˘ gerlerini ta¸sır. bir a˘ g metri˘ gi gerekiyor. Derece yetersiz. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 22 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Merkezilik Yakınlık I Her d¨ u˘gu ¨m c¸ifti i¸cin aralarındaki en kısa mesafe yij olsun I i d¨ u˘gu ¨m¨ un¨ un di˘ger d¨ u˘gu ¨mlere yakınlı˘gı X 1 ya(i) = yij j yarı¸cap = max ya(i) i I Yarı¸cap ne kadar k¨ uc¸u ¨kse a˘ gu ¨zerinde, bilgi, dedikodu, hastalık vb.. daha hızlı yayılır. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 23 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Merkezilik Avantaj I Arasındalık I Herhangi j, k ikilisini birbirine ba˘ glayan en kısa yolların y¨ uzde ka¸cı i’den ge¸cer? ar (i) = Disiplenler arası c¸alı¸sma, yaratıcı fikir geli¸stirmeye yardımcı olabilir. X yjk (i) j>k yjk Uzay C ¸ etin R ile Sosyal A˘ g Analizi 24 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Karma¸sık A˘g Modelleri Ger¸cek hayattaki karma¸sık a˘gların nasıl ortaya c¸ıkmı¸s olabilece˘gine dair, matematiksel fikir y¨ ur¨ utme ¸cabasıdır. I Erd¨os Renyi A˘gları, (Rassal A˘g Modeli - 1959) I Watts Strogatz A˘gları (K¨ u¸cu ¨k D¨ unya Modeli - 1998) I Albert Barabasi A˘gları (Tercihsel Eklenme Modeli - 1999) Uzay C ¸ etin R ile Sosyal A˘ g Analizi 25 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Erd¨os Renyi A˘gları - Rassal A˘g Modeli - 1959 I I D¨ u˘gu ¨mler rassal bir ¸sekilde y¨ons¨ uz ba˘glantı kurar Ortalama derece: < k >= p(N I p ba˘ glanma olasılı˘ gı I N I 1) 1 potansiye kom¸su Bir d¨ u˘ gu ¨m¨ un derecesinin k olma ihtimali: ⇣ ⌘ N 1 P(k) = p k (1 p)N 1 k k ⇣ ⌘ I Herhangi k d¨ u˘ gu ¨m i¸cin N k 1 I I I bu k d¨ u˘ gu ¨me ba˘ glanma ihtimali p k I geri kalan N (1 Derece Da˘gılımı 1 I k d¨ ug ˘u ¨me ba˘ glanmama ihtimali p)N 1 k Uzay C ¸ etin R ile Sosyal A˘ g Analizi Simetrik (p t 0.5) Adaletli ? Pop¨ ulerlik ve hub kavramını a¸cıklamıyor. 26 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Watts Strogatz A˘gları - K¨u¸cu¨k D¨unya Modeli - 1998 Milgram Deneyi, 1960 I 6 derecelik mesafe I 296 ki¸siden, tanımadıkları fakat adını, yerini bildikleri birine bir kartpostalu ula¸stırmaları istendi. I 217si ba¸sladı, 64¨ u tamamladı. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 27 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Watts Strogatz A˘gları - K¨u¸cu¨k D¨unya Modeli - 1998 Milgram Deneyi, 1960 I 6 derecelik mesafe I 296 ki¸siden, tanımadıkları fakat adını, yerini bildikleri birine bir kartpostalu ula¸stırmaları istendi. I 217si ba¸sladı, 64¨ u tamamladı. D¨ unyadaki herhangi iki insan ¸sunu s¨oyleyebilir: Benim arkada¸sımın arkada¸sının arkada¸sı, senin arkada¸sının arkada¸sını tanıyor. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 27 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Clustering - K¨umelenme Rassal a˘g modelinin eksikliklerinden biri: A, B ile ba˘glantılı ve B de C ile ba˘glantılı ise, A’nın C ile ba˘glantı kurma olasılı˘gı olduk¸ca y¨ uksektir. I I I I ¨ cgen: BDE B yi barındıran U¸ B merkezli, 2 ba˘ glantısı olan u ¨c¸l¨ u d¨ ug ˘u ¨mler: BDC , BAE , BDA, BAC , BEC , BDE K¨ u mi = K¨ umB = 16 K¨ um = K¨ um = 15 (0 + 16 + 0 + 1 + 1) = 13 30 ¨ cgen sayısı i’li U¸ i merkezli u ¨c¸l¨ u sayısı 1 X K¨ umi N i Uzay C ¸ etin R ile Sosyal A˘ g Analizi 28 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar nature - p: bir ba˘ glantının tek bir ucunu koparıp, ba¸ska bir yere ba˘ glama olasılı˘ gı. Uzay C ¸ etin ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri p arttık¸ca, d¨ ug˘u ¨mler arası mesafeler L(p) kısalırken, k¨ umelenme C (p) belli bir yere kadar de˘gi¸smiyor. R ile Sosyal A˘ g Analizi 29 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri ¨ Ussel da˘gılım ¨ Ussel da˘gılım I U¸c derecede e¸sitsizlik durumudur. I Zenginlik I Pop¨ ulerlik I S¸ehirlerdeki n¨ ufus I Deprem b¨ uy¨ ukl¨ ukleri I Kelime frekansları I Sava¸slarda ¨olen insan sayısı wikipedia 80/20 Pareto kuralı Uzay C ¸ etin R ile Sosyal A˘ g Analizi 30 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Albert Barabasi A˘gları - Tercihsel Eklenme Modeli - 1999 Yeni d¨ u˘gu ¨mlerin eklenmesi nedeniyle, a˘glar zaman i¸cinde b¨ uy¨ umeye devam eder. I Eklenme rastgele de˘gil, basit bir kurala g¨ore I I I I En ¸cok ba˘ glantısı olana ba˘ glan. Yeni ba˘ glantı olasılı˘ gı, hedef d¨ u˘ gu ¨m¨ un derecesi ile orantılı Zengini zenginle¸stiren model. ¨ Ustsel yasaya g¨ore da˘gılım ¨ Ger¸cek hayattaki bir ¸cok a˘gın derece da˘gılımı, Ustsel yasa ile a¸cıklanır. Satılan kitap sayısı, indirilen ¸sarkı sayısı, link alan web sayfa sayısı, gelen telefon ¸ca˘grısı sayısı vb.. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 31 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri R Dili R y¨ uksek seviyeli bir istatiksel programlama dilidir. (Statistic kelimesinin ba¸s harfine kar¸sılık gelen) S dilini temel alır. I I Yeni fonksiyonlarla R dilini siz de geni¸sletebilirsiniz. ¨ ur yazılım. Ozg¨ I Platform ba˘gımsız. R dilinde Vekt¨ orler Uzay C ¸ etin R ile Sosyal A˘ g Analizi 32 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Matris ˙I¸slemleri 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ? matrix # matrix o z e l l i k l e r i n i l i s t e l e A = m a t r i x ( 1 : 9 , nrow =3 , n c o l =3 , byrow=F ) c o l n a m e s (A) < c ( ”A1” , ”A2” , ”A3” ) A I I P P # S a t i r S a t i r yaz = d i a g ( 3 )# d i a g o n a l m a t r i s = I d e n t i t y M. = c b i n d ( I [ , 1 ] , I [ , 1 ] )# 1 . k o l o n u 3 . k o l o n yap # Permutasyon M a t r i s i Ap = A %⇤% P # M a t r i s C a r p i m i Ap # A m a t r i s i n i n 1 . v e 3 . k o l o n l a r i y e r d e g i s t i r d i P2 = c b i n d ( I [ , 2 ] , I [ , 2 ] )# 2 . k o l o n u 3 . k o l o n yap P2 # P e r m u t a s y o n M a t r i s i Ap2 = A %⇤% P2 # M a t r i s C a r p i m i Ap2 # A m a t r i s i n i n 2 . v e 3 . k o l o n l a r i y e r d e g i s t i r d i Kod 1: MatrisPermutasyonu.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 33 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Farklı tipteki verileri bir araya getirmek data.frame I s¨ utun uzunlu˘ gu aynı olan tablo ¸seklindeki veri I s¨ utunlara eri¸sim i¸cin $ i¸sareti 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 X < m a t r i x ( c ( 1 , 2 , 3 , 4 ) , nrow =2 , n c o l =2) X X%⇤%X # m a t r i s c a r p i m i # m a t r i s i n d a t a . frame ’ e d o n u s m e s i D < d a t a . f r a m e ( M a t r i s=X , B o o l=c (TRUE, FALSE ) ) D Dx < D [ , 1 : 2 ] Dx c l a s s ( Dx ) # d a t a . frame ’ i n m a t r i s e d o n u s m e s i M < a s . m a t r i x . d a t a . f r a m e ( Dx ) c l a s s (M) Kod 2: dataframe.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 34 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri Farklı tipteki verileri bir araya getirmek list() I Farklı boyutlardaki veri tiplerini barındırır. I alt-verilere eri¸sim i¸cin $ i¸sareti 1 2 3 4 5 6 7 8 9 10 11 12 13 A = matrix ( s e q ( from = 1 . 6 , t o =4 , by = 0 . 3 ) , nrow =3 , n c o l =3 , byrow=F ) S = c(” string1 ” ,” string2 ” ,” string3 ”) E = diag (3) VERI = l i s t ( m a t r i s=A , s t r i n g=S , b i r i m m a t r i s=E ) # Liste uyelerine erisim operatoru : $ VERI$ m a t r i s VERI$ s t r i n g VERI$ b i r i m m a t r i s Kod 3: farklitip.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 35 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri R Dilinde Fonksiyonlar 1 X < m a t r i x ( c ( 1 , 2 , 3 , 4 ) , nrow =2 , n c o l =2) 2 3 s a t i r g e t i r < f u n c t i o n (M, i ) { 4 i f ( i<=nrow (M) && i >0) 5 M[ i , ] 6 else 7 print (” Satir s a y is i hatali ”) 8 } 9 10 s a t i r g e t i r (X, 1) 11 s a t i r g e t i r (X , 1 ) 12 s a t i r g e t i r (X , 2 ) 13 s a t i r g e t i r (X , 3 ) Kod 4: fonksiyon.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 36 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar ¨ A˘ g Ornekleri Karma¸sık A˘ g Modelleri R Dilinde Fonksiyonlar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 2 s a t i r i olan matris M < m a t r i x ( c ( 1 , 2 , 3 , 4 , 5 , 6 ) , nrow =2) # s a t i r l a r ortalmasi a p p l y (M, 1 , mean ) # kolonlar toplami a p p l y (M, 2 , sum ) # yeni bir fonksiyon y e n i f o n k < f u n c t i o n ( v ){ # vektordeki her elemanin k a r e l e r i n i sum ( v⇤ t ( v ) ) } topluyor # kolonlar icin , kare toplami a p p l y (M, 2 , y e n i f o n k ) Kod 5: apply.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 37 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi igraph Paketi igraph Paketi C dilinde yazıldı˘gı i¸cin hızlıdır. A¸sa˘gıdaki dillerle beraber kullanılabilir. I R Dili I Phtyon I C Dili Bellek kapasitesi ile sınırlıdır I D¨ u˘gu ¨m 16 Bayt, Kenar 32 Bayt gerektirir. ¨ Ornek: 2 Milyon D¨ u˘gu ¨m ve 10 milyon Kenarlı bir A˘g, 2 ⇥ 106 ⇥ 16 + 10 ⇥ 106 ⇥ 32 = 321MB bellek gerektirir. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 38 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi Elle K¨u¸cu¨k A˘g Olu¸sturma 1 # i g r a p h p a k e t i n i yukleme 2 l i b r a r y ( igraph ) 3 # E l l e kucuk ag o l u s t u r m a 4 g < g r a p h ( c ( 1 , 2 , 2 , 3 , 3 , 1 , 4 , 3 ) , d i r e c t e d=F ) 5 plot (g) Kod 6: ElleKucukAgOlusturma.R 1 2 3 4 # Dugum ( V e r t e x ) s a y i s i vcount ( g ) # Kenar ( Edge ) s a y i s i ecount ( g ) Uzay C ¸ etin R ile Sosyal A˘ g Analizi 39 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi D¨u˘gu¨mleri Adlandırma ve Renklendirme 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # E l l e kucuk ag o l u s t u r m a g < g r a p h ( c ( 1 , 2 , 2 , 3 , 3 , 1 , 4 , 3 ) , d i r e c t e d=F ) # Dugumleri adlandirma V( g ) $name < c ( ”A” , ”B” , ”X” , ”D” ) # Dugumleri r e n k l e n d i r m e V( g ) $ c o l o r < ” g r e e n ” # ”X” i n r e n g i n i a y r i c a d e g i s t i r m e V( g ) [ 3 ] $ c o l o r < ” r e d ” plot (g) # ”X” i n r e n g i n i r a s t g e l e d e g i s t i r m e V( g ) [ 3 ] $ c o l o r < r g b ( r u n i f ( 1 ) , r u n i f ( 1 ) , r u n i f ( 1 ) ) plot (g) Kod 7: Adlandirma.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 40 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi Kenarlari Renklendirme 1 2 3 4 5 6 7 8 ## ve : notasyonu g < graph . formula ( A l i Can : Cem : Ece : Efe , Can Cem) # Kenarlari renklendirme E( g ) $ c o l o r < ” blue ” # I s t e n e n dugume a i t K e n a r l a r i r e n k l e n d i r m e E ( g ) [ a d j ( ”Can” ) ] $ c o l o r < ” r e d ” plot (g) Kod 8: Formula.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 41 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi Derece B¨uy¨ukl¨u˘gu¨n¨u D¨u˘gu¨me Yazdırma 1 2 3 4 5 6 7 8 9 10 g < graph . formula ( A l i Can : Cem : Ece : Efe , Can Cem) # Kenarlari renklendirme E( g ) $ c o l o r < ” blue ” # I s t e n e n dugume a i t K e n a r l a r i r e n k l e n d i r m e E ( g ) [ a d j ( ”Can” ) ] $ c o l o r < ” r e d ” ## D e r e c e D e g e r i n i Dugume y a z d i r m a V( g ) $ l a b e l < p a s t e ( s e p=”\n” , V( g ) $name , d e g r e e ( g ) ) p l o t ( g , v e r t e x . l a b e l . f o n t =2 ,) Uzay C ¸ etin R ile Sosyal A˘ g Analizi 42 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi Komsuluk Matrisi 1 2 3 4 5 6 7 8 9 10 g < graph . formula ( A l i Can : Cem : Ece : Efe , Can Cem) # Komsuluk M a t r s i A < g e t . a d j a c e n c y ( g , s p a r s e=F ) # Komsuluk M a t r s i n d e n 1 . Dugumu ( A l i ) c i k a r M < A[ 1 , 1] # Y e n i Komsuluk M a t r i s i n d e n y e n i Ag g2 < g r a p h . a d j a c e n c y (M) # Yonsuz h a l e g e t i r g3 < a s . u n d i r e c t e d ( g2 ) p l o t ( g3 ) Uzay C ¸ etin R ile Sosyal A˘ g Analizi 43 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi KenarListesi ile Ag Olusturma ve Yol (Path) 1 2 3 4 5 6 7 8 9 10 11 12 # Kenar L i s t e s i e l < cbind ( c (1 , 2 , 3 , 4 , 5) , c (2 , 3 , 4 , 5 , 1) ) g < graph . e d g e l i s t ( e l ) # Dugumleri adlandirma V( g ) $name < c ( ” A l i ” , ” Berk ” , ”Cem” , ” D e n i z ” , ” Emre” ) E( g ) $ c o l o r < ” b l a c k ” # B e l l i b i r y o l ( p a t h ) u z e r i n d e k i Kenar L i s t e s i E ( g , p a t h=c ( ” Berk ” , ”Cem” , ” D e n i z ” ) ) $ c o l o r < ” r e d ” plot (g) Uzay C ¸ etin R ile Sosyal A˘ g Analizi 44 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi ¨ Scale Free Network Uretmek 1 2 3 4 5 6 7 8 # Olcekten Bagimsiz ( scale f r e e ) g < b a r a b a s i . game ( 1 0 0 , m=1) #Dugum B u y u k l u g u V( g ) $ s i z e =3 #Dugum e t i k e t l e r i n i s i l V( g ) $ l a b e l=NA p l o t ( g , e d g e . a r r o w . s i z e =0.5) Kod 9: ScaleFree.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 45 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi Derece B¨uy¨ukl¨u˘gu¨ne G¨ore C ¸ izmek 1 2 3 4 5 6 7 8 # Olcekten Bagimsiz ( scale f r e e ) g < b a r a b a s i . game ( 1 0 0 , m=1) #Dugum B u y u k l u g u V( g ) $ s i z e=d e g r e e ( g ) #Dugum e t i k e t l e r i n i s i l V( g ) $ l a b e l=NA p l o t ( g , e d g e . a r r o w . s i z e =0.5) Kod 10: ScaleFree2.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 46 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi A˘gın Yarı¸capı ve Betweenness de˘gerleri 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # igraph paketini yukle l i b r a r y ( igraph ) # Olcekten Bagimsiz ( scale f r e e ) g < b a r a b a s i . game ( 2 0 , m=1) g < as . u n d i r e c t e d ( g ) lay < layout . fruchterman . r e i n g o l d (g) #Dugum e t i k e t l e r i B e t w e n n e s s d e g e r i o l s u n B< b e t w e e n n e s s ( g ) labels < B # Ortalamanin a l t i n d a kalan e t i k e t l e r i s i l l a b e l s [ B<mean (B) ] < NA V( g ) $ l a b e l= l a b e l s #Dugum B u y u k l u g u V( g ) $ s i z e=B/ 5 #Ag y a r i c a p i n i g e t i r d< g e t . d i a m e t e r ( g ) # Kenar r e n k l e r i n i a y a r l a E ( g ) $ c o l o r< ’ d a r k g r e y ’ # Ag y a r i c a p i n i n r e n g i n i v e k a l i n l i g i n i E ( g , p a t h=d ) $ w i d t h< 3 E ( g , p a t h=d ) $ c o l o r< ’ r e d ’ degistir p l o t ( g , l a y o u t=l a y ) Kod 11: diameter2.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 47 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi A˘gın, Alt-A˘gını Temin Etmek 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 g < g < b a r a b a s i . game ( 1 0 0 , m=1) as . u n d i r e c t e d ( g ) V( g ) $ s i z e < d e g r e e ( g ) V( g ) $ l a b e l< NA E ( g ) $ c o l o r< ’ b l a c k ’ E ( g ) $ w i d t h< 2 #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # R a s t g e l e s e c i l m i s (%30) , # k e n a r l a r i n renk o z e l l i g i n i degistirmek #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : e = ecount ( g )⇤ ( 0 . 3 ) r = sample ( ecount ( g ) , e ) E ( g ) [ r ] $ c o l o r< ’ r e d ’ p l o t ( g , l a y o u t=l a y o u t . f r u c h t e r m a n . r e i n g o l d ( g ) ) Kod 12: subgraph3.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 48 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi A˘gın, Alt-A˘gını Temin Etmek 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # D e r e c e s i Kucuk D u g u m l e r i n E t i k e t i n i yazmadan C i z #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : o z e l C i z i m < f u n c t i o n ( g ){ derece < degree (g) V( g ) $ s i z e < d e r e c e e t i k e t < 1: vcount ( g ) e t i k e t [ d e r e c e <= q u a n t i l e ( d e r e c e , 0 . 9 5 ) ] < NA V( g ) $ l a b e l< e t i k e t p l o t ( g , l a y o u t=l a y o u t . f r u c h t e r m a n . r e i n g o l d ( g ) ) } #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # O l c e k t e n B a g i m s i z ( s c a l e f r e e ) Ag #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : g < b a r a b a s i . game ( 2 0 0 , m=1) g < as . u n d i r e c t e d ( g ) ozelCizim (g) #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # D u g u m l e r i K o r u y a r a k A l t Ag T e m i n i #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : e l < get . e d g e l i s t (g) e = ecount ( g )⇤ ( 0 . 7 5 ) r = sample ( ecount ( g ) , e ) el2 = el [ r , ] g2 < g r a p h . e d g e l i s t ( e l 2 , d i r e c t e d=F ) o z e l C i z i m ( g2 ) : : : : : : Kod 13: subgraph2.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 49 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi A˘gın, Alt-A˘gını Temin Etmek 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # p o l a s i l i k l a V dugume s a h i p E r d o s R e n y i g r a f i u r e t p = 0.1 V = 100 g < e r d o s . r e n y i . game (V , p ) # Derece buyuklugune gore c i z V( g ) $ s i z e=d e g r e e ( g ) lay < layout . fruchterman . r e i n g o l d (g) p l o t ( g , l a y o u t=l a y ) #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # D u g u m l e r i K o r u y a r a k A l t Ag T e m i n i #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # Kenar L i s t e s i n i a l e l < get . e d g e l i s t (g) e = ecount ( g ) /2 # e tane ke n a r i r a s t g e l e sec r = sample ( ecount ( g ) , e ) # g2 g r a f i n i u r e t el2 = el [ r , ] g2 < g r a p h . e d g e l i s t ( e l 2 , d i r e c t e d=F ) # Derece buyuklugune gore c i z V( g2 ) $ s i z e=d e g r e e ( g2 ) p l o t ( g2 , l a y o u t=l a y ) Kod 14: subgraph.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 50 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi A˘gın, Alt-A˘gını Temin Etmek 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # O l c e k t e n B a g i m s i z ( s c a l e f r e e ) Ag # 2 m i l y o n dugum v e 10 m i l y o n k e n a r l i ag #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : s y s t e m . t i m e ( g < b a r a b a s i . game ( 2 0 0 0 0 0 0 , m=10) ) #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : # K e n a r l a r i n y u z d e 75 i r a s t g e l e s e c i l i y o r #: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : e l < get . e d g e l i s t (g) e = ecount ( g )⇤ ( 0 . 7 5 ) r = sample ( ecount ( g ) , e ) el2 = el [ r , ] # i k i f a r k l i yontem z am an i k a r s i l a s t i r i l i y o r . # (1) s y s t e m . t i m e ( g2 < s u b g r a p h . e d g e s ( g , e i d s=r ) ) # (2) s y s t e m . t i m e ( g3< g r a p h . e d g e l i s t ( e l 2 , d i r e c t e d=F ) ) I induced.subgraph(graph, vids) ˙Istenen d¨ u˘ gu ¨mleri (vids) koruyarak I subgraph.edges(graph, eids) ˙Istenen ba˘ gları (eids) koruyarak Kod 15: subgraph4.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 51 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi K¨umelenme 1 2 3 4 5 6 7 8 karate < g r a p h . famous ( ” Z a c h a r y ” ) # w a l k t r a p : Random Walk T o p l u l u g a a i t # d u g u m l e r d e daha cok g e z i n e c e k t i r . wc < w a l k t r a p . community ( k a r a t e ) #m o d u l a r i t y ( wc ) #membership ( wc ) p l o t ( wc , k a r a t e ) Kod 16: community1.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 52 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Igraph Paketi K¨umelenme 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 5 , 6 v e 7 dugumu o l a n 3 tam ag ’ i b i r l e s t i r m e g < graph . f u l l (5) + graph . f u l l (6) + graph . f u l l (7) # Bag ’ l a r i n y u z d e 85 i n i s i l m e e l < get . e d g e l i s t (g) e = ecount ( g )⇤ ( 0 . 8 5 ) r = sample ( ecount ( g ) , e ) el2 = el [ r , ] g < s u b g r a p h . e d g e s ( g , e i d s=r ) # 8 1 ve 9 2 B a g l a r i n i ekleme g < g + edges ( c (8 ,1 ,9 ,2) ) # R a s t g e l e Bag e k l e m e g < g + e d g e s ( s a m p l e (V( g ) , 1 0 , r e p l a c e=TRUE) ) # l o o p ve c o k l u b a g l a r i k a l d i r m a g < simplify (g) # Baglarin a r a s i n d a l i k d e g e r l e r i n e gore # Topluluk T e s b i t i eb < e d g e . b e t w e e n n e s s . community ( g ) # Alt t o p l u l u k l a r i n c i z i m i p l o t ( eb , g ) # Dendogram c i z i m i d e n d P l o t ( eb ) Kod 17: communitydetection.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 53 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Birlikte Bulunma (Co-occurence) A˘gı Uzay C ¸ etin R ile Sosyal A˘ g Analizi 54 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Birlikte Bulunma (Co-occurence) A˘gı 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 v e r i [ ” Entropi ” ,] t ( v e r i [ ” Entropi ” ,]) t ( v e r i [ c (” Entropi ” ,” Fizik ”) ,]) terimler < terimler t ( v e r i [ c (” Entropi ” ,” Fizik ”) ,]) # VE o p e r t o r u : # g i r d i l e r d e n b i r i b i l e SIFIR i s e c i k t i SIFIR b i r l i k t e l i k < v e r i [ ” Entropi ” ,] & v e r i [ ” Fizik ” ,] birliktelik < t( birliktelik ) c o l n a m e s ( b i r l i k t e l i k ) < ”Co O c u r r e n c e ” birliktelik # Data Frame : # F a r k l i v e r i t i p l e r i b i r arada c o o c u r r e n c e < data . frame ( t e r i m l e r , b i r l i k t e l i k ) coocurrence Kod 18: fizikcooccurence2.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 55 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Birlikte Bulunma (Co-occurence) A˘gı 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # V e r i d o s y a s i n i n SECEREK y u k l e n m e s i v e r i < read . csv ( f i l e . choose () , row . names =1 , h e a d e r = T , s t r i n g s A s F a c t o r s = F , s e p=” ; ” ) # veri veri #v e r i ’ n i n c l a s s ’ i class ( veri ) # Terim dokuman m a t r i s i n e c e v i r M < as . matrix ( v e r i ) tM < t (M) # M’ i n t r a n s p o z u # Terim t e r i m ( co o c c u r e n c e ) k o m s u l u k m a t r i s i TT = M %⇤% tM g < g r a p h . a d j a c e n c y (TT, mode=” u n d i r e c t e d ” ) plot (g) g < s i m p l i f y ( g ) # Donen k e n a r l a r i plot (g) kaldir s e t . seed (3952) # Tekrar u r e t i l m e s i i c i n wc < w a l k t r a p . community ( g ) p l o t ( wc , g , l a y o u t=l a y o u t . kamada . k a w a i ) Boolean cebrinde VE operat¨ or¨ u C ¸ ARPIMa kar¸sılık gelir. Kod 19: fizikcooccurence.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 56 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Birlikte Bulunma (Co-occurence) A˘gı Uzay C ¸ etin R ile Sosyal A˘ g Analizi 57 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Birlikte Bulunma (Co-occurence) A˘gı 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # V e r i d o s y a s i n i n SECEREK y u k l e n m e s i v e r i < read . csv ( f i l e . choose () , row . names =1 , h e a d e r = T , s t r i n g s A s F a c t o r s = F , s e p=” ; ” ) # veri veri #v e r i ’ n i n c l a s s ’ i class ( veri ) # Terim dokuman m a t r i s i n e c e v i r M < as . matrix ( v e r i ) tM < t (M) # M’ i n t r a n s p o z u # Terim t e r i m ( co o c c u r e n c e ) k o m s u l u k m a t r i s i TT = M %⇤% tM g < g r a p h . a d j a c e n c y (TT, mode=” u n d i r e c t e d ” ) plot (g) g < s i m p l i f y ( g ) # Donen k e n a r l a r i plot (g) kaldir s e t . seed (3952) # Tekrar u r e t i l m e s i i c i n wc < w a l k t r a p . community ( g ) p l o t ( wc , g , l a y o u t=l a y o u t . kamada . k a w a i ) Kod 20: fizikcooccurence.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 58 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Topic Detection, Konu Tesbiti Sayfaların, Fizik ve Bili¸ssel Bilimler ile ilgili 2 ana konu u ¨zerine yo˘ gunla¸stı˘ gı ¸cıkarımı yapılabilir. Uzay C ¸ etin R ile Sosyal A˘ g Analizi 59 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Babil Filmi 1 #i n s t a l l . packages (” r g e x f ”) 2 library (” rgexf ”) 3 4 s e t w d ( ” / U s e r s / u z a y c e t i n / D e s k t o p / SosSLab R e a d i n g Group / zu I n e t TR 14 H a z i r l i k / ” ) 5 mygraph < r e a d . g e x f ( ” RData / b a b e l . g e x f ” ) 6 7 8 g< g e x f . t o . i g r a p h ( mygraph ) 9 V( g ) $ l a b e l < NA 10 b< b e t w e e n n e s s ( g ) 11 V( g ) $ s i z e < 20⇤b/max ( b )+1 12 13 s e t . s e e d ( 3 9 5 2 ) # T e k r a r u r e t i l m e s i i c i n 14 wc < w a l k t r a p . community ( g ) 15 p l o t ( wc , g , l a y o u t=l a y o u t . a u t o ) Kod 21: gephi1.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 60 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Babil Filmi 1 k e n a r l a r < get . e d g e l i s t (g) 2 a r a s i n d a l i k < edge . betweenness ( g ) 3 4 E ( g ) $ c o l o r< r g b ( a r a s i n d a l i k /max ( a r a s i n d a l i k ) , 0 , 0 ) 5 E ( g ) $ w i d t h < 5⇤ a r a s i n d a l i k /max ( a r a s i n d a l i k ) 6 plot (g) Kod 22: gephi2.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 61 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Babil Filmi 1 k < 2 3 4 5 6 7 k e n a r l a r [ a r a s i n d a l i k <=q u a n t i l e ( a r a s i n d a l i k , 0 . 9 ) ,] g2 < g r a p h . e d g e l i s t ( k , d i r e c t e d=F ) s e t . seed (3952) # Tekrar u r e t i l m e s i i c i n wc < w a l k t r a p . community ( g2 ) V( g2 ) $ l a b e l < NA V( g2 ) $ s i z e < d e g r e e ( g2 ) p l o t ( wc , g2 , l a y o u t=l a y o u t . kamada . k a w a i ) Kod 23: gephi3.R Uzay C ¸ etin R ile Sosyal A˘ g Analizi 62 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Arasındalık de˘geri y¨uksek kenarlar silindi Babil Filmi I Nasıl bir a˘g elde etmi¸s olduk? I Film adını Babil Efsanesinden alıyor. Her y¨ onden kendini geli¸smi¸s g¨ oren insano˘ glunu, g¨ o˘ gu ¨n en y¨ ukseklerine ula¸sma arzusu ile Babil Kulesi’ni in¸sa etmeye ba¸slar. Tanrı, insanları bu kibrinden dolayı cezalandırmak i¸cin, aynı dili konu¸sabilme ¨ ozelliklerini yok eder ve her birine ayrı bir lisan verir. Artık birbirleriyle ileti¸sim sa˘ glayamayan insanlar kule yapımını bırakmak zorunda kalırlar. wikipedia Uzay C ¸ etin R ile Sosyal A˘ g Analizi 63 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Kaynaklar Online A¸cık ders I Social Network Analysis, Lada Adamic, Coursera, 2012 I R Dilinin temellerini interaktif bi¸cimde ¨o˘greten bir web sayfası: tryr.codeschool.com Kitaplar I “Networks, Crowds and Markets: Reasoning about a highly connected world”, Easley and Kleinberg, Cambridge, 2010. I “Network Science, Albert-Laszlo Barabasi Uzay C ¸ etin R ile Sosyal A˘ g Analizi 64 / 65 Karma¸sık A˘ glar R ile Sosyal A˘ g Analizi Uygulamalar Co-occurence A˘ gı Te¸sekk¨urler I E-mail: [email protected] Uzay C ¸ etin R ile Sosyal A˘ g Analizi 65 / 65
© Copyright 2024 Paperzz