R ile Programlamaya Giriş ve Uygulamalar - Inet-tr

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