Öne çıkan

Virüs, Kriz ve Yapay Zeka Arama Terimlerine Bağlı Olarak Google Trend Verilerinin Ülkeler Açısından Karşılaştırmalı Analizi: Comparative Analysis of Google Trend Data Based on Virus, Crisis and AI Search Terms by Countries

Bilindiği üzere Google Trends ile bir ülke veya bölgede öne çıkan içerikler ortaya konulabilmektedir. Google Trends, Google Arama’da en çok yapılan arama sorgularının çeşitli bölge ve dillerdeki popülerliğini analiz eden bir Google web sitesidir. Web sitesi, zaman içindeki farklı sorguların arama hacmini karşılaştırmalı olarak ortaya koyan grafikler sunmaktadır. Google Trendler ayrıca, kullanıcılara iki veya daha fazla arama terimi ile göreli arama hacmini karşılaştırmasına olanak da tanımaktadır.

Araştırma kapsamında ilk üç çalışma yapılarak ülkelere göre karşılaştırmalı olarak ortaya konulacaktır. İlk çalışmada “virüs” aramalarının seyri, ardından ise “kriz” ve “yapay zeka” arama terimlerinin ülkelere göre ve dünyadaki seyri incelenecektir. Son kısımda ise “Suriye” arama terimleri Türkiye özelinde ele alınacaktır.

Metodoloji ve Bulgular

a) İlk Çalışma

Çalışma kapsamında 01-01-2020 ile 31-01-2021 tarihleri arasında “virüs” arama terimine bağlı olarak başta COVID-19 olmak üzere bütün virüs kaynaklı aramaların Amerika, Türkiye, Kanada, Fransa özelinde ve Dünya ölçeğinde izlediği seyrin ortaya konulması amaçlanmıştır. Aynı zamanda bu arama verisinden yola çıkarak gelecek 1 yıl için tahmin yapılmıştır.

b) İkinci Çalışma

Çalışma kapsamında 01-01-2004 ile 27-10-2020 tarihleri arasında “kriz” arama terimine bağlı olarak başta ekonomik ve sağlık olmak üzere kriz aramalarının Amerika, Türkiye, Kanada, Fransa özelinde ve Dünya ölçeğinde izlediği seyrin ortaya konulması amaçlanmıştır.

c) Üçüncü Çalışma

Bu kısımda 01-01-2004 ile 31-01-2021 tarihleri arasında “yapay zeka” arama terimine bağlı olarak Amerika, Türkiye, Kanada, Fransa özelinde ve Dünya ölçeğinde yapay zeka arama teriminin hit sayıları üzerinden izlediği seyrin ortaya konulması amaçlanmıştır.

d) Dördüncü Çalışma

Bu bölümde 29-04-2011 ile 01-02-2021 tarihleri arasında “Suriye” arama terimine bağlı olarak Türkiye‘de Suriye arama teriminin hit sayıları üzerinden izlediği seyrin ortaya konulması amaçlanmıştır. Ayrıca Suriye arama terimiyle ilişkili diğer aramalar da bu çalışma kapsamında ortaya konulmuştur.

Uygulama ve Bulgular

Çalışma kapsamında R programlama dili kullanılmıştır. Veri gtrendsR paketi ile Google Trends veri tabanından eş zamanlı olarak alınacaktır. O zaman işe koyulma zamanı 🙂 . İlk olarak yüklenecek R paketlerini verelim. Arama terimleri karşılaştırılacak ülkenin kullandığı dile göre yapılmalıdır.

Yüklenecek kütüphaneler

Yüklenecek kütüphane konusunda her zamanki gibi bonkorüm galiba 🙂 ; daha az kütüphaneyle de aynı analizleri yapabilirsiniz. Ancak daha çok esneklik ve estetik tasarım tanıdığı için olması gerekenden fazla kütüphane ile çalışıyorum.

kutuphane<-c("dplyr","tibble","tidyr","ggplot2","formattable","ggthemes","readr","readxl","ggpubr","formattable", "ggstance","pander", "gtrendsR","explore", "lubridate", "writexl", "tidytext","prophet")
yukle<-sapply(kutuphane, require, character.only = TRUE)
yukle

a) İlk Çalışma

Bu kısımda 01-01-2020 ile 31-01-2021 tarihleri arasında “virüs” arama terimine bağlı olarak Amerika, Türkiye, Kanada ve Fransa özelinde izlediği seyir ortaya konulmuştur. Aynı zamanda bu arama verisinden yola çıkarak gelecek 1 yıl için tahmin yapılmıştır.

arama = gtrends(c("virus","virus","virüs", "virus"), geo = c("US","CA","TR", "FR"), gprop = "web", time = "2020-01-01 2021-01-31")[[1]]
arama=arama %>% mutate(geo = recode(geo, 
  "US" = "ABD",
  "CA" = "Kanada",
  "TR" = "Türkiye",
  "FR" = "Fransa"))

ggplot(data = arama, aes(x = date, y = hits, group = geo)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), show.legend = FALSE) +
  geom_point(size = 0) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Virüs Arama Terimine Göre Google Trendleri")+
  facet_wrap(~geo)+
  theme_hc()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra virüs arama terimine göre Google Trendleri karşılaştırmalı olarak aşağıdaki grafikte verilmiştir. Grafiğe göre virüs arama terimi hit sayısının bütün ülkelerde Mart 2020’de zirveye ulaştığı görülmektedir. Ancak bu ülkeler içerisinde en yüksek hit sayısı ABD’de görülürken en düşük hit sayısı Türkiye’de görülmüştür. 2021 yılının ocak ayında ise bütün ülkeler en düşük hit sayısına sahip olduğu görülmektedir.

Yukarıdaki arama trend verilerine bağlı olarak bir de Facebook tarafından geliştirilen prophet paketi kullanarak gelecek 1 yıla ilişkin ülkelere göre tahmin yapalım. Önceliği Türkiye’ye verelim 🙂 .

# 1 Yıllık Tahmin
TR<-filter(arama, geo=="Türkiye")

tahmin <- TR[,c("date","hits")]
colnames(tahmin) <-c("ds","y")

t1 <- prophet(tahmin)

gelecek <- make_future_dataframe(t1, periods = 365)
ongoru <- predict(t1, gelecek)
plot(t1, ongoru)

Yukarıdaki R kod bloğunun çalıştırılmasından Türkiye için gelecek 1 yıllık (2022 yılının 31 Ocağına kadar) virüs arama trendi aşağıdaki grafikte verilmiştir. Görüleceği üzere virüs arama trendinin %95 güven aralığı içerisinde azalan bir trend ortaya koyduğu görülmektedir.

Türkiye tahmin verilerini aşağıda yazdığım R kod bloğu ile xlsx uzantılı Microsoft Excel çalışma kitabına yazdırdım.

turkiye=forecast[c('ds', 'yhat',  'yhat_lower', 'yhat_upper')] 
write_xlsx(turkiye, "turkiyetahminleri.xlsx")

Yukarıdaki R kod bloğu çalıştırıldıktan sonra elde edilen Türkiye virüs arama 1 yıllık tahmin verilerini güven aralıklarıyla birlikte aşağıdan indirebilirsiniz.

Yukarıdaki arama trend verilerine bağlı olarak gelecek 1 yıla ilişkin ABD virüs arama tahminlerini ortaya koyalım.

ABD<-filter(arama, geo=="ABD")
tahmin <- ABD[,c("date","hits")]
colnames(tahmin) <-c("ds","y")

t1 <- prophet(tahmin)
gelecek <- make_future_dataframe(t1, periods = 365)
ongoru <- predict(t1, gelecek)
plot(t1, ongoru)

Yukarıdaki R kod bloğunun çalıştırılmasından ABD için gelecek 1 yıllık (2022 yılının 31 Ocağına kadar) virüs arama trendi aşağıdaki grafikte verilmiştir. Görüleceği üzere virüs arama trendinin %95 güven aralığı içerisinde azalan bir trend ortaya koyduğu görülmektedir. Ancak bu azalma trendi Türkiye’den daha hızlı ve keskindir. Bunu sol tarafta yer alan y (tahmin) değerlerinden rahatlıkla görüyoruz.

Yukarıdaki arama trend verilerine bağlı olarak şimdi de gelecek 1 yıla ilişkin Fransa virüs arama tahminlerini ortaya koyalım.

fr<-filter(arama, geo=="Fransa")
tahmin <- fr[,c("date","hits")]
colnames(tahmin) <-c("ds","y")

t1 <- prophet(tahmin)
gelecek <- make_future_dataframe(t1, periods = 365)
ongoru <- predict(t1, gelecek)
plot(t1, ongoru)

Yukarıdaki R kod bloğunun çalıştırılmasından Fransa için gelecek 1 yıllık (2022 yılının 31 Ocağına kadar) virüs arama trendi aşağıdaki grafikte verilmiştir. Görüleceği üzere virüs arama trendinin %95 güven aralığı içerisinde diğer ülkelerdekine benzer olarak azalan bir trend ortaya koyduğu görülmektedir. Ancak bu azalma trendi Türkiye’den ve ABD’den daha düşüktür. Bunu sol tarafta yer alan y (tahmin) değerlerinden rahatlıkla görüyoruz.

Yukarıdaki arama trend verilerine bağlı olarak son olarak gelecek 1 yıla ilişkin Kanada virüs arama tahminlerini ortaya koyalım.

kn<-filter(arama, geo=="Kanada")
tahmin <- kn[,c("date","hits")]
colnames(tahmin) <-c("ds","y")

t1 <- prophet(tahmin)
gelecek <- make_future_dataframe(t1, periods = 365)
ongoru <- predict(t1, gelecek)
plot(t1, ongoru)

Yukarıdaki R kod bloğunun çalıştırılmasından Kanada için gelecek 1 yıllık (2022 yılının 31 Ocağına kadar) virüs arama trendi aşağıdaki grafikte verilmiştir. Görüleceği üzere virüs arama trendinin %95 güven aralığı içerisinde diğer ülkelerdekine benzer olarak azalan bir trend ortaya koyduğu görülmektedir. Ancak bu azalma trendi Türkiye ve Fransa’dan daha yüksek iken ABD ile benzerdir. Bunu sol tarafta yer alan y (tahmin) değerlerinden rahatlıkla görüyoruz.

Virüs” arama terimine bağlı olarak Dünyadaki google trendlerine de elimiz değmişken aşağıda yazdığım R kod bloğu ile bakalım 🙂 .

virus = gtrends(c("virus","virus","virüs", "virus"), gprop = "web", time = "2020-01-01 2021-01-31")[[1]]

virus= virus  %>% mutate(hits=as.numeric(hits))

ggplot(data = virus, aes(x = date, y = hits)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), show.legend = FALSE) +
  geom_point() +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Virüs Terimine Göre Dünyada Google Trendleri")+
  theme_economist_white()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Dünyadaki “virüs” arama google trendleri aşağıdaki grafikte verilmiştir.

b) İkinci Çalışma

Bu bölümde 01-01-2004 ile 27-10-2020 tarihleri arasında “kriz” arama terimine bağlı olarak başta ekonomik ve sağlık olmak üzere kriz aramalarının Amerika, Türkiye, Kanada ve Fransa özelinde izlediği seyir aşağıda yazılan kod bloğu ile ortaya konulmuştur. Elde edilen bulgular ülkelere ve yıllara göre karşılaştırmalı olarak verilmiştir.

kriz = gtrends(c("crisis","crisis","kriz", "crise"), geo = c("US","CA","TR", "FR"), gprop = "web", time = "2004-01-01 2020-10-27")[[1]]

kriz=kriz %>% mutate(geo = recode(geo, 
  "US" = "ABD",
  "CA" = "Kanada",
  "TR" = "Türkiye",
  "FR" = "Fransa"))

ggplot(data = kriz, aes(x = date, y = hits, group = geo)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), , show.legend = FALSE) +
  geom_point(size = 0) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Kriz Arama Terimine Göre Google Trendleri")+
  facet_grid(~geo)+
  theme_hc()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde “kriz” arama terimine bağlı olarak elde edilen bulgular ülkelere ve yıllara göre karşılaştırmalı olarak aşağıdaki grafikte verilmiştir. Elde edilen bulgulara göre kriz terimi arama sayısının en yüksek olduğu ülke Fransa olup, en yüksek olduğu tarih ise 01.10.2008 tarihidir. Bu tarihte Fransa’da kriz arama terimindeki hit sayısı 100’dür. Genel olarak bakıldığında karşılaştırılan ülkeler içerisinde Fransa’da kriz arama terimine bağlı olarak ortaya çıkan hit sayıları ve bu hit sayılarının seyri diğer ülkelere göre daha yüksek olduğu söylenebilir. Türkiye özelinde bakıldığında ise kriz arama terimine bağlı olarak ortaya çıkan hit sayıları açısından en düşük ülkedir. Ancak Türkiye kendi içerisinde değerlendirildiğinde kriz arama teriminin sayısının en yüksek olduğu ilk 3 tarih hit sayısına göre şöyledir: 03.01.2004 (Hit sayısı: 24), 11.01.2008 (Hit sayısı: 23) ve 05.01.2004 (Hit sayısı: 22).

Türkiye için en yüksek ilk 10 kriz hit sayısının olduğu tarihler ise aşağıda yazılan kod bloğu ile verilmiştir.

kriz %>% filter(geo=="Türkiye") %>% select(date, hits) %>% arrange(desc(hits)) %>% head(10) %>% formattable()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Türkiye için elde edilen en yüksek ilk 10 kriz hit sayısı tarihlere göre aşağıda verilmiştir.

Fransa için en yüksek ilk 10 kriz hit sayısının olduğu tarihler ise aşağıda yazılan kod bloğu ile verilmiştir.

kriz %>% filter(geo=="Fransa") %>% select(date, hits) %>% arrange(desc(hits)) %>% head(10) %>% formattable()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Fransa için elde edilen en yüksek ilk 10 kriz hit sayısı tarihlere göre aşağıda verilmiştir.

Son olarak ABD için en yüksek ilk 10 kriz hit sayısının olduğu tarihler ise aşağıda yazılan kod bloğu ile verilmiştir.

kriz %>% filter(geo=="ABD") %>% select(date, hits) %>% arrange(desc(hits)) %>% head(10) %>% formattable()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra ABD için elde edilen en yüksek ilk 10 kriz hit sayısı tarihlere göre aşağıda verilmiştir.

“Kriz” arama terimine bağlı olarak elde edilen bulguların veri seti aşağıda yazılan R kod bloğu ile ülkelere ve tarihlere göre karşılaştırmalı olarak xlsx uzantılı Microsoft Excel çalışma kitabına yazdırdım.

write_xlsx(kriz, "ulkeverileri.xlsx")

Buradan bu veri setini indirebilirsiniz.

Kriz” arama terimine bağlı olarak Dünyadaki google trendlerine de elimiz değmişken aşağıda yazdığım R kod bloğu ile bakalım :).

crisis = gtrends(c("crisis","crisis","kriz", "crise"), gprop = "web", time = "2004-01-01 2020-10-27")[[1]]

crisis= crisis  %>% mutate(hits=as.numeric(hits))

ggplot(data = crisis, aes(x = date, y = hits)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), show.legend = FALSE) +
  geom_point() +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Kriz Terimine Göre Dünyada Google Trendleri")+
  theme_economist_white()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Dünyadaki “kriz” arama google trendleri aşağıdaki grafikte verilmiştir.

Dünyada en yüksek ilk 10 “kriz” arama terimi hit sayısının olduğu tarihler aşağıda yazılan kod bloğu ile verilmiştir.

crisis %>% mutate(hits=as.numeric(hits)) %>% select(date, hits) %>% arrange(desc(hits)) %>% head(10) %>% formattable()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Dünyada en yüksek ilk “kriz” arama terimi hit sayısı tarihlere göre aşağıdaki tabloda verilmiştir. Zaten ortaya konulan bu bulgular hepimizin bildiği üzere 2008 yılının son aylarında ortaya çıkan ve dünyayı etkisi altına alan 2008 Dünya ekonomik krizini doğrular niteliktedir.

“Kriz” arama terimine bağlı olarak elde edilen bulguların veri seti aşağıda yazılan R kod bloğu ile tarihlere göre karşılaştırmalı olarak xlsx uzantılı Microsoft Excel çalışma kitabına yazdırdım.

veri=crisis %>% mutate(hits=as.numeric(hits))
write_xlsx(veri, "krizdunya.xlsx")

Buradan bu Dünya kriz veri setini indirebilirsiniz.

c) Üçüncü Çalışma

Bu bölümde 01-01-2004 ile 31-01-2021 tarihleri arasında “yapay zeka” arama terimine bağlı olarak Amerika, Türkiye, Kanada ve Fransa özelinde izlediği seyir aşağıda yazılan kod bloğu ile ortaya konulmuştur. Elde edilen bulgular ülkelere ve yıllara göre karşılaştırmalı olarak verilmiştir. Elde edilen bulgular ülkelere ve yıllara göre karşılaştırmalı olarak verilmiştir.

ai = gtrends(c("artificial intelligence","artificial intelligence","yapay zeka", "intelligence artificielle"), geo = c("US","CA","TR", "FR"), gprop = "web", time = "2004-01-01 2020-01-31")[[1]]

ai=ai %>% mutate(geo = recode(geo, 
  "US" = "ABD",
  "CA" = "Kanada",
  "TR" = "Türkiye",
  "FR" = "Fransa"))

ggplot(data = ai, aes(x = date, y = hits, group = geo)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), , show.legend = FALSE) +
  geom_point(size = 0) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Yapay Zeka Arama Terimine Göre Google Trendleri")+
  facet_grid(~geo)+
  theme_hc()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde “yapay zeka” arama terimine bağlı olarak elde edilen bulgular ülkelere ve yıllara göre karşılaştırmalı olarak aşağıdaki grafikte verilmiştir. Elde edilen bulgular yapay zeka arama trendlerinin dalgalı bir seyir izlediğini göstermektedir. Yapay zeka terimi arama sayısının en yüksek olduğu ülke Türkiye olup, en yüksek olduğu tarih ise 01.11. 2004 tarihidir. Bu tarihte Türkiye’de yapay zeka arama terimindeki hit sayısı 100’dür. Genel olarak bakıldığında karşılaştırılan ülkeler içerisinde Türkiye’de yapay zeka arama terimine bağlı olarak ortaya çıkan hit sayıları ve bu hit sayılarının seyri diğer ülkelere göre daha yüksek ve bu konunun daha popüler olduğu söylenebilir. Türkiye kendi içerisinde değerlendirildiğinde yapay zeka arama teriminin sayısının en yüksek olduğu ilk 3 tarih hit sayısına göre şöyledir: 01.11. 2004 (Hit sayısı: 100), 01.10.2004 (Hit sayısı: 98) ve 01.02.2004 (Hit sayısı: 95).

Türkiye için en yüksek ilk 10 yapay zeka hit sayısının olduğu tarihler aşağıda yazılan kod bloğu ile verilmiştir.

ai %>% filter(geo=="Türkiye") %>% select(date, hits) %>% arrange(desc(hits)) %>% head(10) %>% formattable()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Türkiye için elde edilen en yüksek ilk 10 yapay zeka hit sayısı tarihlere göre aşağıda verilmiştir.

“Yapay zeka” arama terimine bağlı olarak elde edilen bulguların veri seti aşağıda yazılan R kod bloğu ile ülkelere ve tarihlere göre karşılaştırmalı olarak xlsx uzantılı Microsoft Excel çalışma kitabına yazdırdım.

write_xlsx(ai, "ulkeverileriai.xlsx")

Buradan bu veri setini indirebilirsiniz.

Yapay Zeka” arama terimine bağlı olarak Dünyadaki google trendlerine de elimiz değmişken aşağıda yazdığım R kod bloğu ile bakalım 🙂 .

ai = gtrends(c("artificial intelligence","artificial intelligence","yapay zeka", "intelligence artificielle"), gprop = "web", time = "2004-01-01 2020-01-31")[[1]]
ai= ai  %>% mutate(hits=as.numeric(hits))

ggplot(data = ai, aes(x = date, y = hits)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), show.legend = FALSE) +
  geom_point() +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Yapay Zeka Terimine Göre Dünyada Google Trendleri")+
  theme_economist_white()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Dünyadaki “yapay zeka” arama google trendleri aşağıdaki grafikte verilmiştir.

d) Dördüncü Çalışma

Bu bölümde 29-04-2011 ile 01-02-2021 tarihleri arasında “Suriye” arama terimine bağlı olarak Türkiye‘de Suriye arama teriminin hit sayıları üzerinden izlediği seyrin ortaya konulması amaçlanmıştır. Ayrıca Suriye arama terimiyle ilişkili diğer aramalar da bu çalışma kapsamında ortaya konulmuştur. Elde edilen bulgular yıllara göre karşılaştırmalı olarak verilmiştir.

TUR = gtrends("suriye", geo = "TR", gprop = "web", time = "2004-01-01 2020-02-01")
top<-filter(TUR$related_topics, related_topics=="top")
top<-top[,c(3,1)] %>%  as.tibble() %>% rename(word=value, freq=subject) %>% mutate(freq=as.numeric(freq))

top  %>% mutate(word = fct_reorder(word, freq)) %>% slice(1:10) %>% 
  ggplot( aes(x=word, y=freq)) +
    geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
    coord_flip() +
    xlab("") +
    ylab("Frekans")+
   theme_economist()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra elde “Suriye” arama terimine bağlı olarak elde edilen bulgular ilişkili konularla birlikte aşağıdaki grafikte verilmiştir. Elde edilen bulgulara bakıldığında ilişkili top konularda da Suriye 1. sırada olduğu, bunu sırasıyla harita (map) ve savaş (war) izlediği görülmektedir. Diğer top konular ise sırasıyla şöyledir: Suriye savaşı, Irak, Rusya, Iran ve Özgür Suriye Ordusu’dur.

Suriye arama terimine bağlı olarak Türkiye’de yıllara göre arama trendlerinin sayısı aşağıda yazılan kod bloğu ile verilmiştir.

TUR = gtrends("suriye", geo = "TR", gprop = "web", time = "2011-04-29 2020-02-01")[[1]]
tur= TUR  %>% mutate(hits=as.numeric(hits))
ggplot(data = tur, aes(x = date, y = hits, group = geo)) +
  geom_line(size = 1, alpha = 0.7, aes(color = geo), , show.legend = FALSE) +
  geom_point(size = 0) +
  theme(legend.title=element_blank(), axis.title.x = element_blank()) +
  ylab("Hit Sayısı") + 
  xlab("Tarih")+
  ggtitle("Türkiye'de Suriye Arama Terimine Göre Google Trendleri")+
  facet_grid(~geo)+
  theme_hc()

Yukarıdaki R kod bloğunun çalıştırılmasından sonra Suriye arama terimine göre Türkiye’de yıllara göre arama hit sayısı aşağıdaki grafikte verilmiştir.

Yapılan çalışma ile özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunulması amaçlanmıştır.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

Öne çıkan

COVID-19 ve Dijital Dönüşüm: COVID-19 and Digital Transformation

7 secrets for getting digital transformation right | CIO

Kaynak:https://www.cio.com

Birleşmiş Milletler Sınai Kalkınma Örgütü (UNIDO) tarafından 10 Temmuz 2020 tarihinde içerisinde ağırlıklı olarak Covid-19 pandemisinin dijitalleşme üzerindeki etkisinin ele alındığı “Covid-19 Olası Sonuçlar ve Cevaplar: Dijital Dönüşüm ve Endüstriyel İyileşme” adlı rapor yayımlanmıştır.

Pandemik kriz uluslararası topluma özellikle ileri üretim teknolojileri ve dijitalleşme yoluyla uluslararası kalkınma sorunlarına işbirliği çözümleri sunarak dijital dönüşümü hızlandırma fırsatı sağlamıştır. Krizden önce bile, küresel imalat, dijital ve geleneksel imalat sektörleri Dördüncü Sanayi Devrimi ile görülmemiş hızlı bir değişim geçirmiştir. Yapay zekâ, ileri robotik, 3D yazıcılar, giyilebilir ve nesnelerin interneti gibi yıkıcı teknolojiler, üretim ortamını kökten değiştirerek üretkenliği arttırmak için büyük fırsatlar sunarken aynı zamanda sosyal içerme amaçlarına da büyük katkı sunmaktadır. Sosyal içerme, dezavantajlı bireylerin ve grupların topluma katılımını artırma ve onları iyileştirme sürecidir. Dördüncü sanayi devriminin değişim hızı, yürürlüğe girmesi on yıllar, hatta yüzyıllar süren önceki endüstriyel devrimlerle karşılaştırıldığında benzersizdir. Bu devrim yaşam biçimlerine de etki ederek yaşam biçimlerini üretimin yapıldığı fabrikanın ötesine taşıyacaktır.

Mevcut pandeminin küresel ölçekli yansımaları dünyayı Dördüncü Sanayi Devrimi’ne doğru yapısal kaymanın aciliyetini düşünmeye zorlamış ve Covid-19 dijital dönüşümün beklenmedik hızlandırıcısı olmuştur.

Pandemik kriz dördüncü sanayi devrimini üretken sektörlere katmak, uzun vadeli esnekliği artırmak ve daha iyi bir gelecek inşa etmek için eşsiz bir fırsat sunmaktadır. Örneğin, siber alana taşınma, eğitim, sosyal ve ekonomik faaliyetlere uzaktan katılım, sosyal mesafenin psiko-sosyal etkisinin azaltılmasına imkân sağlamıştır. Büyük veri, kriz yönetimi ve tahmine dayalı öğrenme açısından giderek daha fazla kullanım alanı oluşturmaya başlamıştır. Bu durum beraberinde gerçek zamanlı veriye dayalı daha hızlı ve daha verimli bir karar almayı mümkün kılmıştır. Benzer şekilde dünya, kriz sürecince fiziksel perakende mağazalarından elektronik ticarete geçişe tanık olmuş ve olmaya devam etmektedir.

Krize müdahale etmenin gerekliliği şüphesiz bazı alanlarda yeniliği de beraberinde getirmiştir. Yapay zekâ ve büyük veri, virüs araştırmalarına, aşı geliştirilmesine ve kamu politikalarını destekleyen veri analizleri için kullanılmıştır. Benzer şekilde, robotlar hastaların izlenmesi ve desteklenmesinde artan bir rol oynamıştır. Örneğin, giyilebilir teknolojiler hastaların ve sağlık personelinin taranmasında ve izlenmesinde önemli rol oynamıştır. Dördüncü Sanayi Devrimi, Covid-19 ve bununla ilişkili sosyal, ekonomik ve çevresel etkilere karşı mücadelede çok çeşitli potansiyel çözümler getirmiştir. Bu çözüm örneklerinden bazıları ve bunların kullanım alanları şöyledir:

  1. Dronlar: Sağlık krizinde kritik malzemelerin teslimi, kamusal alanların dezenfeksiyonu, vücut ısının ölçümü ve karantina kontrollerinin uygulanmasında kullanılmıştır. Diğer taraftan ekonomik krizde dronlar hizmet sunumunda artan verimlik sağlamakla birlikte yoğun nüfuslu alanların taranmasına da imkan sunmuştur.
  2. Robotlar: Sağlı krizinde hastalara yardım etme ve onları izleme, medikal stokların optimizasyonu ile ilaç ve gıda tesliminde kullanılmıştır. Diğer taraftan ekonomik krizde robotlardan uzaktan denetim, bakım ve onarım ile yarı otonom işlerde yararlanılmıştır.
  3. 3D Yazıcılar: Sağlı krizinde tıbbi malzeme ve temel bileşenlerin üretiminde kullanılmıştır. Diğer taraftan ekonomik krizde parça eksikliklerini giderme ve yeni ürünler için tasarım ve test prototipleri oluşturmada 3D yazıcıların önemli katkısı olmuştur.
  4. Blockchain: Sağlı krizinde bireylerin sağlık durumunu içeren dijital kimliklerin oluşturulması, ilaç güvenliğinin izlenmesi ve sağlık bakım taleplerinin yönetiminde kullanılmıştır. Diğer taraftan blockchain teknolojisi ekonomik krizde tedarik zincirlerinde karşılaşılan problemlerin çözümünde kullanılmasının yanı sıra ürün veya hizmetin kökeni ve dönüşüm süreci hakkında izlenebilirlik ve şeffaflık sağlamıştır.
  5. Büyük Veri ve Yapay Zekâ: Sağlı krizinde veri analizleri, aşı ve model geliştirme alanlarında kullanılmıştır. Diğer taraftan ekonomik krizde üretim hattının hızlı bir şekilde değiştirilebilmesi için endüstriyel tesislerin dijital ikizinin oluşturulması, veri ve trend analizleri ile talep tahminlerinde büyük veri veya yapay zekâdan yararlanılmıştır.
  6. Nesnelerin İnterneti: Sağlı krizinde halk sağlığı verisinin toplanması, binalar içerisindeki hava kalitesinin analiz edilmesi ve kritik gıdaların taşınmasında kolaylık sağlamıştır. Diğer taraftan ekonomik krizde doğruluk oranı artırma, cevap süresini kısaltma ve müşteri tercih ve ihtiyaçlarını anlamada nesnelerin internetinden yararlanılmıştır.

Bu örnekler, Dördüncü Sanayi Devrimi’nin rolünün mevcut kriz ışığında nasıl değiştiğini göstermektedir. Şimdiye kadar, Dördüncü Sanayi Devrimi’nin baskın odak noktası öncelikle maliyet optimizasyonu, verimliliği artırma veya rekabet avantajı kazanma gibi konular olmuştur. Ancak Covid-19 pandemisi dijital dönüşüme ve yenilikçi çözümlere bakış açısını bir ölçüde değiştirmiştir. Bu kriz, başta sağlık olmak üzere temel hizmetlerin ve tedarik zincirlerinin sürdürülebilirliğini sağlamak, öngörülemeyen şoklara karşı toplumsal direnci ve iş direncini artırmak açısından dijital dönüşüme ve yenilikçi çözümlere kapı aralamıştır. Bununla birlikte söz konusu kriz yeni sektörlerin doğuşuna imkân tanıyarak yeni işletmelerin kurulmasını sağlamış ve bu süreci hızlandırmıştır. Örneğin, Covid-19 aşı çalışmaları ve bu alana yapılan yatırımların sürekli artış göstermesi kurulan firma ve çalışan sayılarını artırmıştır.  Diğer bir ifadeyle Covid-19 pandemisinin küresel ölçekte getirdiği “yeni normal”, dijital dönüşümün yönünü etkilemiş, hızını ise artırmıştır. Özetle, Covid-19 pandemik krizi beraberinde dijital dönüşümde de yeni normali getirmiştir. Dijital dönüşümdeki bu “yeni normal” insan mobilitesini azaltarak çevrenin korunmasına ve sürdürülebilirliğinin sağlanmasına da katkıda bulunacaktır.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

Makalenin pdf versiyonunu aşağıdaki linkten indirebilirsiniz.

Yararlanılan Kaynaklar

Kritik Teknolojiler ve On Birinci Kalkınma Planı

Belki de kalkınma planları içerisinde 2019-2023 dönemini kapsayan 11. Kalkınma Planı, günümüzde ve yakın gelecekte anahtar rol oynayan ya da oynayacak teknolojileri içinde barındıran ve makul hedeflerle sınırları çizilmiş en iyi hazırlanmış kalkınma planlarından biri olduğu söylenebilir. Bundan kasıt, anılan kalkınma programında adı geçen kritik teknolojilere ve öncelikli sektörlere detaylı bir şekilde yer verilmiş olması ve belirlenen hedeflerin saha gerçekleri ile örtüşmesidir. Burada amaç, öncelikli sektörlerde ve alanlarda teknolojik dönüşümün sağlanabilmesi ve rekabet gücünün artırılması amacıyla önümüzdeki dönemde yüksek katma değer oluşturması beklenen kritik teknoloji alanlarında teknoloji üretme ve adaptasyon yeteneğinin geliştirilmesidir. Bu yazımızda kısaca 11. Kalkınma Planı’nda yer verilen kritik teknolojilerin neler olduğundan bahsedilmiştir.

Almanya’nın endüstri devrimi Sanayi 4.0 (Industry 4.0), Japonya’nın endüstri devrimi Toplum 5.0 (Society 5.0) olarak adlandırılmaktadır. Esasında her ikisi de dijital devrim olarak adlandırılabilir. Ancak aralarında odak noktaları bağlamında farklılıklar bulunmaktadır. Dolayısıyla devrimlere ilişkin bu tür adlandırılmalar ve devrimlerin çıkış noktaları için ülke gerçeklerine bakılması gerekir. Çok genel hatlarıyla, Sanayi 4.0 daha çok makinelere, diğer bir deyişle sanayinin dijitalleşmesine, Toplum 5.0 ise insanlara odaklandığı söylenebilir.

Ülkemizin endüstri devrimi ise ithal kavramlarından arındırılarak yerlilik, millilik ve özgünlük kavramları üzerine inşa edilerek “Milli Teknoloji Hamlesi (National Technology Move)” olarak adlandırılmıştır. Milli Teknoloji Hamlesi, ülkemizin küresel rekabet gücünü artıran, ekonomik ve teknolojik bağımsızlığını temin eden kritik teknolojilerde politika geliştirmeyi ilke edinmiştir. Aynı zamanda bir yaklaşımı ifade eden bu devrimin ilk başarılı örneği savunma sanayinde hayata geçirilen teknoloji geliştirme projeleridir.

Ülkemizin sanayi 4.0’ı veya toplum 5.0’ı olarak nitelendirilebilecek “Milli Teknoloji Hamlesi”nin gerçekleştirilmesine yönelik olarak 11. Kalkınma Planı’nda ele alınan kritik teknolojiler şöyledir:

  • Yapay zekâ (Artificial intelligence)
  • Nesnelerin interneti (Internet of things)
  • Artırılmış gerçeklik (Augmented reality)
  • Büyük veri (Big data)
  • Siber güvenlik (Cyber security)
  • Enerji depolama (Energy storage)
  • İleri malzeme (Advanced material)
  • Robotik (Robotics)
  • Mikro/nano/opto-elektronik (Micro / nano / opto-electronic)
  • Biyoteknoloji (Biotechnology)
  • Kuantum (Quantum)
  • Sensör teknolojileri ve katmanlı imalat teknolojileri (Sensor technologies and layered manufacturing Technologies)

Anılan kalkınma programı kapsamında bu kritik teknolojilerin gelişim yol haritalarının hazırlanması, gerekli altyapının tesis edilmesi, ihtiyaç duyulan nitelikli insan kaynağının yetiştirilmesi ve toplumsal yönelimin bu alanlara odaklanması sağlanması öngörülmektedir.

Kritik teknolojilerde insan gücü ile özel sektörün teknoloji geliştirme ve adaptasyon yeteneğine ilişkin mevcut durum analizini de kapsayan ve teknolojilerin gelişme potansiyeli ile uzun vadeli arz ve talep dinamiklerini dikkate alan teknoloji yol haritaları hazırlanması planlanmaktadır. Bu alanda atılacak adımlar adı geçen kalkınma planında 3 ana başlıkta ele alınabilir:

  1. İnsan gücü kapasitesinin geliştirilmesi
  2. Araştırma altyapısının güçlendirilmesi
  3. Özel sektör kapasitesinin geliştirilmesi

1. İnsan Gücü Kapasitesinin Geliştirilmesi

Kritik teknolojilerde insan gücü kapasitesi de artırılacaktır. Bu amaçla;

  • Kritik teknoloji alanlarına yönelik ihtiyaç duyulan yetenek ve yetkinlikler yapılacak bir analiz çalışması ile belirlenecektir. Bu yetenek ve yetkinliklerin karşılanmasına yönelik kritik teknolojilerde ihtisaslaşmış disiplinler arası lisans ve lisansüstü programlar açılacaktır.
  • Kritik teknoloji alanlarında yetkinliği kanıtlanmış yurt dışı eğitim kurumlarına diğer alanlara göre farklılaşan destek miktarlarıyla lisansüstü öğrenci gönderilmesine yönelik burs programları oluşturulacaktır.
  • Kritik teknolojilerde ihtisaslaşmış programı olan üniversitelerde yurt dışından yetkin akademisyen ve araştırmacıların kısmi zamanlı olarak çalışması teşvik edilecektir.

2. Araştırma Altyapısının Güçlendirilmesi

Kritik teknolojilerde araştırma altyapısı güçlendirilecektir. Bu amaçla, kritik teknolojilerde ihtisaslaşmış programı olan üniversitelerin laboratuvar altyapısının bu teknolojilere yönelik Ar-Ge çalışmalarının ihtiyaçlarına göre geliştirilmesi sağlanacaktır.

3. Özel Sektör Kapasitesinin Geliştirilmesi

Kritik teknolojilerde özel sektörün kapasitesi de geliştirilecektir. Bu amaçla;

  • Kritik teknoloji alanlarında yenilikçi girişimcilere özel Ar-Ge destek programı oluşturulacaktır.
  • Büyük ölçekli firmaların ürün geliştirmeye yönelik olarak kritik teknoloji alanlarında yapacağı Ar-Ge çalışmalarını üniversite veya kamu araştırma kurumlarıyla gerçekleştirmesi halinde, projenin girişimciye yansıyan maliyetinin belirli bir bölümü kamu tarafından karşılanacaktır.
  • Özel sektörün kritik teknolojilerde yürüteceği ortak Ar-Ge projelerine, altyapı kullanımına ve insangücü yetiştirilmesine yönelik oluşturduğu işbirlikleri desteklenecektir.
  • Kritik teknoloji alanlarında Ar-Ge ve yenilik işbirliği yapılacak stratejik ülkeler belirlenecek, bu ülkeler ile özel sektör-üniversite; özel sektör-özel sektör işbirliklerini içeren ikili ve çoklu Ar-Ge ve yenilik işbirlikleri desteklenecektir.

Ülkemizde sayılan bu kritik teknoloji alanlarında dışa bağımlılığı azaltmak yönünde önemli adımlar atılmaktadır ancak çok daha fazlasına ihtiyaç duyulduğu da aşikardır.

Tükettiğimiz teknolojiye değil ancak ürettiğimiz teknolojiye hükmedebileceğimizi unutmamak her şeyin başında gelmektedir. Diğer bir deyişle, hükmedebildiğimiz ölçüde bağımsız oluruz. Bunun en güzel örneği ülkemizde yerli ve milli imkânlarla üretilen teknolojilerin bulunduğu savunma sanayi sektöründe görülmektedir. Suriye’deki kullanılan ülkemiz tarafımızdan geliştirilmiş silahlı ve silahsız insansız hava araçları (SİHA ve İHA’lar), ingilizce ifadeyle armed or unmanned aerial vehicles (AUAVs ve UAVs), Türk Silahlı Kuvvetleri’mize büyük operasyonel avantaj sağlamaktadır. Drone olarak da adlandırılan bu araçlar yarı otonom veya tam otonom olabilmektedir.

Ancak bulunduğumuz çoğrafya, iç ve dış tehditler dikkate alındığında başta savunma sanayi sektörü olmak üzere diğer sektörlerle birlikte özgün, yerli ve milli teknolojik ürün geliştirilerek teknolojik bağımsızlığı elde etmek ve geliştirilen teknolojiye hükmetmek mümkündür. Bunun tersi bir durum teknolojik bağımlılık ve dışa bağımlılık anlamına gelir ki, bu ifadenin geçerliliğini ortaya koyan uluslararası arenada ülkemizin ve diğer ülkelerin karşılaştığı sayısız örnek bulunmaktadır. Diğer bir durum, teknolojik bağımlılık bazen bir öyle bir seviyeye gelir ki; ekonomik kaynaklar içeride üretilemeyen teknolojiyi satın almaya yetse de bu teknolojileri elinde bulunduranlar bunları muhafaza etmekte ve stratejik amaçlar için diğer ülkeler aleyhine bir silah olarak kullanılabilmektedir. Tıpkı yabancı ülkelerden birinin F35 savaş uçakları ve patriot hava savunma sistemleri konusunda Ülkemize karşı izlenen strateji bunun en güzel örneklerinden birini göstermektedir.

Ulus olarak zengin bir ülke olsanız ya da teknolojiyi satın alabilecek güce sahip olsanız da üretken bir ülke değilseniz bağımlısınız, dolayısıyla bağımsız değilsinizdir. Dolayısıyla zenginlik de teknolojiyle üretime dönüştürülmedikçe ve aynı kaldığı sürece o bağımsızlık da sürdürülebilir değildir. Burada bahsedilen zenginlik doğal kaynaklar olabileceği gibi insan kaynağı da olabilir. Bütüncül bir yaklaşımla değerlendirildiğinde artık teknoloji bir ulusun gücünü göstermekle kalmayıp aynı zamanda kimliğini ve bağımsızlığını da belirlemektedir.

Özetle, 11. Kalkınma Planı’ndaki günümüzün ve geleceğin toplumlarının ve ekonomilerinin şekillenmesinde çok önemli bir yere sahip kritik teknoloji konu alanlarından ve teknolojik bağımsızlığın ülkeler açısından öneminden kısaca bahsedilerek farkındalık oluşturulması amaçlanmıştır.

Bilimle ve teknolojiyle kalınız.

Yararlanılan Kaynaklar

https://powerstar.com/virtue/what-is-energy-storage/

OnbirinciKalkinmaPlani.pdf erişimi için tıklayın

https://www.sanayi.gov.tr/anasayfa

https://www.rand.org/topics/unmanned-aerial-vehicles.html

https://airandspace.si.edu/exhibitions/military-unmanned-aerial-vehicles-uav

Prediction of Birth Rates in the USA Using LM, ANN, SVMs Methods

Introduction

The aim of this study is to predict the birth rate from the data sets of United States Department of Agriculture (Economic Research Service) and the United States’ Census Bureau using different analysis methods. The methods used in the regression problem are linear regression (LM), artificial neural network (ANN), radial, and linear support vector machines (SVMs).

SVMs are dealt with in the supervised learning class of artificial intelligence (AI) and machine learning (ML). In this analysis, ANN method can be considered as DNN (Deep Neural Network) because it has ANN architecture with more than one hidden layer. In the other hand, DNN can be evaluated in the supervised learning class of AI, and in in the field of deep learning (DL).

The results indicate that when Mean Square Error (MSE) and Mean Absolute Error (MAE) error types are compared, the SVM method including the radial basis parameter predicts the birth rates better than the other methods.

Sources of data sets utilized in analysis are given below

  1. https://www.ers.usda.gov/data-products/county-level-data-sets/download-data/
  2. https://www.census.gov/data/tables/time-series/demo/popest/2010s-state-detail.html
  3. https://www.census.gov/data/tables/time-series/demo/health-insurance/acs-hi.2017.htmlNA (Not Available) values are removed from data set.

Data set is consisted of 3141 observations of 11 variables. The variables selected in the analysis are listed below.

  1. Birth_Rate (Target Variable or Dependent Variable)
  2. Death_Rate
  3. Net_Migration_Rate
  4. Unemployment_Rate
  5. less_high_school
  6. high_school
  7. associate
  8. bachelor_or_higher
  9. Poverty_Percent
  10. Marriage_Rate
  11. Percent_Uninsured

The procedures and methods used in the analysis are explained step by step in the next sections.

Loading libraries

rm(list=ls())

lapply(c("xlsx","dplyr", "tibble", "tidyr", "ggplot2", "GGally","NeuralNetTools" ,"neuralnet", "formattable", "performanceEstimation", "e1071", "DMwR", "caret"), require, character.only = TRUE)

Loading data set

df <- read.xlsx('data_end_2017.xlsx', sheetName='data')

Defining variables in Tibble and data cleaning

df1<-tibble(Birth_Rate=round(df$Birth_Rate,1), Death_Rate=round(df$Death_Rate, 1),Net_Migration_Rate=round(df$Net_Migration_Rate, 1), Unemployment_Rate=df$Unemployment_Rate,less_high_school=df$V5, high_school=df$V6, associate=df$V7, bachelor_or_higher=df$V8, Poverty_Percent=df$Poverty_Percent, Marriage_Rate=round(df$Marriage_Rate, 1), Percent_Uninsured=df$Percent_Uninsured)

formattable(tibble(ID=1:11, Variables=names(df1))) #Names of variables

str(df1)#3142 observations of  11 variables

df1<-df1 %>% drop_na()#Removing NA (Not Available) values from data set

str(df1)##3141 observations of  11 variables

dim(df1)# Dimensions of data sets: 3141   11

summary(df1)

head(df1)

Names of variables

Data types of variables and number of observations after removing NA values

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':	3141 obs. of  11 variables:
 $ Birth_Rate        : num  11.9 10.9 10.7 12 11.5 12.2 11.7 11.4 10.8 8.4 ...
 $ Death_Rate        : num  9.3 10.1 11.7 9.7 12.4 11.3 13.1 12.6 13.6 13.8 ...
 $ Net_Migration_Rate: num  1 22.5 -25 -3.1 6.4 -21 -5.2 -1.8 2.5 6.9 ...
 $ Unemployment_Rate : num  3.9 4.1 5.8 4.4 4 4.9 5.5 5 4.1 4.1 ...
 $ less_high_school  : num  12.3 9.8 26.9 17.9 20.2 28.6 18.9 16.8 19.1 20.5 ...
 $ high_school       : num  33.6 27.8 35.5 43.9 32.3 36.6 40.4 32.2 38.4 38.2 ...
 $ associate         : num  29.1 31.7 25.5 25 34.4 21.4 24.5 33.1 29.1 28.9 ...
 $ bachelor_or_higher: num  25 30.7 12 13.2 13.1 13.4 16.1 17.9 13.3 12.5 ...
 $ Poverty_Percent   : num  13.4 10.1 33.4 20.2 12.8 34.4 21.3 17.7 18.2 17.2 ...
 $ Marriage_Rate     : num  7 7 7 7 7 7 7 7 7 7 ...
 $ Percent_Uninsured : num  16 16 16 16 16 16 16 16 16 16 ...

Descriptive statistics of variables

   Birth_Rate      Death_Rate    Net_Migration_Rate Unemployment_Rate
 Min.   : 0.00   Min.   : 1.20   Min.   :-68.3000   Min.   : 1.500   
 1st Qu.: 9.90   1st Qu.: 8.60   1st Qu.: -5.4000   1st Qu.: 3.500   
 Median :11.30   Median :10.40   Median :  0.5000   Median : 4.300   
 Mean   :11.38   Mean   :10.27   Mean   :  0.9654   Mean   : 4.598   
 3rd Qu.:12.60   3rd Qu.:12.10   3rd Qu.:  7.5000   3rd Qu.: 5.300   
 Max.   :28.80   Max.   :21.30   Max.   :150.2000   Max.   :19.600   
 less_high_school  high_school      associate     bachelor_or_higher
 Min.   : 1.10    Min.   : 7.30   Min.   : 8.80   Min.   : 4.70     
 1st Qu.: 9.00    1st Qu.:30.00   1st Qu.:27.00   1st Qu.:14.70     
 Median :12.40    Median :34.80   Median :30.60   Median :19.00     
 Mean   :13.81    Mean   :34.42   Mean   :30.56   Mean   :21.21     
 3rd Qu.:17.70    3rd Qu.:39.40   3rd Qu.:34.00   3rd Qu.:25.30     
 Max.   :58.70    Max.   :54.90   Max.   :46.70   Max.   :78.10     
 Poverty_Percent Marriage_Rate   Percent_Uninsured
 Min.   : 3.00   Min.   : 5.50   Min.   : 3.00    
 1st Qu.:10.90   1st Qu.: 6.00   1st Qu.:11.00    
 Median :14.40   Median : 6.80   Median :15.00    
 Mean   :15.38   Mean   : 6.86   Mean   :18.66    
 3rd Qu.:18.40   3rd Qu.: 7.10   3rd Qu.:23.00    
 Max.   :56.70   Max.   :28.60   Max.   :48.00  

Scatter pair plots of variables: Base mode

pairs(df1[,1:4], pch = 18, cex = 1, col=as.factor(1:3), lower.panel=NULL)

pairs(df1[,c(1,5:8)], pch = 18, cex = 1, col=as.factor(1:3), lower.panel=NULL)

pairs(df1[,c(1,9:11)], pch = 18, cex = 1, col=as.factor(1:2), lower.panel=NULL)

Plot 1: Scatter pair plots of variables: Base mode

Plot 2: Scatter pair plots of variables: Base mode

Plot 3: Scatter pair plots of variables: Base mode

Scatter pair plots and correlation coefficients: Ggpairs mode

ggpairs(df1[,1:4])
ggpairs(df1[,c(1,5:8)])
ggpairs(df1[,c(1,9:11)])

Plot 1: Scatter pair plots and correlation coefficients: Ggpairs mode

Plot 2: Scatter pair plots and correlation coefficients: Ggpairs mode

Plot 3: Scatter pair plots and correlation coefficients: Ggpairs mode

Splitting data set into training and test sets

Data set is splitted into training (70%) and test (30%) sets by simple random sampling (SRS) without replacement.

set.seed(1150)
n=NROW(df1)

SRS<-sample(sample(1:n, size = round(0.7*n), replace=FALSE))
training<-df1[SRS,]
test<-df1[-SRS, ]

Building Linear Model (LM) and Predicting

lm.fit <- glm(Birth_Rate~., data=training)
summary(lm.fit)

pr.lm <- predict(lm.fit,test)

Summary of LM

Call:
glm(formula = Birth_Rate ~ ., data = training)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-12.6431   -1.2701    0.0494    1.2338   17.5226  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        -1.210336  86.506626  -0.014    0.989    
Death_Rate         -0.196533   0.022653  -8.676  < 2e-16 ***
Net_Migration_Rate -0.040544   0.004030 -10.061  < 2e-16 ***
Unemployment_Rate  -0.069103   0.036281  -1.905    0.057 .  
less_high_school    0.238640   0.864714   0.276    0.783    
high_school         0.090654   0.865317   0.105    0.917    
associate           0.201731   0.865124   0.233    0.816    
bachelor_or_higher  0.123188   0.865118   0.142    0.887    
Poverty_Percent     0.019001   0.012121   1.568    0.117    
Marriage_Rate      -0.012984   0.031243  -0.416    0.678    
Percent_Uninsured  -0.022913   0.004762  -4.812  1.6e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 5.620194)

    Null deviance: 14742  on 2198  degrees of freedom
Residual deviance: 12297  on 2188  degrees of freedom
AIC: 10050

Number of Fisher Scoring iterations: 2

Building Artificial Neural Network (ANN) Model

nn<- neuralnet(Birth_Rate ~ Death_Rate + Unemployment_Rate + Net_Migration_Rate+less_high_school+high_school+high_school+associate+bachelor_or_higher+Poverty_Percent+Marriage_Rate+Percent_Uninsured, training, hidden=c(3,2), linear.output=T, threshold=0.01) 

summary(nn)

nn$result.matrix#Generating the error of the neural network model

plot(nn)#ANN Architecture

plotnet(nn, cex_val = 1, alpha_val = 1, prune_lty = "dashed")#NN Architecture

Summary of ANN

                    Length Class      Mode    
call                    6  -none-     call    
response             2199  -none-     numeric 
covariate           21990  -none-     numeric 
model.list              2  -none-     list    
err.fct                 1  -none-     function
act.fct                 1  -none-     function
linear.output           1  -none-     logical 
data                   11  data.frame list    
exclude                 0  -none-     NULL    
net.result              1  -none-     list    
weights                 1  -none-     list    
generalized.weights     1  -none-     list    
startweights            1  -none-     list    
result.matrix          47  -none-     numeric

Generating error of ANN model

error                           7.190738e+03
reached.threshold               9.953213e-03
steps                           5.492700e+04
Intercept.to.1layhid1          -1.420848e+00
Death_Rate.to.1layhid1          1.729804e+00
Unemployment_Rate.to.1layhid1   3.007492e-01
Net_Migration_Rate.to.1layhid1 -4.764154e-01
less_high_school.to.1layhid1    8.628385e-01
high_school.to.1layhid1         1.072833e+00
associate.to.1layhid1           1.401955e+00
bachelor_or_higher.to.1layhid1 -1.783482e-01
Poverty_Percent.to.1layhid1    -9.234006e-01
Marriage_Rate.to.1layhid1      -4.927336e-01
Percent_Uninsured.to.1layhid1   2.478482e+00
Intercept.to.1layhid2           2.723703e-01
Death_Rate.to.1layhid2         -1.700317e+00
Unemployment_Rate.to.1layhid2   5.703225e-01
Net_Migration_Rate.to.1layhid2 -2.078499e+00
less_high_school.to.1layhid2   -1.010006e+00
high_school.to.1layhid2         1.714122e+00
associate.to.1layhid2           4.837800e-01
bachelor_or_higher.to.1layhid2  1.039985e+00
Poverty_Percent.to.1layhid2     9.512370e-01
Marriage_Rate.to.1layhid2      -5.561333e-01
Percent_Uninsured.to.1layhid2  -3.077538e-01
Intercept.to.1layhid3          -1.322371e+00
Death_Rate.to.1layhid3         -7.556517e-01
Unemployment_Rate.to.1layhid3   4.942474e-01
Net_Migration_Rate.to.1layhid3 -3.532218e-01
less_high_school.to.1layhid3    1.597219e-01
high_school.to.1layhid3         5.478689e-01
associate.to.1layhid3           1.378378e+00
bachelor_or_higher.to.1layhid3  1.820102e-01
Poverty_Percent.to.1layhid3     1.701603e+00
Marriage_Rate.to.1layhid3      -5.974305e-02
Percent_Uninsured.to.1layhid3   8.631418e-01
Intercept.to.2layhid1          -5.147527e+00
1layhid1.to.2layhid1           -6.029849e+00
1layhid2.to.2layhid1            1.672761e+02
1layhid3.to.2layhid1           -5.579418e+00
Intercept.to.2layhid2           1.244695e+01
1layhid1.to.2layhid2            1.278534e+01
1layhid2.to.2layhid2            1.912635e+00
1layhid3.to.2layhid2            1.174542e+01
Intercept.to.Birth_Rate         4.943155e+00
2layhid1.to.Birth_Rate          3.305572e+00
2layhid2.to.Birth_Rate          3.178053e+00

ANN architecture with two hidden layers

Importance levels of variables in ANN model

In the ANN model, importance levels of variables are calculated using “olden” function because of multiple hidden layers (hidden=c(3,2)), and given below.

olden(nn)+ theme(axis.text.x = element_text(angle = 90, hjust = 1))#Variable importance in ANNs including multiple hidden layers 

Importance levels of variables in ANN model

Predicting Birth Rate using ANN

predict_nn <- compute(nn,test[,2:11])

Building SVM (Support Vector Machine) model with Radial Basis parameter, and Prediction

model1 <- svm(Birth_Rate~ ., training, kernel="radial", cost=1, epsilon=0.1, gamma=0.1)

summary(model1)

pred1 <- predict(model1, test)

Summary of SVM with Radial Basis parameter

Call:
svm(formula = Birth_Rate ~ ., data = training, kernel = "radial", 
    cost = 1, epsilon = 0.1, gamma = 0.1)


Parameters:
   SVM-Type:  eps-regression 
 SVM-Kernel:  radial 
       cost:  1 
      gamma:  0.1 
    epsilon:  0.1 


Number of Support Vectors:  1902

Building SVM (Support Vector Machine) model with Linear parameter, and Prediction

model1 <- svm(Birth_Rate~ ., training, kernel="linear")

pred2 <- predict(model1, test)

summary(model1)

Summary of SVM with Linear parameter

Call:
svm(formula = Birth_Rate ~ ., data = training, kernel = "linear")


Parameters:
   SVM-Type:  eps-regression 
 SVM-Kernel:  linear 
       cost:  1 
      gamma:  0.1 
    epsilon:  0.1 


Number of Support Vectors:  1929

Validation Tests by Methods

1.Cross Validation for LM

r <- performanceEstimation(
  PredTask(Birth_Rate ~ .,df1),
  workflowVariants(learner = "lm",
                   learner.pars = list(se = c(0, 0.25, 0.5, 1, 2))),
  EstimationTask(metrics = c("mse", "mae"),
                 method = CV(nReps = 3, nFolds = 10)))
rankWorkflows(r, top = 1)

getWorkflow("lm.v1", r)# AVG MSE: 5.61858 and AVG MAE:1.673429

plot(r)

Average MSE, and average MAE for LM model

$df1.Birth_Rate
$df1.Birth_Rate$mse
  Workflow Estimate
1    lm.v1 5.613821

$df1.Birth_Rate$mae
  Workflow Estimate
1    lm.v1 1.674253

Plotting MSE and MAE values for LM model

2. Cross Validation for ANN

#Repeated k-fold Cross Validation
train_control <- trainControl(method="repeatedcv", number=10, repeats=3)

# Train the model
model <- train(Birth_Rate~., data=df1, trControl=train_control, method="nnet")

print(model)

Average MAE for ANN model

It is used Repeated k-fold Cross Validation (NN) as validation test in package “caret” insead of “performanceEstimation” package.

initial  value 403331.122522 
final  value 359465.140000 
converged
Neural Network 

3141 samples
  10 predictor

No pre-processing
Resampling: Cross-Validated (10 fold, repeated 3 times) 
Summary of sample sizes: 2827, 2827, 2826, 2827, 2828, 2827, ... 
Resampling results across tuning parameters:

  size  decay  RMSE      Rsquared     MAE     
  1     0e+00  10.69727          NaN  10.38151
  1     1e-04  10.69727  0.002990157  10.38151
  1     1e-01  10.69729  0.018808431  10.38152
  3     0e+00  10.69727          NaN  10.38151
  3     1e-04  10.69727  0.024056622  10.38151
  3     1e-01  10.69728  0.017597580  10.38152
  5     0e+00  10.69727          NaN  10.38151
  5     1e-04  10.69727  0.011161407  10.38151
  5     1e-01  10.69728  0.022457815  10.38151

RMSE was used to select the optimal model using the smallest value.
The final values used for the model were size = 1 and decay = 0.

3. Cross Validation for SVM (Support Vector Machine) with Radial Basis parameter

pr1 <- performanceEstimation(
 PredTask(Birth_Rate ~ .,df1),
 workflowVariants(learner="svm",
                  learner.pars=list(kernel="radial",cost=1, epsilon=0.1, gamma=0.1)),
 EstimationTask(metrics = c("mse", "mae"),
                 method = CV(nReps = 3, nFolds = 10)))
summary(pr1)# AVG MSE:5.0181919 and AVG MAE:1.52361665

rankWorkflows(pr1, top = 1)

getWorkflow("svm", pr1)

plot(pr1)

Average MSE, and average MAE for SVM (Support Vector Machine) with Radial Basis parameter

-> Task:  df1.Birth_Rate
  *Workflow: svm 
              mse        mae
avg     5.0237890 1.52349784
std     0.7941622 0.08445783
med     4.8739686 1.51075518
iqr     0.9747409 0.10690584
min     3.5181964 1.37328251
max     6.4726952 1.71792661
invalid 0.0000000 0.00000000
$df1.Birth_Rate
$df1.Birth_Rate$mse
  Workflow Estimate
1      svm 5.023789

$df1.Birth_Rate$mae
  Workflow Estimate
1      svm 1.523498


Workflow Object:
	Workflow ID       ::  svm 
	Workflow Function ::  standardWF
	     Parameter values:
		 learner.pars  -> kernel=radial cost=1 epsilon=0.1 gamma=0.1 
		 learner  -> svm 

Plotting MSE and MAE values for SVM (Support Vector Machine) with Radial Basis parameter

4. Cross Validation for SVM (Support Vector Machine) with Linear parameter

pr1 <- performanceEstimation(
 PredTask(Birth_Rate ~ .,df1),
 workflowVariants(learner="svm",
                  learner.pars=list(kernel="linear")),
 EstimationTask(metrics = c("mse", "mae"),
                 method = CV(nReps = 3, nFolds = 10)))
summary(pr1)# AVG MSE:5.671183 and AVE MAE:1.6563516

rankWorkflows(pr1, top = 1)

getWorkflow("svm", pr1)

plot(pr1)

Average MSE, and average MAE for SVM (Support Vector Machine) with Linear parameter


##### PERFORMANCE ESTIMATION USING  CROSS VALIDATION  #####

** PREDICTIVE TASK :: df1.Birth_Rate

++ MODEL/WORKFLOW :: svm 
Task for estimating  mse,mae  using
 3 x 10 - Fold Cross Validation
	 Run with seed =  1234 
Iteration :******************************

== Summary of a  Cross Validation Performance Estimation Experiment ==

Task for estimating  mse,mae  using
 3 x 10 - Fold Cross Validation
	 Run with seed =  1234 

* Predictive Tasks ::  df1.Birth_Rate
* Workflows  ::  svm 

-> Task:  df1.Birth_Rate
  *Workflow: svm 
              mse        mae
avg     5.6742841 1.65745175
std     0.8087646 0.08828428
med     5.7814504 1.66599466
iqr     1.0277489 0.12239844
min     4.1506266 1.51514278
max     7.1174248 1.81856657
invalid 0.0000000 0.00000000
$df1.Birth_Rate
$df1.Birth_Rate$mse
  Workflow Estimate
1      svm 5.674284

$df1.Birth_Rate$mae
  Workflow Estimate
1      svm 1.657452


Workflow Object:
	Workflow ID       ::  svm 
	Workflow Function ::  standardWF
	     Parameter values:
		 learner.pars  -> kernel=linear 
		 learner  -> svm 

Plotting MSE and MAE values for SVM (Support Vector Machine) with Linear parameter

The models built were validated using “performanceEstimation” and “caret” packages. As validation test,  Repetitive k-Fold cross validation test (nReps = 3) was used. The MAE and MSE results of the methods used are given in the table 1 below after being presented code block.

Method<-c("LM", "ANN", "SVM Radial", "SVM Linear")
MSE<-list(5.61858, "Not available in packages caret and performanceEstimation",5.0181919,5.671183)
MAE<-c(1.673429, 10.38152,1.52361665,1.6563516)
formattable(tibble(Method=Method, MSE=MSE, MAE=MAE))

Table 1: The MAE and MSE Results of the Methods by Validation Tests

Plotting the results of actual and predicted birth rates by methods

Visual comparison of performance of methods is conducted in terms of actual test values and predicted ones, and were shown below.

#ANN: Comparison of actual and predictive birth rates
results <- data.frame(actual = test$Birth_Rate, predictionNN = round(predict_nn$net.result,1))

#LM: Comparison of actual and predictive birth rates
results1 <- data.frame(actual = test$Birth_Rate, predictionLM = round(pr.lm,1))

#SVM with Radial Basis Parameter: Comparison of actual and predictive birth rates
results3 <- data.frame(actual = round(test$Birth_Rate,1), predictionSVMKernel = round(pred1,1))

#SVM with Linear Parameter: Comparison of actual and predictive birth rates
results4 <- data.frame(actual = round(test$Birth_Rate,1), predictionSVMLinear = round(pred2,1))

comp<-cbind(Birth_Rate=results[,1],NN=results[,2], LM=results1[, 2], SVMRadial=results3[, 2], SVMLinear=results4[, 2])

comparison<-formattable(as_tibble(comp))

plot(test$Birth_Rate,predict_nn$net.result,col='red',main='Real vs predicted NN',pch=18,cex=0.7, xlab="Birth Rate", ylab = "Prediction" )
points(test$Birth_Rate, pr.lm,col='blue',pch=18,cex=0.7) 
points(test$Birth_Rate, comparison$SVMRadial,col='brown',pch=18,cex=0.7)
points(test$Birth_Rate, comparison$SVMLinear,col='green',pch=18,cex=0.7) 
abline(0,1,lwd=2)
legend("topright",legend=c('NN','LM', 'SVMRadial','SVMLinear'),pch=18,col=c('red','blue', 'brown', 'green'))

Writing results containing actual and predicted birth rates by method into the file with “xlsx” extension

write.xlsx(comparison, file = "comparison_results.xlsx", 
           sheetName="results", append=TRUE)

The file called “comparison_results” actual and predicted birth rates by method can be downloaded from the link below.

Showing first ten findings containing actual and predicted values by method

After being presented code block, the first ten rows of actual and predicted birth rates by method used are given in Table 2.

formattable(head(comparison,10))

Table 2: The First Ten Findings Containing Actual and Predicted Birth Rates by Method

Conclusion

As can be seen from the validation test results in the Table 1 above, SVM including Radial Basis Parameter is the best method in terms of MAE and MSE values obtained. Therefore, it is recommended that SVM with Radial Basis Parameter can be used in prediction of birth rates.

Hope to be useful and raise awareness.

Note: It can not be cited or copied without referencing.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

References

  1. https://www.ers.usda.gov/data-products/county-level-data-sets/download-data/
  2. https://www.census.gov/data/tables/time-series/demo/popest/2010s-state-detail.html
  3. https://www.census.gov/data/tables/time-series/demo/health-insurance/acs-hi.2017.html
  4. https://www.r-project.org/
  5. https://datascienceplus.com/neuralnet-train-and-test-neural-networks-using-r/
  6. http://cs229.stanford.edu/notes/cs229-notes3.pdf
  7. http://www.cs.columbia.edu/~kathy/cs4701/documents/jason_svm_tutorial.pdf
  8. http://svms.org/tutorials/BurbidgeBuxton2001.pdf
  9. https://course.ccs.neu.edu/cs5100f11/resources/jakkula.pdf
  10. https://med.nyu.edu/chibi/sites/default/files/chibi/Final.pdf
  11. http://ijarcet.org/wp-content/uploads/IJARCET-VOL-1-ISSUE-10-185-189.pdf
  12. http://www.ijastnet.com/journals/Vol_7_No_2_June_2017/2.pdf
  13. https://www.demographic-research.org/volumes/vol20/25/20-25.pdf
  14. https://www.hindawi.com/journals/cmmm/2013/487179/
  15. http://www.cinc.org/Proceedings/2005/pdf/0247.pdf
  16. https://scialert.net/fulltext/?doi=jai.2016.33.38
  17. https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2894370
  18. https://www.ijeat.org/wp-content/uploads/papers/v9i1/A9386109119.pdf
  19. https://www.ijitee.org/wp-content/uploads/papers/v8i9S/I11460789S19.pdf
  20. https://biomedpharmajournal.org/vol11no3/emg-signal-analysis-for-diagnosis-of-muscular-dystrophy-using-wavelet-transform-svm-and-ann/
  21. https://canvas.harvard.edu/courses/12656/files/3151019/download?verifier=62k2w6mW3Glg0caFIRHfXACHlC0iS5JzwJTfTZZr&wrap=1
  22. https://scholar.harvard.edu/files/javierzazo/files/svms.pdf

YAPAY ZEKÂ

Günümüzde yapay zekâ alanındaki gelişmeler baş döndürücü hızda artış göstermektedir. Otonom otomobillerden video oyunlarına, sağlıktan savunma sanayine yaşamın pek çok alanında önemli bir rol oynamaya başlamıştır.

YAPAY

Yapay, simüle edilen gerçek olmayan bir şeydir. Örneğin yapay olarak düşünebilecek şeylerden biri yapay organdır. Çeşitli nedenlerden dolayı gerçek organın yerine ikame edilerek kullanılır. Yeterli organ donörü bulunamamasından kaynaklı olarak yapay organ, kalp, karaciğer gibi organ yetmezliği durumunda sıklıkla kullanılabilmektedir. Burada vurgulanmak istenen nokta, bir şeyin gerçeği yokken neden yapay bir şeyle ikame edilmek istenmesidir.

ZEKÂ

Zekâ, kompleks bir kavramdır. Pek çok farklı açıdan ele alınabilen zekâ, bazılarına göre mantık, anlama, farkına varma, sınıflama, tümevarım, tümdengelim, öğrenme, planlama, yaratıcılık olarak tanımlansa da bazılarına göre ise problem çözme olarak tanımlanabilmektedir. İnsana özgü zekâ, Türk Dil Kurumu (TDK)’na göre insanın düşünme, akıl yürütme, objektif gerçekleri algılama, yargılama ve sonuç çıkarma yeteneklerinin tamamıdır. Bir diğer tanımda Gardner’a göre insan zekâsı, problem çözme kapasitesi olarak tanımlanmıştır.

YAPAY ZEKÂ

Yapay zekâ, insan beyninin işleyişini akıllı bilgisayar programlarıyla modelleme ve modellenen bu programların akıllı makinelere aktarma bilimi ve mühendisliğidir. Bu kavram, geliştirilmiş bilgisayar zekâsı olarak da tanımlanabilir. 1950’de ortaya konmuş bir kavramdır.

YAPAY ZEKÂ VE İNSAN ZEKÂSI ARASINDAKİ FARKLAR

İnsan zekâsı ile bugün gelinen noktadaki yapay zekâ arasında belirgin farklılıklar öne çıktığı görülmektedir. Öne çıkan bu farklılıklar Tablo 1’de özetlenmiştir.

Tablo 1. Yapay Zekâ ve İnsan Zekâsı Arasındaki Farklar

Yetenekler İnsan Zekâsı Yapay Zekâ
Sensörleri kullanma (Koku, dokunma, işitme, görme) Yüksek Düşük
Yaratıcı düşünme Yüksek Düşük
Deneyimlerden öğrenme Yüksek Düşük
Adapte olma Yüksek Düşük
Bilgi kaynaklarını kullanma Yüksek Düşük
Büyük çapta bilgi edinebilme Yüksek Düşük
Kompleks hesaplamaları yapabilme Düşük Yüksek
Bilgiyi transfer edebilme Düşük Yüksek
Doğru ve hızlı bir şekilde bir dizi hesaplamaları yapabilme Düşük Yüksek

YAPAY ZEKÂ DİSİPLİNLERİ

Bilgisayar bilimi, biyoloji, dil bilimi, psikoloji, matematik ve mühendislik disiplinleri üzerine inşa edilmiş yapay zekâ, içinde makine öğrenme ve derin öğrenme branşlarını da barındıran şemsiye kavram niteliğindedir.

YAPAY ZEKÂ ÖĞRENME TİPLERİ

Yapay zekâ algoritmaları genel olarak üç farklı tipte öğrenme gerçekleştirmektedir.

  • Denetimli Öğrenme (Supervised Learning) : Girdi verisinden öngörülebilen çıktı verisinin elde edildiği öğrenme tipidir. Günümüzde en yaygın kullanılan öğrenme tipidir. Yüz tanıma, ve veri analizleri alanında sıklıkla kullanılmaktadır.
  • Denetimsiz Öğrenme (Unsupervised Learning) : Veri hakkında keşfin yapıldığı öğrenme tipidir.Denetim öğrenme algoritmalarına örnek olarak kümeleme (clustering) algoritmaları örnek verilebilir.
  • Zorlamalı Öğrenme (Reinforcement Learning): Ödüllere, cezalara ve yanlışlara dayalı olan davranış odaklı öğrenme tipidir. Kaynak yönetimi, video oyunları ve endüstriyel simülasyon alanları kullanım alanlarına örnek gösterilebilir.

YAPAY ZEKÂNIN BRANŞLARI

Makine öğrenme (machine learning), istatistiksel teknikleri kullanarak deneyimlerle makinelere kendini geliştirme özelliği kazandıran yapay zekânın bir dalıdır.  Makine öğrenmenin veri madenciliği ve analizlerinde kullanılmasıyla birlikte 1980’lerde yaygınlık kazanmaya başlayan öğrenen sistemler bütünüdür.

Yapay zekâ içinde yer alan ve makine öğrenmenin yeni bir alanı olan derin öğrenme (deep learning) ise,çok tabakalı yapay sinir ağları (multi-layer artificial neural networks) ile öğrenmeye imkan tanıyan bir tekniktir. Derin öğrenme, büyük veri (big data) kavramının ve büyük ölçekli veri setlerinin ortaya çıkmasıyla birlikte 2010’dan sonra gelişmeye başlayan bir alandır. Yapay sinir ağları biyolojik sinir hücresinin fizyolojisinden ilham almakta ve onu modellemektedir. Şekil 1’de bir biyolojik sinir hücresinin yapısı, Şekil 2’de ise yapay bir sinir hücresinin yapısına yer verilmiştir.

Şekil 1. Biyolojik Sinir Hücresinin Yapısı

Kaynak: IBM

Şekil 1’de matematiksel ifadeyle, dentritler Şekil 2’de girdi verisi (input data ya da sinir girdileri)’ni, hücre gövdesi (cell body) ve sinapslar (synapses) Şekil 2’de toplam fonksiyonu (summing function)’nu ve aktivasyon fonksiyonu (activation function)’nu, akson (axon) ise Şekil 2’de çıktı verisi (output data)’ni belirtmektedir.

Şekil 2. Yapay Sinir Hücresinin Yapısı

Çok katmanlı sinir ağları, görüntü tanıma, ses tanıma ve doğal dil işleme gibi problemleri gibi birçok problemi çözen bir dizi algoritmalardır. Örneğin, derin öğrenme, strateji oyunu olan Go oyunu eski dünya şampiyonu Lee Sedol’u 2016 yılının başlarında yenen DeepMind’ın iyi bilinen AlphaGo algoritmasıdır. Derin öğrenme algoritması 2017 yılı başlarında da Go oyununda dünya şampiyonu olan Ke Jie’yi de yenmiştir. Burada, “Derin” terimi teknik bir terim olup, bir sinir ağında tabakaların sayısını ifade etmektedir. Basit bir yapay ağ bir gizli katmanı (hidden layer) içerisinde barındırırken, derin bir ağ birden fazla gizli katmanı içerisinde barındırmaktadır. Şekil 3’te çok katmanlı bir sinir ağının mimarisi gösterilmiştir. Şekil 3’te soldaki resimde tek katmanlı yapay bir sinir ağına, sağda ise çok katmanlı sinir ağına yer verilmiştir.

Şekil 3. Çok Katmanlı Bir Sinir Ağının Mimarisi

Kaynak: M. Mitchell Waldrop PNAS 2019;116:4:1074-1077

Çok katmanlı ağlar, veriyi daha az katmanlı ağlara göre daha çok matematiksel işlemden geçirir. Bu yüzden, çok katmanlı ağlarda kullanılan verinin eğitilmesi (training) hem daha uzun süre hem de daha çok matematiksel işlem gerektirmektedir. Hesaplama yoğunluğu derin öğrenmenin en önemli özelliklerinden biridir. Bundan dolayı derin öğrenme modellerini eğitmek için yeni nesil işlemcilere ihtiyaç duyulmaktadır.

YAPAY ZEKÂNIN EVRİMLERİ

Yapay zekâ ilk evriminden son evrimine kadar dört evrim geçirmiştir. Son aşama olan rasyonel hareket etmek günümüzde geçerli olan evrimin son aşamasını oluşturmaktadır. Genel hatlarıyla yapay zekâ evrimi dört aşamada özetlenebilir:

1. Aşama : İnsan gibi düşünmek

2. Aşama: Rasyonel düşünmek

3. Aşama: İnsan gibi hareket etmek

4. Aşama: Rasyonel hareket etmek

YAPAY ZEKÂNIN TEMEL AMAÇLARI

Yapay zekâ inşa edilirken gerçekleştirilmesi gereken iki amaç bulunmaktadır:

  • Uzman sistemler yaratmak: Akıllı davranış sergilemek, öğrenmek, göstermek, açıklamak ve tavsiyede bulunmak.
  •  Makinelere insan zekâsını adapte etmek: İnsanlar gibi anlayan, düşünen, öğrenen ve onların gibi davranabilen sistemler yaratmak.

YAPAY ZEKÂNIN TEMEL YETENEKLERİ

Yapay zekâdan bahsedilebilmesi için, diğer bir deyişle, yapay zekâyı yapay zekâ yapan temel yetenekler vardır. Bu temel yetenekler şöyle özetlenebilir:

  • Sorgulama
  • Öğrenme
  • Problem çözme
  • Algılama
  • Dilbilimsel zekâ

Görüleceği üzere bu yetenekler birebir insan zekâsı ile benzerlik göstermektedir. Alan Turing’in 1950 yılında yayınlanan  “Bilgisayar Mekanizması ve Zekâ” (Computing machinery and intelligence) adlı makalesinde, öğrenen makinelerden bahseden Turing bir makinenin zeki olup olmadığını saptamak için kendi adıyla literatüre geçen Turing Testi geliştirmiştir. Yapay düşünme üzerinde düşünmeye devam ettiği bu süre sonunda 1950 yılında “Bilgisayar Mekanizması ve Zekâ” (Computing machinery and intelligence) adındaki makalesini yayınlayan Turing, tekrar “Yapay Zekâ”ya ve düşünmeye işaret etmiş ve popüler olarak Turing testi olarak bilinen, bir makinenin “zeki” olup olmadığını saptayacak olan bir deney prensibi ortaya atmıştır. Ancak, Turing test, tekrarlanabilir ve matematiksel analize uygun değildir.

YAPAY ZEKÂNIN ARAŞTIRMA ALANLARI

Yapay zekânın araştırma alanları ise 5 başlık altında ele alınabilir:

  • Uzman Sistemler: Bu araştırma alanına uçuş izleme ve takip sistemleri ile klinik sistemler örnek olarak verilebilir.
  • Doğal Dil İşleme: Konuşma tanıma ve anlık ses çıktısı alabilme.
  • Sinir Ağları: Yüz tanıma, karakter tanıma ve el yazısı tanıma sistemleri içeren yetenekler.
  • Bulanık Mantık: Tüketici elektronikleri ve otomobiller.
  • Robotlar: Temizleyen, boyayan, hareket eden, onay kontrolleri yapan endüstriyel robotlar.

YAPAY ZEKÂNIN GÖREVLERİ

Yapay zekâ görev tipleri resmi görevler, zorunlu görevler ve uzman görevler olmak üzere üç grupta sınıflandırılabilir. Sınıflandırılmış bu görevler tipleri altındaki görevler Şekil 4’te verilmiştir.

Şekil 4. Yapay Zekâ Görev Tipleri

YAPAY ZEKÂ PROGRAMLAMA DİLLERİ

Yapay zekâ geliştirmek için genel kabul görmüş programlama dilleri mevcuttur. Bu programlama dillerinden bazıları şöyledir:

  • Lisp
  • Python
  • Prolog
  • Java
  • C++
  • R

YAPAY ZEKÂ SİSTEMİNİN BİLEŞENLERİ

Yapay zekâ sistemi bir ajan ve onun çevresinden oluşur. Ajanlar onların çevresi dahilinde hareket ederler. Bir ajan sensörleriyle çevresini algılayabilen ve effektörleriyle bu çevrede hareket eden her şeydir. Yapay zekâ ajanları kendi içerisinde 3 grupta incelenebilir:

  • İnsan Ajanı: Effektörler için eller, bacaklar ve ağız gibi diğer organlarla sensörlerin yerini alan gözler, kulaklar, burun, dil ve deri gibi duyu organları vardır.
  • Robotik Ajan: Sensörlerin yerine kızıl ötesi bulucuların ve kameraların olduğu ve effektörlerin yerine ise motorların ve aktüatörlerin olduğu bir yapıya sahiptir.
  • Yazılım Ajanı: Programlar ve eylemler olarak bit dizelerine kodlanır.

YAPAY ZEKÂ UYGULAMA ALANLARI

Yapay zekânın ilk ortaya çıkışından bugüne gelinceye kadar pek çok farklı alanda kullanıldığı görülmektedir. Bu kullanım alanları şöyle özetlenebilir:

  • Oyunlar: Sezgisel bilgiye dayalı olarak yapay zekâ satranç, poker gibi strateji oyunlarında çok yaygın bir şekilde kullanılmaktadır.
  • Doğal Dil İşleme Süreci (Natural Language Processing) : İnsanlar tarafından konuşulan doğal dili anlayan bilgisayarlarla etkileşime geçmek mümkündür.
  • Uzman Sistemler (Expert Systems): Sorgulayan ve önerilerde bulunabilen makineler ve yazılımlar vardır.
  • Görsel Sistemler (Vision Systems): Bu sistemler bilgisayardaki görsel girdileri anlamaya, yorumlamaya olanak tanır. Örneğin; polisler işlenen suçların izlerini bulmada ve doktorlar ise hastaya teşhis koyarken bu sistemleri kullanabilir.
  • Konuşma Tanıma Sistemleri (Speech Recognition): Bazı akıllı sistemler farklı aksanlara sahip dilleri ve arka plandaki sesleri, seslerdeki değişimleri algılayabilir.
  • El Yazısı Tanıma Sistemleri (Handwriting Recognition): El yazısı tanıma yazılımları bir kalemle ya da bilgisayarla kağıt üzerinde yazılı metni okuyabilir, yazılı metinleri daha okunabilir bir seviyeye çıkarabilir.
  • Akıllı Robotlar (Intelligent Robots): Robotlar insanlar tarafından verilen görevleri yapabilirler. Onlar ışık, ısı, sıcaklık, hareket, ses, basınç gibi gerçek dünyadan alınan fiziksel verileri belirlemek için sensörleri vardır. Akıllı bir hareket sergileyebilmeleri için etkili işlemcileri, çoklu sensörleri ve devasa hafızaları vardır. Diğer bir özelliği ise hatalardan öğrenebilmeleri ve yeni çevrelere adapte olabilmeleridir.

Günümüzün ve geleceğin teknolojisi yapay zekânın yukarıdaki uygulama alanlarının bir sonucu olarak gerçek yaşam uygulamaları arasında otonom otomobiller,  dronlar, navigasyon sistemleri, Boston Dynamics tarafından geliştirilmiş robot, chatbotlar, robot ASIMO, bilgisayar oyunları yapay zekâ uygulamalarına gösterilecek örneklerden sadece birkaçıdır. Yakın gelecekte ise yapay zekâ askeri bir robot, iyi bir avukat, besteci ve sağlık bakım çalışanı olarak öne çıkması öngörülmektedir.

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

YARARLANILAN KAYNAKLAR

Küme Analizleri Üzerine Bir Vaka Çalışması (A Case Study on Cluster Analysis)

Kümeleme analizine geçmeden önce temel kavramları açıklamak konunun anlaşılması açısından önem taşıdığından ilk olarak kısaca bu kavramlara yer verilecektir.

Küme, benzer özellikleri içinde barındıran topluluk olarak tanımlanabilir. Bu topluluk insan topluluğu olabileceği gibi nesnelerin oluşturduğu topluluk da olabilir. Benzer özellikler taşıyan bu topluluklar diğer kümelerden farklılaşır.

Kümeleme analizini ise benzer özelliklere sahip toplulukları gruplara ayırma olarak açıklayabiliriz. Bu analizle bir nevi gruplama yapılmaktadır. Bu analiz türü aynı zamanda yapay zeka öğrenme türlerinden biri olan denetimsiz öğrenme (unsupervised learning)’nin denetimsiz sınıflama (unsupervised classification) başlığı altında değerlendirilir. Çünkü denetimli öğrenme (supervised learning)’de veri önceden tanımlanmış değildir veya önceden sınıflama (denetimli sınıflama) durumu bu analiz türünde söz konusu değildir. Küme analizi bir çok alanda kullanılabilmekle birlikte öne çıkan alanlar şöyle özetlenebilir;

  • Sigorta
  • Pazarlama
  • Arazi kullanımı
  • Şehir planlama

Kümele Analiz Metodları

  • Herüstik yaklaşımlar
    1. K-Ortalama (k-means) Küme Analiz Metodu: Her bir küme, kümenin merkez noktasıyla temsil edilir.
    2. K-Medoidler (k-medoids) veya PAM Küme Analiz Metodu: Her bir küme, kümedeki nesnelerden biri tarafından temsil edilir.

Küme analizinin kalitesi, sınıf içi benzerlikleri yüksek ve kümeler arası benzerliklerin düşük kümelerin elde edilmesine bağlıdır.

Kısaca bunlardan bahsedildikten sonra örnek uygulamaya geçiş yapabiliriz. Örnek uygulama yapılacak veri, 19.02.2019 tarihinde TC. Merkez Bankasının veri tabanından indirilmiştir. Veri seti, yapılacak analizler için işlenerek analize uygun duruma getirilmiştir. Veri seti, 4 değişken ve 5067 gözlemden oluşmaktadır. Bu veri, 1999 yılı ile 18.02.2019 tarihleri arasında Merkez Bankası işlem günlerindeki günlük Dolar ve Euro döviz alış kuru (TL) içeren 5067 gözlemden oluşmaktadır. Bu yıldan başlanılmasının nedeni, eşit zaman serisi elde edilerek karşılaştırma yapılmak istenmesinden kaynaklanmaktadır. 2005 yılından geçerli olmak üzere TL’den 6 sıfır atıldığı için, karşılaştırma sağlanabilmesi adına bu yıldan önceki zaman serilerine ait veriler de ağırlıklandırılmıştır. Diğer bir deyişle, 2005 öncesi döviz kurlarına karşılık gelen TL tutarları 1 milyona bölünmüştür.

Veri setinin küme analizlerine geçmeden dilerseniz
önce veriyi biraz koklayalım :). Veri setini yükledikten sonra ilk olarak tanımlayıcı istatistikleri vererek işe başlayalım. Verinin işlenmesi ve analiz aşamasında R Programlama dili kullanılmıştır.

Yapılan uygulamaları ve analizleri daha iyi görebilmek adına işlenmiş veri setini aşağıdaki linkten indirebilirsiniz.

#Veri yolunu yazmak ve veriyi yüklemek için
library(readxl)
 doviz <- read_excel("C:/Users/Tevfik Bulut/Desktop/doviz.xlsx", 
     col_types = c("numeric", "numeric", "numeric", 
         "numeric"))
 View(doviz) 
#Grafik ve tablo oluşturma için kurulumu yapılacak paketler
library(tidyverse)
library(gridExtra)
#İlk 12 Kaydı tablo olarak getirmek için
y<-head(doviz,20)
grid.arrange(tableGrob(y))
Tablo 1: Döviz Alış Kuruna Göre İlk 12 Kayıt
#Son 12 Kaydı tablo olarak getirmek için
z<-tail(doviz,12)
grid.arrange(tableGrob(z))
Tablo 2: Döviz Alış Kuruna Göre Son 12 Kayıt
#Veri hakkında özetleyici tanımlayıcı istatistikler elde etmek ve değerlerin ondalık kısmını 2 haneli göstermek için;

install.packages("pastecs")
library(pastecs)
grid.arrange(tableGrob(round(stat.desc(doviz),2)))

Tablo 3: Tanımlayıcı İstatistikler

#Kurulumu yapılacak grafik paketleri
library(tidyr)
library(dplyr)
library(ggplot2)

#Grafik kod bloğu (Yıllara göre Dolar Alış Kurunun dalga boyuna göre gösterimi için)
ggplot(doviz, aes(Yıl, USD_Alis))+
  geom_line(size=1.5, col="Red")+
scale_x_continuous(breaks=seq(1999, 2019, 2))+
  ggtitle("Yıllara Göre Dolar Döviz Alış Kuru") +
           xlab("Yıl") + ylab("Dolar Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Aylık Dolar Alış Kurunun dalga boyuna göre gösterimi için
ggplot(doviz, aes(Ay, USD_Alis))+
  geom_line(size=1.5, col="blue")+
  geom_line() +
    facet_wrap(Ay~. )+
  theme_bw()+
  ggtitle("Aylara Göre Dolar Döviz Alış Kuru") +
           xlab("") + ylab("Dolar Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Aynı anda aylara göre dolar alış kurunun gösterimi için; bu grafik ile bir nevi aylara göre dolar alış kurunun izlediği seyrin röntgenini çekmiş oluyoruz.

ggplot(doviz, aes(Ay, USD_Alis, col=USD_Alis))+
  geom_point(size=1)+
  geom_jitter()+
scale_x_continuous(breaks=seq(1, 12, 1))+
  ggtitle("Aylara Göre Dolar Döviz Alış Kuru") +
           xlab("Ay") + ylab("Dolar Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))

Şimdi aynı grafikleri bir de Euro alış kuru için sırasıyla yapalım.

#Grafik kod bloğu (Yıllara göre Euro Alış Kurunun dalga boyuna göre gösterimi için)
ggplot(doviz, aes(Yıl, EURO_Alis))+
  geom_line(size=1.5, col="Brown")+
scale_x_continuous(breaks=seq(1999, 2019, 2))+
  ggtitle("Yıllara Göre Euro Döviz Alış Kuru") +
           xlab("Yıl") + ylab("Euro Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Aylık Euro Alış Kurunun dalga boyuna göre gösterimi için
ggplot(doviz, aes(Ay, EURO_Alis))+
  geom_line(size=1.5, col="green")+
  geom_line() +
    facet_wrap(Ay~. )+
  theme_bw()+
  ggtitle("Aylara Göre Euro Döviz Alış Kuru") +
           xlab("") + ylab("Euro Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Aynı anda aylara göre Euro döviz alış kurunun gösterimi için; bu grafik ile bir nevi aylara göre Euro alış kurunun izlediği seyrin röntgenini çekmiş oluyoruz.

ggplot(doviz, aes(Ay, EURO_Alis, col=EURO_Alis))+
  geom_point(size=1)+
  geom_jitter()+
scale_x_continuous(breaks=seq(1, 12, 1))+
  ggtitle("Aylara Göre Euro Döviz Alış Kuru") +
           xlab("Ay") + ylab("Euro Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))

Döviz Alış Kurlarının Yıllık ve Aylık Ortalamalara Göre Sunumu

#Dolar Alış Kurunun Yıllık ortalamalara göre sunumu
m_yil<-as.data.frame(aggregate(x = doviz, by = list(doviz$Yıl), FUN = "mean"))
m_yil
ggplot(m_yil, aes(Yıl, USD_Alis))+
  geom_line(size=1.5, col="Red")+
scale_x_continuous(breaks=seq(1999, 2019, 2))+
  ggtitle("Yıllık Ortalamalara Göre Dolar Döviz Alış Kuru") +
           xlab("Yıl") + ylab("Dolar Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Euro Alış Kurunun Yıllık ortalamalara göre sunumu
m_yil<-as.data.frame(aggregate(x = doviz, by = list(doviz$Yıl), FUN = "mean"))
m_yil
ggplot(m_yil, aes(Yıl, EURO_Alis))+
  geom_line(size=1.5, col="Brown")+
scale_x_continuous(breaks=seq(1999, 2019, 2))+
  ggtitle("Yıllık Ortalamalara Göre EURO Döviz Alış Kuru") +
           xlab("Yıl") + ylab("Euro Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Dolar Alış Kurunun Aylık ortalamalara göre sunumu
m_ay<-as.data.frame(aggregate(x = doviz, by = list(doviz$Ay), FUN = "mean"))
m_ay
ggplot(m_yil, aes(Ay, USD_Alis))+
  geom_line(size=1.5, col="red")+
scale_x_continuous(breaks=seq(1, 12, 1))+
  ggtitle("Aylık Ortalamalara Göre Dolar Döviz Alış Kuru") +
           xlab("Ay") + ylab("Dolar Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
#Euro Alış Kurunun Aylık ortalamalara göre sunumu
m_ay<-as.data.frame(aggregate(x = doviz, by = list(doviz$Ay), FUN = "mean"))
m_ay
ggplot(m_ay, aes(Ay, EURO_Alis))+
  geom_line(size=1.5, col="dark blue")+
scale_x_continuous(breaks=seq(1, 12, 1))+
  ggtitle("Aylık Ortalamalara Göre Euro Döviz Alış Kuru") +
           xlab("Ay") + ylab("Euro Alış Kuru")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))

Yukarıda gösterimi yapılan grafikler tek bir döviz cinsi üzerinden ayrı ayrı olarak yapılmıştı. Şimdi de dilerseniz bu iki döviz türünü aynı grafik içinde sunalım.Grafik sunumunda alış kurlarına ilişkin bütün gözlemler dikkate alınmıştır.

# Dolar ve Euro döviz alış kurunun aylara göre birlikte gösterimi: Izgara Tip Grafik Gösterimi
ggplot(doviz_sistematik, aes("", TL,col=Döviz))+
  geom_point(size=1)+
  geom_jitter()+
  facet_wrap(Ay~.)+
  facet_grid(Döviz ~ Ay)+
  theme_bw()+
  ggtitle("Aylara Göre Döviz Alış Kuru") +
           xlab("") + ylab("Alış Kuru (TL)")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
# Dolar ve Euro döviz alış kurunun aylara göre birlikte gösterimi: Çizgi Grafik Gösterimi
ggplot(doviz_sistematik, aes(as.factor(Ay), TL,col=Döviz))+
  geom_line(size=1.5)+
  scale_x_discrete(breaks=seq(1, 12, 1))+
  theme_bw()+
  ggtitle("Aylara Göre Döviz Alış Kuru") +
           xlab("") + ylab("Alış Kuru (TL)")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
# Dolar ve Euro döviz alış kurunun yıllara göre birlikte gösterimi: Izgara Tip Grafik Gösterimi
ggplot(doviz_sistematik, aes("", TL,col=Döviz))+
  geom_point(size=1)+
  geom_jitter()+
  facet_wrap(Yıl~.)+
  facet_grid(Döviz ~ Yıl)+
  theme_bw()+
   theme(strip.text.x = element_text(size=8, angle=90))+
  ggtitle("Yıllara Göre Döviz Alış Kuru") +
           xlab("") + ylab("Alış Kuru (TL)")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))
# Dolar ve Euro döviz alış kurunun yıllara göre birlikte gösterimi: Çizgi Grafik Gösterimi
ggplot(doviz_sistematik, aes(as.factor(Yıl), TL,col=Döviz))+
  geom_line(size=1.5)+
  scale_x_discrete(breaks=seq(1999, 2019, 2))+
  theme_bw()+
  ggtitle("Yıllara Göre Döviz Alış Kuru") +
           xlab("") + ylab("Alış Kuru (TL)")+
  labs(caption = "Source: By Tevfik Bulut")+
  theme(plot.title = element_text(family = "Trebuchet MS", face="bold", size=16, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", face="bold", size=12))

Küme Analizleri

#Kurulumu Yapılacak Paketler
 library(tidyverse)  # veri manipulasyonu için
 library(cluster)    # kümeleme algoritmaları
 library(factoextra) # kümelerin görselleştirilmesi
 library(dendextend) # dendogramların karşılaştırılması
#Veriyi yüklemek için
library(readxl)
doviz <- read_excel("C:/Users/Tevfik Bulut/Desktop/doviz.xlsx", 
    col_types = c("numeric", "numeric", "numeric", 
        "numeric"))
View(doviz)

Optimal Küme Sayısını Belirleme

Optimal küme sayısını belirlemek için sırasıyla Ortalama Silüet Metodu, Elbow Metodu ve Gap İstatistik Metodları kullanılmıştır.

#Veriyi ölçeklendirmek için
scale_veri<- scale(doviz[,-2])
#Optimal küme sayısını hesaplamak için (Biraz uzun sürebilir sabırlı olunuz:). 
#İlk olarak Ortalama Silüet Metodu (Average Silhouette Method) kullanılarak optimal küme sayısı K-Ortalamalar ve PAM Kümeleme Metodları özelinde verilecektir.

##PAM Küme Analizi için optimal küme sayısı
fviz_nbclust(scale_veri, FUN = pam, method = "silhouette")
##K-Ortalamalar Küme Analizi için optimal küme sayısı
fviz_nbclust(scale_veri, FUN = kmeans, method = "silhouette")

##Hiyerarşik Küme Analizi için optimal küme sayısını belirlemek için Elbow Metodu kullanılmıştır.
fviz_nbclust(scale_veri, FUN = hcut, method = "wss")
PAM Küme Analizi için optimal küme sayısı
K-Ortalamalar Küme Analizi Optimal Küme Sayısı

Hiyerarşik Küme Analizi Optimal Küme Sayısı

Optimal küme sayısı belirleme metodlarından biri olan Gap İstatistik Metodu kullanılarak toplam küme içi varyans da ortaya konulur. Burada, optimal küme sayıları GAP istatistiğini maksimize eder.

# GAP istatistikleri
## Hiyerarşik Kümeleme Metodu İçin
gap_stat <- clusGap(scale_veri, FUN = hcut, nstart = 25, K.max = 10, B = 50)
fviz_gap_stat(gap_stat)
## K-Ortalamalar Metodu İçin
gap_stat <- clusGap(scale_veri, FUN = kmeans, nstart = 25, K.max = 10, B = 50)
fviz_gap_stat(gap_stat)
Hiyerarşik Kümeleme Metodu Gap İstatistiği

K-Ortalamalar Kümeleme Metodu Gap İstatistiği

PAM Metodu

#PAM Küme Analiz Metodu sonuçları için (3 küme belirlenmiştir.)
pam.cluster <- pam(scale_veri, 3)
 # Visualize pam clustering
fviz_cluster(pam.cluster, geom = "point", ellipse.type = "convex") #Alternatif 1
fviz_cluster(pam.cluster, geom = "point", ellipse.type = "euclid",labelsize = 9) #Alternatif 2
fviz_cluster(pam.cluster, geom = "point", ellipse.type = "norm") #Alternatif 3

Alternatif 1: PAM Metodu
Alternatif 2: PAM Metodu

Alternatif 3: PAM Metodu

CLARA Metodu

clara(scale_veri, 3, samples = 100, pamLike = TRUE)

K-Ortalamalar Metodu

k_ortalama <-  kmeans(scale_veri, 3, nstart = 25)
 # Görselleştirmek için
fviz_cluster(k_ortalama, data =scale_veri , geom = "point", ellipse.type = "convex") #Alternatif 1
fviz_cluster(k_ortalama, data =scale_veri , geom = "point", ellipse.type = "norm") #Alternatif 2
fviz_cluster(k_ortalama, data =scale_veri , geom = "point", ellipse.type = "euclid") #Alternatif 3

Alternatif 1: K-Ortalamalar Metodu

Alternatif 2: K-Ortalamalar Metodu

Alternatif 3: K-Ortalamalar Metodu

Hiyerarşik Küme Analiz Metodu

Öklidyen_uzaklık <- dist(scale_veri, method = "euclidean")
hiyerarsik <- hclust(Öklidyen_uzaklık, method = "ward.D2" )
plot(hiyerarsik, cex = 0.6, hang = -1) #Küme dendrogramı
Ward D2 Metodu Kullanarak Hiyerarşik Küme Analizi
manhattan_uzaklık <- dist(scale_veri, method = "manhattan")
hiyerarsik <- hclust(manhattan_uzaklık, method = "centroid" )
plot(hiyerarsik, cex = 0.6, hang = -1) #Küme dendrogramı

Centroid” (UPGMC) Metodu Kullanarak Hiyerarşik Küme Analizi

Yapılan bu çalışmayla döviz alış kurları veri setinden yola çıkılarak keşifsel veri analizi yapılarak veriye yönelik farklı bir bakış açısı kazandırılmak istenmiştir. Bunun yanında küme analizlerinin farklı küme analiz metodlarına göre ortaya konulmasıyla da bu alanda çalışma yapan veya yapacak kişi yada kurumlara önemli bir katkı sunulması amaçlanmıştır.

Faydalı olması dileğiyle…

Not: Emeğe saygı adına, yapılan çalışmanın başka bir mecrada ya da ortamda paylaşılması ve kullanılması halinde alındığı yer adının belirtilmesini rica ederim.

Saygılarımla.

Yararlanılan Kaynaklar

Türkiye Cumhuriyeti Devletinin Para Birimi Hakkında Kanun,
Kanun No: 5083, Resmi Gazete Tarihi: 31/01/2004, Resmi Gazete Sayısı: 25363 http://www.resmigazete.gov.tr/eskiler/2004/01/20040131.htm#3

https://evds2.tcmb.gov.tr/index.php?/evds/serieMarket/#collapse_2

https://tutorials.iq.harvard.edu/R/Rgraphics/Rgraphics.html

Kaufman, Leonard, and Peter Rousseeuw. (1990). Finding Groups in Data: An Introduction to Cluster Analysis. https://leseprobe.buch.de/images-adb/5c/cc/5ccc031f-49c1-452f-a0ac-22babc5e252e.pdf

http://www.stat.columbia.edu/~madigan/W2025/notes/clustering.pdf

http://web.stanford.edu/~hastie/Papers/gap.pdf

https://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/

Charrad, Malika, Nadia Ghazzali, Véronique Boiteau, and Azam Niknafs. 2014. “NbClust: An R Package for Determining the Relevant Number of Clusters in a Data Set.” Journal of Statistical Software 61: 1–36. http://www.jstatsoft.org/v61/i06/paper.

Öne çıkan

Approach of Logarithmic Concept [APLOCO]: Logaritmik Konsept Yaklaşımı

Kararlarımız bizi ve geleceğimizi şekillendirir. Alınan kararlar mikro düzeyde kişi tarafından olabileceği gibi, makro ölçekte kurum, kuruluş ve hatta ülke ya da ülkeler tarafından da olabilir. Karar verme aslında yaşamın ta kendisidir. Yapılan işin ya da konunun niteliğine göre her an, her saniye karar veririz ve verdiğimiz kararları ve kararların sonuçlarını yaşarız. Dolayısıyla, verilecek kararların doğruluğu, bilimsel geçerliliği ve olası sonuçları ne kadar geçerli ve güvenilir olursa, diğer bir deyişle, optimal olursa elde edilecek fayda o kadar yüksek olur. Bu fayda, makro ölçekte gerçekleşebileceği gibi operasyonel düzeyde de gerçekleşebilir.  Ancak, karar verirken genellikle tek tip problemlerle karşılaşmayız. Bu problemler ve sorun alanları çoğu zaman birden çok faktörü ya da değişkeni, diğer bir deyişle karar kriterlerini içinde barındırır. Bu aşamada çok kriterli karar verme yöntemleri, kriterlerin değerlerini ve bizim kriterlere atfettiğimiz önem derecelerini değerlendirmeye, analiz etmeye ve bu kriterlere göre sorunlara anlık çözümler üretmeye olanak tanır. Özetle, aslında evrende insanlar ve nesneler tarafından yapılan her eylemin arkasında, daha iyi ve doğru karar verme çabası yatmaktadır ve bu çaba hiç bir zaman bitmeyecektir.

Geliştirdiğim APLOCO yönteminin makaledeki uygulama adımları takip edilerek makaledeki uygulama örneği üzerinden olabildiğince sade ve anlaşılır bir dille Microsoft Excel’in yanısıra R programlama dilinde de hazırlanmıştır. Hazırlamış olduğum excel dokumanı aşağıdaki linkten indirilebilir. Hem excelde hem de R programlama dilinde uygulaması gösterilen örneğin daha iyi anlaşılabilmesi için aşağıdaki linkten makalenin indirilerek makaledeki uygulama adımlarının okunması faydalı olacaktır. Yöntemin uygulanması excelde ve R programlama dilinde de gösterildiği için yapacağınız çalışmalarda bu yöntemin kullanılması aşamasında tek yapılması gereken matrislerin genişletilmesi ya da daraltılması olacaktır. R programlama dilinde yapılmış olan uygulamanın çalışması için bilgisayarınızda R programlama dilinin yüklü olması gerekmektedir. Programlama dili yüklü değilse https://www.r-project.org/ linkinden ücretsiz olarak indirilebilir. Daha sonra install.packages("rmarkdown") ve install.packages("tidyverse") fonksiyonlarıyla paketlerin kurulumu ve yüklenmesi (library(rmarkdown) ve library(tidyverse)) tamamlandıktan sonra R’da örnek uygulamaya ilişkin aşağıda yazdığım kod blokları ile çalıştırılabilir. İlgilenenler için makaledeki çalışmanın sonuçlarını özetleyen bilimsel poster sunumu (scientific poster presentation of APLOCO) da aşağıdaki linkten indirilebilir.

APLOCO’da kullanılan kriter ağırlıklarının belirlenmesinde yapay zeka alanı içerisinde yer alan ve Derin Öğrenme (Deep Learning) yöntemlerinden biri olan Çok Katmanlı Perseptron (Multi Layer Perceptron) kullanılmıştır. Ancak geliştirilen bu çok kriterli karar verme yöntemi kriter ağırlıklıklarının belirlenmesi noktasında yapay zekaya bağımlı değildir. Kriter ağırlıkları her hangi bir yöntemle de belirlenebilir. Sonuç itibariyle, kriter ağırlıkları hangi yöntemle belirlenirse belirlensin belirlenen ağırlıklar bu yöntem içinde kullanılabilir. Bu çalışmada kullanılmasının nedeni verinin normal dağılım göstermemesinden, dolayısıyla outlier’ların çıkarılmamak ve transformation yapılmamak istenmesinden kaynaklanmaktadır. Aksi takdirde, veriler normal dağılıma uygun hale getirilseydi en önemli veriler dışarıda kalacaktı. Yapay zekanın veriyi dışarıda bırakmaması ve veriden öğrenebilme yeteneğinin olması kriter ağırlıklarının belirlenmesi işleminde kullanılmasının temel nedenlerinden birini oluşturmuştur.

Geliştirilen yöntem bu alanda mevcut diğer yöntemlerin bazıları ile karşılaştırılarak sonuçları da ortaya konulmuştur. Ancak zaman kısıtı ve iş yoğunluğundan dolayı yayınlanan makaleye yansıtılamamıştır. Önümüzdeki zamanlarda uygun bir zaman diliminde karşılaştırmalı sonuçların ortaya konulması düşünülmektedir.

APLOCO Kullanım Alanları : Fields of Use of APLOCO

  1. Sıralama (Ranking)
  2. Seçim (Selection)
  3. Etkinlik ve verimlilik ölçümleri (measurements  of efficiency and productivity)
  4. Performans değenlendirme (performance evaluation)
  5. Risk tahmini (risk estimation)
  6. Optimal çözüm (optimal solution)

gibi açık uçlu ve aynı zamanda statik ve dinamik bir seyir izleyen bütün karar verme problemlerinin çözümünde sektör ayrımı olmaksızın rahatlıkla uygulanabilir. Yapılan çalışmanın literatüre katkısının yanında Türkiye’de yeterince gelişim gösteremeyen yöneylem araştırma (operation research) alanına da önemli katkı sağlayacağı inancındayım.

Faydalı olması dileğiyle..

Makale (Article)Cornell University

Poster Sunumu (Poster Presentation): Bilimsel Poster Sunumu (Scientific Poster Presentation)

APLOCO Uygulama Adımları (APLOCO  Implementation Steps)

APLOCO’nun uygulanması 5 adımda tamamlanmaktadır;

  • Step 1: Building the decision matrix (DM)
  • Step 2: Calculation of starting point criteria (SPC) values
  • Step 3: Forming the logarithmic conversion (LC) matrix
  • Step 4: Determining the weights of criteria (WC) and calculating the weighted logarithmic conversion (WLC) matrix
  • Step 5: Determination of the best alternative (BA)

APLOCO uygulama adımlarının Diagram 1 üzerinde gösterimi (Demonstration of APLOCO implementation steps on Diagram 1)

Diagram 1. APLOCO Uygulama Adımları (APLOCO  Implementation Steps)

aploco uygulama_adımları

APLOCO karar vericiye 3 tabaka halinde statik ve dinamik çıktı üretme olanağı tanır. Bu tabakalar Şekil 1’te özetlenmiştir. Şekil 1’de görüleceği üzere bu çıktılar Tabaka 1’de alternatiflerin bütün kriterlerinin değerlendirmeye tabi tutulduğu genel diyebileceğimiz APLOCO skorları (değerleri) üretilir. Makalede sadece Tabaka 1’e ilişkin APLOCO sonuçları üretilmiştir. Karar verici, Tabaka 1( Alternatiflerin Kriterlere Göre Aldığı APLOCO Sonuçları)’de üretilen sonuçlara göre Tabaka 2 (Kriter Kümeleri APLOCO Sonuçları) ve Tabaka 3 (Kriter Bazlı APLOCO Sonuçları)’e ilişkin sonuçlar da üreterek daha derinlemesine analiz yapabilir.

Eğer karar verici çok sayıda ve sınıflandırılmış karar kriterleri kümesine sahipse Tabaka ‘ye 2 ilişkin APLOCO sonuçları da üretilebilir.

Tabaka 2’de karar verici karar kriterleri kümesine ait Adım 5’te belirlenmiş olan optimal çözüm değerleri toplamı belirlenir. Daha sonra karar kriterleri kümesine ait Adım 5’te belirlenmiş olan karar kriterlerinin değerleri toplamı oranlanarak kriter kümelerine ait APLOCO sonuçları (Theta Skorları) elde edilmiş olur. Diğer bir deyişle, kriter kümesinin tij değerleri toplamı kriter kümesinin βj değerleri toplamına oranlanarak kriter kümesinin/kümelerinin θ (Theta) skorları elde edilerek Tabaka 2’ye ilişkin APLOCO sonuçları elde edilmiş olur. Ancak, makalede kriter kümeleri oluşturulmadığı için Tabaka 2’ye ilişkin sonuçlara yer verilmemiştir. Tabaka 2’ye ilişkin sonuçların elde edilmesi karar vericinin araştırma dizaynına ve elde etmek istediği araştırma sonuçlarına bağlıdır. Dolayısıyla, bu tabakaya ilişkin sonuçların ortaya konulması karar vericiye bağlıdır. Diğer bir deyişle, bu tabakaya ilişkin sonuçların ortaya konulması zorunlu değildir.

Karar verici Adım 5 (Step 5)’te her bir kriterin ağırlıklandırılmış değeri (tij) ile her bir kritere ilişkin hesaplanmış optimal çözüm değeri (βj)  birbirine oranlanarak her bir alternatifin kriter bazında θ (Theta) skorları elde edilerek Tabaka 3’e ilişkin APLOCO sonuçları üretilmiş olur. Bu tabakada karar vericinin kriter bazında alternatifler arasında (yatay analiz:horizantal analysis) ve kriterler bazında alternatif içinde (vertical analysis:dikey analiz) hem yatay ve hem dikey analize tabi tutarak değerlendirmesine olanak tanınır. Diğer bir deyişle, bu tabaka, alternatiflerin kriterlere göre kendi içerisinde (dikey analiz) ve aralarında (yatay analiz değerlendirme yapılmasına imkan sağlar.

Şekil 1. APLOCO Çıktı Üretme Seviyeleri: APLOCO Output Generation Levels

Bu görselin boş bir alt özelliği var; dosya ismi: aploco2.png

APLOCO 3 seviyede çıktı üretmekte olup, bu 3 çıktı tabakasına göre üretilen çıktı sayısı ile üretilen APLOCO skorların dayalı olduğu tabaka değişkenleri Şekil 2’de gösterilmiştir.

Burada,

L:  tabaka (Layer),

m: matristeki satır veya kriter sayısı (the number of rows or criteria in the matrix),

n: matristeki sütun veya alternatiflerin sayısı (the number of columns or alternatives in the matrix),

c: benzer özelliklere sahip kriterlerden oluşan toplam küme sayısı olmak üzere (the total number of clusters of criteria with similar characteristics)

göstermek üzere tabakalara göre üretilen çıktı sayısı

Tabaka 1 için üretilen sonuç sayısı (Number of results produced for Layer 1)

L1=n

Tabaka 2 için üretilen sonuç sayısı (Number of results produced for Layer 2)

L2=cxm

Tabaka 3 için üretilen sonuç sayısı (Number of results produced for Layer 3)

L3=mxn

kadardır.

Şekil 2. APLOCO Çıktı Üretme Seviyeleri ve APLOCO Çıktılarının Dayalı Olduğu Tabaka Değişkenleri (APLOCO Output Generation Levels and APLOCO Outputs Based on Layer Variables)

tabaka sayısı

Tabaka 1’e Göre Microsoft Excel Uygulama Örneği (Downloadable Aplication Example of APLOCO According to Layer 1 In Microsoft Excel): 

APLOCO_Layer_1

Simülasyon uygulamasında ise tekrarlı basit tesadüfi örnekleme tekniği kullanarak sentetik alternatif kriter değerleri üretilmiştir. F9 tuşuna basılı tutarak yeni alternatif kriter değerleri üreterek farklılaşmaları görebilirsiniz (In the simulation application, synthetic alternative criterion values were produced by using repeated simple random sampling technique. You can see the variations by generating new alternative criteria values by holding down the F9 key.).

R Programlama Dilindeki APLOCO Uygulama Sonuçlarının Grafikleri ve Kod Blokları (R Code Blocks of Charts)

Burada, sonuçların görselleştirilmesi adına kod blokları ile Tabaka 1 seviyesinde elde edilen APLOCO sonuçları alternatiflerin θ skorlarına göre sıralı bir şekilde farklı seçenekli grafiklerle verilmiştir.

Şekil 3: Tabaka 1 seviyesinde elde edilen APLOCO Sonuçları (Seçenek 1)

Rplot02

R Kod Bloğu-1:

ggplot(ggplot) +
geom_point(aes(Theta, y = reorder(Alternatives, Theta)), size=2, col="red")+
labs(subtitle=NULL,
y="Alternatives",
x="Theta Scores",
title="APLOCO Results",
caption = "Source: APLOCO")+
xlim(min(ggplot$Theta), max(ggplot$Theta))+
scale_x_continuous(limits = c(0, 1))+
theme(plot.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=18, hjust=0)) +
theme(axis.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=12))

Şekil 4: Tabaka 1 seviyesinde elde edilen APLOCO Sonuçları (Seçenek 2)

Rplot

R Kod Bloğu-2:

ggplot(ggplot) +
geom_point(aes(Theta, y = reorder(Alternatives, Theta)),col="red",size=6, shape="+")+
labs(subtitle=NULL,
y="Alternatives",
x="Theta Scores",
title="APLOCO Results",
caption = "Source: APLOCO")+
scale_x_continuous(limits = c(0.0, 1.0))+
theme(plot.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=18, hjust=0)) +
theme(axis.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=12))

Şekil 4: Tabaka 1 seviyesinde elde edilen APLOCO Sonuçları (Seçenek 3)

Bu görselin boş bir alt özelliği var; dosya ismi: rplot15.png

R Kod Bloğu-3:

ggplot(ggplot, aes(Alternatives, Theta))+
geom_point(col="red", size=3, shape="+") +
geom_text_repel(aes(label=round(Theta, 4)), size = 3)+
labs(subtitle=NULL,
y="Theta Scores",
x="Alternatives",
title="APLOCO Results",
caption = "Source: APLOCO By Tevfik Bulut")+
scale_y_continuous(limits = c(0.0, 1.0))+
theme(plot.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=18, hjust=0.5)) +
theme(axis.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=12))

R Programlama Dilindeki Tabaka 1 İçin Kod Blokları (Code Blocks for Layer 1 In R Programming Language)

R programlama dilindeki R Mark Down üzerinde aşama aşama (step by step) hazırlanmış kod blokları aşağıda gösterilmiştir.

R Kod Blokları-4:

APLOCO Uygulama Adımları (APLOCO Aplication Steps)

#Step 1: Building the decision matrix

r1<-c(2.00, 7.00, 1.00, 9.00, 2.00, 7.00, 6.00, 4.00, 9.00)
r2<-c(0.00, 0.00, 0.00, 2.00, 1.00, 1.00, 5.00, 0.00, 0.00)
r3<-c(0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00)
r4<-c(2.00, 1.00, 1.00, 1.00, 2.00, 1.00, 1.00, 3.00, 1.00)
r5<-c(0.45, 0.55, 0.64, 0.60, 0.65, 0.52, 0.58, 0.53, 0.60)
r6<-c(0.42, 0.47, 0.41, 0.62, 0.51, 0.47, 0.48, 0.62, 0.52)
r7<-c(0.35, 0.80, 0.58, 0.54, 0.54, 0.88, 0.63, 0.39, 0.66)
r8<-c(383.00, 11246.00, 216.00, 1335.00, 142.00, 22665.00, 796.00, 302.00, 1249.00)
r9<-c(14.00, 13.00, 14.00, 10.00, 15.00, 14.00, 13.00, 12.00, 13.00)
dmatrix<-matrix(c(r1,r2,r3,r4,r5,r6,r7,r8,r9), byrow=TRUE, nrow=9, ncol=9)
dmatrix
colnames(dmatrix)<-c("A1","A2","A3","A4","A5","A6","A7","A8","A9")
dmatrix
rownames(dmatrix)<-c("C1", "C2","C3","C4","C5","C6","C7","C8","C9")
dmatrix

#Step 2: Calculation of starting point criteria (SPC) values

#Maximum starting point criteria values

r1_max<-max(dmatrix[1,])
r2_max<-max(dmatrix[2,])
r4_max<-max(dmatrix[4,])
r5_max<-max(dmatrix[5,])
r6_max<-max(dmatrix[6,])
r7_max<-max(dmatrix[7,])
r8_max<-max(dmatrix[8,])
r9_max<-max(dmatrix[9,])

#Minimum starting point criteria (SPC) values

r3_min<-min(dmatrix[3,])

r3_min

#Forming of starting point criteria (SPC) Matrix

SPC_Matrix<-matrix(c(r1_max-dmatrix[1,], r2_max-dmatrix[2,], dmatrix[3,]-r3_min, r4_max-dmatrix[4,], r5_max-dmatrix[5,], r6_max-dmatrix[6,], r7_max-dmatrix[7,], r8_max-dmatrix[8,], r9_max-dmatrix[9,]), byrow = TRUE, nrow=9, ncol=9)
SPC_Matrix
colnames(SPC_Matrix)<-c("A1","A2","A3","A4","A5","A6","A7","A8","A9")
SPC_Matrix
rownames(SPC_Matrix)<-c("C1", "C2","C3","C4","C5","C6","C7","C8","C9")
SPC_Matrix

#Step 3: Forming the logarithmic conversion (LC) matrix

LC_Matrix<-1/log(SPC_Matrix+2)
LC_Matrix

Step 4: Determining the weights of criteria and calculating the weighted logarithmic conversion (WLC) matrix

#Variables and weights of variables. In here, these variables are also decision criteria at the same time.

Weighted_Values<-data.frame(Variables=c("Mixed","Specialized","Reformed","Incentive zone","Education İndex","Income and wealth index","Security index", "Total number of parcels in production","Passing Years (average)"), Weights=c(0.013, 0.016, 0.018, 0.043, 0.048, 0.096, 0.007, 0.750, 0.009))
Weighted_Values

#WLC Matrix

#In here, w is donated as weights of decision criteria.

w<-c(0.013, 0.016, 0.018, 0.043, 0.048, 0.096, 0.007, 0.750, 0.009)
w

#In here, w values are multiplied by LC_Matrix ones.

WLC_Matrix<-matrix(c(w[1]*LC_Matrix[1,], w[2]*LC_Matrix[2,], w[3]*LC_Matrix[3,], w[4]*LC_Matrix[4,], w[5]*LC_Matrix[5,], w[6]*LC_Matrix[6,], w[7]*LC_Matrix[7,],w[8]*LC_Matrix[8,], w[9]*LC_Matrix[9,]), byrow = TRUE, nrow = 9, ncol=9)
WLC_Matrix

Step 5: Determination of the best alternative

#β is the maximum value of the criterion on each row.In here, Sum of β values of criteria are shown below;

β_sum_max<-sum(apply(WLC_Matrix, 1, max))
β_sum_max

#In here, asi indicates the sum of values of the criteria for each alternative in each column.

asi<-apply(WLC_Matrix, 2, sum)
asi

### In here, cities indicate “Adana, Ankara, Antalya, Bursa, Denizli, Istanbul, Kocaeli, Manisa, Izmir” as alternatives.

#θ Scores are asi/β_sum_max

Scores<-data.frame(Alternatives=c("Adana","Ankara","Antalya","Bursa","Denizli","Istanbul","Kocaeli","Manisa","Izmir"), Theta_Scores=c(asi/β_sum_max), Beta_Score=rep(β_sum_max,9), Rank=rank(-Scores$Theta_Scores))
Scores

#Visiualization of the results

ggplot(Scores) +
geom_point(aes(x=Alternatives, y=Theta_Scores)) +
geom_hline(yintercept = 1.442695, size=2, col="red")+
ggtitle(label="Theta Scores", subtitle = NULL)

Tabaka 1: APLOCO Sonuçlarının Harita Üzerinde Gösterimi (On-Map Display of Results)

Tabaka 3’e Göre Microsoft Excel Uygulama Örneği (Downloadable Aplication Example of APLOCO According to Layer 3 In Microsoft Excel):

APLOCO_Layer_3

Tabaka 3’e ilişkin APLOCO sonuçlarının dikey (vertical) ve yatay (horizantal) analiz açısından değerlendirilmesini içerir grafikler R kod bloklarıyla birlikte aşağıda verilmiştir.

Şekil 5: APLOCO Sonuçlarının Tabaka 3 Seviyesinde Dikey Analiz Açısından Değerlendirilmesi

Bu görselin boş bir alt özelliği var; dosya ismi: rplot17.png

R Kod Bloğu-5:

merge<-ggplot(data=level_3, aes(Criteria, y=Theta)) +
geom_point(size=1.5, col="red") + geom_smooth(method="lm") +
geom_text_repel(aes(label=round(Theta, 3)), size = 3)+
xlab("Criteria") + ylab("Theta Scores") + ggtitle("APLOCO Results at Layer 3: Vertical Analysis")
merge + facet_grid(. ~ Criteria)+facet_wrap( ~ Alternatives, ncol=3)+
theme(plot.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=16, hjust=0.5))+
theme(axis.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=12))+
labs(subtitle=NULL,
caption = "Source: APLOCO By Tevfik Bulut")

Şekil 6: APLOCO Sonuçlarının Tabaka 3 Seviyesinde Yatay Analiz Açısından Değerlendirilmesi

Bu görselin boş bir alt özelliği var; dosya ismi: rplot16.png

R Kod Bloğu-6:

merge<-ggplot(data=level_3, aes(Alternatives, y=Theta)) +
geom_point(size=1.5, col="red") + geom_smooth(method="lm") +
geom_text_repel(aes(label=round(Theta, 3)), size = 3)+
xlab("Alternatives") + ylab("Theta Scores") + ggtitle("APLOCO Results at Layer 3: Horizantal Analysis")
merge + facet_grid(. ~ Criteria)+facet_wrap( ~ Criteria, ncol=3)+
theme(plot.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=16, hjust=0.5))+
theme(axis.title = element_text(family = "Trebuchet MS", color="#666666", face="bold", size=12))+
labs(subtitle=NULL,
caption = "Source: APLOCO By Tevfik Bulut")

APLOCO Yöntemini Kullanan Çalışmalar

  1. https://www.icatces.org/ICATCES2019_Program_v14.pdf, Ulaşım Tarihi: 16.05.2019
  2. http://muh.karabuk.edu.tr/bilgisayar/icatces/proceeding_book_2019.pdf, Ulaşım Tarihi: 22.05.2019
  3. Mishra, Amit Kumar, Joshi, Nisheeth, and Mathur, Iti. ‘A Fuzzy Based Integrated Model for Identification of Vital Node in Terrorist Network Using Logarithmic Concept’. 1 Jan. 2020 : 1 – 15. https://content.iospress.com/articles/journal-of-intelligent-and-fuzzy-systems/ifs191899. Not: Adı geçen çalışmada geliştirdiğim Approach of Logarithmic Concept (APLOCO) yöntemi sosyal ağ analizinde diğer yöntemlerle karşılaştırmalı olarak test edilmiş, ALOCO yöntemi diğer yöntemlere göre daha yüksek performansa sahip olduğu bulunmuştur.
  4. Fındık, O., Özkaynak, E. Link prediction based on node weighting in complex networksSoft Comput (2020). https://doi.org/10.1007/s00500-020-05314-8
  5. Özkaynak, Emrah . (2020). Karmaşık Ağlarda Düğüm Ağırlıklı Bağlantı Yöntemlerinin Geliştirilmesi. Doktora Tezi, Karabük Üniversitesi Bilgisayar Mühendisliği. Doktora tezi. http://acikerisim.karabuk.edu.tr:8080/xmlui/bitstream/handle/123456789/1011/10372612.pdf?sequence=1 adresinden adı geçen doktora tezine ulaşılabilir.

Not: Emeğe saygı adına alınan kaynağın ve indirilen excel dokümanının başka bir mecrada ya da ortamda kullanılması halinde alındığı yer adının belirtilmesini rica ederim.

Saygılarımla.

Yararlanılan Kaynaklar