Scikit ile Makine Öğrenmesi Kodlamak


Makine öğrenmesi çalışmalarında şimdiye kadar hep R kullanmıştım. Scikit ve Tensorflow hakkında kaggle’daki istatistikleri görünce biraz da Python’a dair eğilimle, Scikit kullanmaya karar verdim. Direkt Scikit öğrenmek R’dan sonra karmaşık geldiği için, Numpy ve Pandas dokümantasyonları inceleyip bir kaç deneden sonra “Hands-On Machine Learing” kitabını keşfettim. Kitap kitap değil hazine mübarek. Anlatım güzel olmakla birlikte yazarının derin bilgisi yüzünden resmen bilgi pompalıyor. Bu yüzden biraz zorluyor.

2017-12-01 21_16_54-Hands-On Machine Learning with Scikit-Learn and TensorFlow_ Concepts, Tools, and.png

Ben de hem kendim denemek hem de İngilizce ile arası iyi olmayan veri bilimci adayları için örnekleri ekstra açıklamalı olarak yeniden kurguladım. Şu linkte kodlarını ve yazdığım yorumları açıkça paylaştığım kod deposu (repository) var.

Link şurada.

İlgilenenlerin işine yarayacağını umuyorum.

Yorumlarınızı, katkılarınızı, sorularınızı memnuniyetle beklerim.

Son bir not benim gibi R’cılar için, Scikit ile R Caret arasında basit bir mukayese:

Scikit-in R’dan farkı

Daha önce makine öğrenme algoritmalarını daha çok R ile denemiştim. Python ve Scikit kullanımında en çok dikkat ettiğim özellikler şunlar. İşte tecrübe:)

Scikit’in artıları:

  • Scikit özellikle Imputer ve OneHotEncoder ile çok kullanışlı ve ileri özellikler sunuyor. R’da muhakkak vardır ancak hiç karşılaşmadım.
  • Pipeline ve Pipeline’ları bir araya getiren FeaturedUnion özelliği’de Scikit’de sevdiğim özellikler’den. R’da görmedim.
  • GridSearch özelliğine yani en iyi kombinasyonun da bi zahmet makine tarafından bulunması (Hyperparameter Tuning) özelliğine bayıldım.

R’ın artıları:

  • Jupyter Notebook halen R Studio’nun yanından geçmez.
  • SciKit NumPy üzerinde çalışıyor ancak Pandas data frameleri üzerinde çalışmıyor. Bu bir ayıp. R’da makine öğrenme modelleri benim kullandığım caret kütüphanesi üzerinde data frame’de çalışıyor.

Her ikisinde de mevcut olanlar:

  • K-Folding R’da Caret kütüphesinde de var.

 

 

Reklamlar

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))