T-Testi nedir?


maxresdefault.jpg

T-Testi nedir diye Google’da arattığınızda Türkçe sitelerdeki açıklamaların maalesef sanki kimse anlamasın diye yazıldığını görürsünüz. Ya bunu yazanlar özellikle böyle yapıyorlar ya da kendileri de tam anlamamış olabilir 3. ihtimal: Benim anlama kapasitem düşük.

Tutup başka dillerdeki sitelerden anladığımı bir örnekle:

T testini ne için yaparız? Diyelim ki Agah Madensuyu A.Ş. patronu Agah Bey, 500ml’lik maden suyu şişelerinin tam dolmadığını iddia etti. İki durum vardır:

Durum 1: Maden suları 500 ml’den daha az dolmamaktadır.
Durum 2: Maden suları 500 ml’den az dolmaktadır.

Şimdi, bu durumu doğrulamak için tüm şişelere bakamayacağımıza göre rastgele seçilen 10 şişeye bakalım. Şişelerin kimi 500 ml’den az, kimi ise 500ml’den çok doldurulmuş. Ortalama alalım dedik o da 495 çıktı!

Patron haklı mı? Diyelim haklı. Peki aynı denemeyi bir daha yaptığımızda ortalamanın 500 ml’den fazla çıkma şansı var mı?

İşte T testi bu ihtimlai ölçer.

T testi sonucunda elde edeceğimiz p değeri Durum 1’in, yapacağımız rastgele kontrollerde gerçekleşme olasılığını ortaya koyar. Bu değer diyelim ki % 0.7 çıkmışsa Durum 1’in gerçekleşme olasılığı küçüktür. Testi yaparken belirlediğimiz güven aralığı 0.1 olsun (Bu kanaatimizin %99 doğrulukta olması demektir). Bu durumda 0.07 değeri 0.1’den küçük olduğundan patron büyük ihtimalle haksızdır.

Buradaki durumda tek bir durum sorgulanmaktaydı. Eğer 2 grup üzerinden inceleme yapıyorsak da T testi kullanırız. Örneğin bir markette satılan 2 tip gevrek paketindeki şeker miktarı aynıdır hipotezini de t testi ile test edebiliriz.

R ile t testi için şu örneğe bakabilirsiniz. R’daki t testi fonksiyonu ise burada.

T Testi Sonuçlarının Yorumlanması

R ile yapacağımız T testi sonuçlarını aşağıdaki gibi yorumlarız (İngilizce):

T testi yorumlanması
Kaynak: https://suinotes.wordpress.com/2009/11/30/understanding-t-test-in-r/
Reklamlar

Ücretsiz Veri Setleri


Görselleştirme, makine öğrenmesi, büyük veri ve başka amaçlarınız için ulaşabileceğiniz verilerin kaynaklarını kategorize eden güzel bir yazı. Şurada.

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.

 

 

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

Meta-decisions


You want to make a decision about an important thing. You getting advises of a lot of people as it should be. However, your mind is wandering. The state of mind falls into a mode of ‘pendulum’. Today you decide to go, tomorrow you decide to remain. In that state of mind, you should review your ‘modus operandi’ for decisions.

Let’s explain the portrait with computer science terminology. Our decision-making tool is kind of functions. It gets some parameters from external universe, process it then throws a result. In the state of indecisiveness, the return is ‘null’. The problem is this function does not work stable. Sometimes due to ‘runtime errors’ or unknown ‘bugs’. For stable functions sometimes due to the wrong ‘feature selection’ or irrelevant input parameters function works properly but not to avail.

For example, you want to select best places to live. Parameters are your career, your family needs, the education quality for your kids. You have selected a city to live. Tomorrow, you remember your health issue and that is required to other alternatives. You return to the other alternative. That is ‘pendulum mode’.

In these situations, the meta-decision may solve your decision-making turmoil. Meta-decision is decisions about your decision making. You should think about “how I decide”, “what are the drawbacks about my decision making”, “how I apply the decision” and “how is the new decision-making process” or meta-decision.

An example:

How do I decide? It is quite bleak. It can be defined as ‘cyclic decision making’. The decision process is making several times with different parameters. My friends have the normative role for my decisions. I value theirs advises.

What are the drawbacks? My decision is biased to keeping status quo. That is overwhelming and I am sure that is not healthy. For advises; sometimes I am feeling kind of pressure on myself to apply the advice without analyzing.

How I apply the decision? Due to status quo bias, often I am not doing anything.

Meta-decision: Up to final decision never make a decision just collect the parameters and ideas to specific paper. Define a special day for decision making. Up to this day collect and review the ‘decision making working paper’. In the day of decision, make your decision and immediately start to apply the decision. If the everything is reversible never hesitate just do it.

Çocuklar için İngilizce Diziler


2017-06-08 12_06_29-Best TV for Kids _ Common Sense Media.png

Dil öğreniminde yanlızca çocuklar için değil yetişkinler için de film izleme önemli bir aktivitedir. Peki çocuklarımızla hangi dizileri izleyeceğiz. Çocuklarım için takip ettiğim Cambridge English For Kids sitesinin yolladığı mailden çocuklar için özel olarak seçilmiş dizilerin olduğunu öğrendim. Linki şurada.

Diziyi çocuğunuzun yaşına uygun olarak seçtikten sonra, ailece izlemeniz öneriliyor. Cambridge çocuklara önce altyazılı olarak dizi izletmeyi, çocuklara sırf izlediklerinden duydukları yeni kavramları not etmeleri için bir not defteri vermeyi ve çocukların bu yeni kavramları aramasına teşvik etmeyi öneriyor. Ancak çocuklardan kesinlikle ‘pause’  tuşunu kullanmamaları isteniyor. Kendi deneyimimden de biliyorum, dil kelimelerden cümlelere değil cümlelerden kelimelere öğrenilir.

Çocuğunuz diziyi sevdiyse, en sevdiği kahramanların resimlerini çıktı alıp odasına asabilir ara sıra da o kahraman hakkında İngilizce konuşmasını isteyebilirsiniz.

Arduino Kullanmaya Giriş


ar2

Arduino yukarıdaki resimde sol tarafta gördüğünüz cihazdır. Bu cihaz bilgisayara bağlanarak içerisine program yüklenebilir ve yüklediğiniz program ile dış dünyaya ses, ışık gibi sinyaller gönderebilirsiniz. Arduini bilgisayara USB ile bağlanıyor.

Sağdaki nesne ise breadboard’dur (İngilizcesi ekmek tahtası) türkçeye devre tahtası olarak çevrilir. Bu nesne elektronik parçaları (diyot, led, direnç) birbirine lehimsiz bağlamak için kullanılır.

Peki bu cihazları nasıl edineceksiniz? Ben 60 TL’ye şuradan aldım.

Değerli hocalarımdan birinin oğluma hediye ettiği bir Arduino kitabı ile benim de Arduino merakım başladı. Zaten kitabın üzerinde 9+ ∞  yazıyordu. Yani çocuktan babasına herkes kullanabilir demek.

Arduino ile ses algılayıcısısından yanıp sönen ledlere (sizin yaptığınınz programa göre), oradan canlı butonlarla etkileşen programlara kadar her şeyi yapabiliyorsunuz.

Arduino çocukların elektronlik devreleri anlamaları, kendileri yapmaları ve eğlenmeleri için müthiş bir araç. Kesinlikle analitik düşünme ve sabır için bire bir.  Oğlum da Arduino ile çok eğleniyor.

Peki programlamayı nasıl öğrenecekler? Malum Arduino’da diyelim ki 10 saniyede bir lambayı yak söndür demek için şu kodları yazarsınız:

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Bu kodları Çocukların yazması zordur ancak onun için de bir çözüm üretilmiş. Mblock  adlı program yardımı ile çocuklar Scratch mantığında yani sürükle bırak yaparak görsel olarak program geliştiriyorlar. Bunu gerçekten başarıyorlar. Oğlum Agah sıkı bir Scratch kullanıcısı. Scratch hakkındaki yazımı buradan okuyun.

scr.png

Yukarıda Scratch’ın web sayfası görülüyor. Sağ bloktaki görüntü görsel kodlamaya ait renkli bloklar.

Scratch’ın bir benzeri de var o da code.org. Bu site çocuklara sertifika da veriyor. Sertifika verdiğini de oğlumun atladığı seviyelerden sonra bana haber vermesi ile öğrendim.

Şimdi gelelim Arduino ile yaptığımız ilk projeye. Bu bir robot veya uzay aracı değil:) yeni başlayan işi bir program. Mantığı şu; Arduino’ya bağladığımız led lambanın bizim belirlediğimiz aralıkla bizim belirlediğimiz kez yanmasını istiyoruz. Adım adım yaptığımız şuydu:

1- Mblock’ta görsel kodlama ile programı yaz.

Ekran görüntüsü şöyle:

ar1

Gördüğünüz gibi sol blokta mantıksal olarak kolayca anlaşılabilen süreç Mblock tarafından otomatik olarak Arduino koduna dönüştürülüyor.

2- Gerekli bağlantıları yap

ar2

Breadborad ile Arduino arasında yaptığımız bağlantı yukarıdaki gibi. Detaylı çizimi ise şöyle:

ExampleCircuit_sch

Arduino’nun resmi sitesindne aldığımız bu devrede aslında olay birbirine seri bir biçimde bağlanmış 220 ohm’luk bir direnç ve LED’den ibaret. Tabi çıkışı D13’e bağladığımızı unutmayalım. Çünkü kodda bunu Arduino’ya söylüyoruz.

3- Programı Arduino’ya yüklüyoruz

İlk aşamadaki ekran görüntüsüne baktığımızda Bağlan>Seri Port üzerinden COM1 veya COM kaç gelmiş ise onu seçiyoruz. Hangisinin doğru olduğu deneme yanılma.  Daha sonra da sağ blokta yazan “Arduino’ya yükle” butonuna basınca kodlarımız Arduino’nun beynine:) gidiyor.

4-Programı çalıştırmak

Program Arduino’nun beynine yüklendiği anda ekrana yükleme tamamlandı yazısı çıkıyor ve Arduino emirlerimizi uyulayarak ledi istediğimiz aralıkta yakıp söndürüyor.

Videosu:

Çocuğunuza öğretici bir merak kazandırmak istiyorsanız kesinlikle Arduino ile ilgilenin.