Market Sepeti Analizi Nedir?


Bir markette herkes sepetine farklı ürünler doldurur. Ancak her sepette genellikle bir arada bulunan ürünler vardır. Bu ürünlerden örneğin kola ile cipsin bir arada alınması beklenebilir ancak beklenmediği halde bir arada olan ürünler olabilir mi? Örneğin bira ile çocuk bezi bir arada sıkça görülür mü? Bir şehir efsanesine göre evet. İşte buna benzer kalıpları görebilmek için “market sepeti analizi” adı verilen bir analiz yapılır. Bu bir veri madenciliği yöntemidir.Bunu R ile yapmak için şurayıPython ile yapmak için şurayı okuyabilirsiniz.

Reklamlar

R ve Regex Yardımıyla düzensiz bir metin içinden yılı yakalamak


Bir projemde aşağıdaki gibi iki tür metin vardı:

> a="Volume 29, Issue 3, July 2007, Pages 357-374"
> b="Published: 1999, Start page: 117"

a ve b değerleri içinden 2007 ve 1999 gibi sayıları çıkarmak istiyordum. Regex’te buna uygun bir patternin var olduğunu düşündüm. Şuradan test ettim: https://www.regextester.com/93651

Daha sonra R’da bulunan stringr paketindeki str_extract fonksiyonunu kullandım:

> str_extract(a,"(19|20)\\d{2}")
[1] "2007"
> str_extract(b,"(19|20)\\d{2}")
[1] "1999"

Özetle (19|20)\d{2} şeklinde yazdığım regex kodu şöyle söyler: Git o metnin içinden 19 veya 20 ile başlayan ve devamında iki sayısal karakter(d) olan veriyi yani yılı getir.

Getirdi de! Büyük veri zorlu veridir. Ama aşmak için her zaman yollar vardır.

Bulk replacing Turkish characters in R


Turkish character sometimes became the menace for the data scientist. To avoid the risks you may want to change it with safe characters. To do that you can use this code:

#turkce karakter donusumu
to.plain <- function(s) {

# 1 character substitutions
old1 <- “çğşıüöÇĞŞİÖÜ”
new1 <- “cgsiuocgsiou”
s1 <- chartr(old1, new1, s)

# 2 character substitutions
old2 <- c(“œ”, “ß”, “æ”, “ø”)
new2 <- c(“oe”, “ss”, “ae”, “oe”)
s2 <- s1
for(i in seq_along(old2)) s2 <- gsub(old2[i], new2[i], s2, fixed = TRUE)

s2
}
df$source=as.vector(sapply(df$source,to.plain))

A tool for getting rid of SQLServer chore


Capture

Declaration variables and setting the initial value in SQLServer is a boring chore. Especially when there are a lot of variables you should write 2 times more code.

To circumvent that I’ve developed a script.
Just define your variables then assign the which value you want then get result and copy-paste it to SQLServer

Here is how:

http://rpubs.com/suatatan/sqlserver-declarator

R’da tüm korelasyonları toplu göstermek


Verisetiniz içerisinde kaç parametre varsa bunların birbirleri ile ilişkisi için teker teker korelasyonlara bakmanıza gerek yok. R’da bu işlemi topluca yaparak zaman kazanabilirsiniz.

Veri Amerika’nın Wyoming eyaletindeki suç verileri (2013)

  library(xlsx)
  a=xlsx::read.xlsx("wyoming.xls",sheetName = "13tbl8wy"
                    ,as.data.frame = T
                    ,stringAsFactors=F)
  #NA konları sil
  a=a[colSums(!is.na(a)) > 0]
  #correlation pairs
  panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...)
  {
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(x, y))
    txt <- format(c(r, 0.123456789), digits = digits)[1]
    txt <- paste0(prefix, txt)
    if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
    text(0.5, 0.5, txt, cex = cex.cor * r)
  }
  pairs(a[1:5], lower.panel = panel.smooth, upper.panel = panel.cor)

#corelation pairs fonksiyonundan sonraki kısımla aşağıdaki gibi koralasyon tablosu elde edebiliyorsunuz.

Gördüğünüz üzere hem korelasyonlar hem grafikler kolayca eşleştirilebiliyor. Bu grafikten ne anlıyoruz. Wyoming için 2013 yılında şehir bazında nüfus ile işlenen şiddet içeren suçlar arasında ciddi ilişki var. O zaman küçük yerler daha güvenli olabilir. Ama kumarbaz yanılgısına düşmeyin. Küçük ihtimaller gelip sizi bulabilir.

Apply Function in R: Apply same function to for each cell of a matrix


R provides powerful functions. Apply function is one of them. It keeps you from writing boring loops(while and for). For insance:

# create a matrix of 10 rows x 2 columnsm <- matrix(c(1:10, 11:20), nrow = 10, ncol = 2)

# divide all values by apply

apply(m, 1:2, function(x) x/2)

Thanks for nsaunders

Interpreting Linear Model(lm) in R


In R as you know, when it have been written: summary(lm(x~y)), the command gives  a lot of different ‘mystic’ values. I have found a good manual for interpreting the result. It is here

Besides, do not forget lm command is relevant with “regression” model. If you want to compute the simple correlation between two parameter use cor(x,y) command.

If you do not have any idea about difference, here is good article for you

Enjoy