Thursday, July 31, 2014

ggplot

R dilinde cokca kullanilan ggplot2 kutuphanesi nihayet Python'a tasinmaya baslandi. Kurmak icin,

sudo pip install ggplot

Konu hakkinda guzel bir yazi

Matplotlib ile cok zor yapilan isler ggplot2 ile rahat yapilabiliyor. Kutuphanenin cok ciddi takipcileri / hayranlari var, ozellikle daha once R ile kodlama yapmis olan istatistikciler ve bilimciler. Bu kisilerin cok sevdigi bir ozellik bir grafigin kesit kesit (layer by layer) ust uste konarak tasarlanabilmesi. Bu yaklasima gore grafik noktalari bir kesit, yazilari bir baska kesit, eksen boyutlari bir baska kesit olabilir mesela, ve bu ekler hep benzer cagrilarla yapilir (burada + isareti kullanilmis olmasi raslanti degil). Kutuphane, Leland Wilkinson'un Grafigin Grameri adli yaklasiminin kodlanmis halidir; yani grafiklemenin dili boyle olmalidir seklinde bir yaklasimdir bu -- oldukca iddialidir.

Ornek,

from ggplot import *
print mtcars[:3]

            name   mpg  cyl  disp   hp  drat     wt   qsec  vs  am  gear  carb
0      Mazda RX4  21.0    6   160  110  3.90  2.620  16.46   0   1     4     4
1  Mazda RX4 Wag  21.0    6   160  110  3.90  2.875  17.02   0   1     4     4
2     Datsun 710  22.8    4   108   93  3.85  2.320  18.61   1   1     4     1

[3 rows x 12 columns]


Ilk grafik

from ggplot import *
p = ggplot(mtcars, aes('mpg', 'qsec'))
p = p + geom_point(colour='steelblue') + \
     scale_x_continuous(breaks=[10,20,30], \
     labels=["horrible", "ok", "awesome"])
plt = p.draw()
plt.show()



Goruldugu gibi her sey kesit kesit ekleniyor. Histogram

p = ggplot(aes(x='carat'), data=diamonds)
gg = p + geom_histogram() + ggtitle("Histogram of Diamond Carats") + labs("Carats", "Freq")

plt = gg.draw()
plt.show()



Histogram ve onun uzerine eklenmis egri

p = ggplot(aes(x='wt'),mtcars) + geom_histogram() + geom_density()



Beyzbol verisi uzerinde

df = pd.read_csv("baseball-pitches-clean.csv")
df = df[['pitch_time', 'inning', 'pitcher_name', 'hitter_name', 'pitch_type',
         'px', 'pz', 'pitch_name', 'start_speed', 'end_speed', 'type_confidence']]
print df.head()

                  pitch_time  inning       pitcher_name    hitter_name  \
0  2013-10-01 20:07:43 -0400       1  Francisco Liriano  Shin-Soo Choo  
1  2013-10-01 20:07:57 -0400       1  Francisco Liriano  Shin-Soo Choo  
2  2013-10-01 20:08:12 -0400       1  Francisco Liriano  Shin-Soo Choo  
3  2013-10-01 20:08:31 -0400       1  Francisco Liriano  Shin-Soo Choo  
4  2013-10-01 20:09:09 -0400       1  Francisco Liriano   Ryan Ludwick  

  pitch_type     px     pz pitch_name  start_speed  end_speed  type_confidence 
0          B  0.628  1.547   Fastball         93.2       85.3            0.894 
1          S  0.545  3.069   Fastball         93.4       85.6            0.895 
2          S  0.120  1.826     Slider         89.1       82.8            0.931 
3          S -0.229  1.667     Slider         90.0       83.3            0.926 
4          B -1.917  0.438     Slider         87.7       81.6            0.915 

[5 rows x 11 columns]

Grafikleme

p = ggplot(aes(x='start_speed'), data=df) + geom_histogram() + facet_wrap('pitch_name')
plt = p.draw()
plt.show()



Monday, July 28, 2014

Netflix Dersleri

Netflix makina ogrenimi uzmani Xavier A.'nin tavsiye sistemleri (recommendation systems) hakkinda verdigi ders (slaytlar):

Tuesday, July 8, 2014

Google ile Dunya Kupasi Tahmini

Dunya Kupasi maclarini tahmin eden yapay ogrenim teknikleri, Google muhendisleri tarafindan paylasilmis. Veriyi toplamak icin Google Big Query (Google burada kendi teknolojilerinin reklamini da yapiyor tabii) islemek ve analiz icin Pandas ve diger Python bazli araclari kullanmislar. Basari orani 8 macta 8. Onumuzdeki maclardan tahminler,

Brezilya - Sili (Brezilya, 72%)
Hollanda - Meksika (Hollanda 55%)
Kosta Rika - Yunanistan (Kosta Rika 60%)
Fransa - Nijerya (Fransa 92%)

Dunya Kupasi tahminleri alaninda at yaristiranlardan mesela Nate Silver cuvallamis durumda, tahminleri 50% seviyesinde - rasgele sans ile ayni. Silver bilindigi gibi Bayes modellerini cok kullanir.

Not: Google elemanlari suradaki baglantidan kendi kume ortamlarinda isleyen bir not defteri ve tum kodu iceren Github deposu paylastilar. Fakat bu kodu alip oldugu gibi kendi bilgisayarinizda isletemiyorsunuz,  cunku Google kume ortamina baglantilari var. Biz de bu sebeple kodu alip kume baglantisi icermeyen, gerekli tum verisini kendi icinde tasiyan yeni bir versiyonunu yazdik. Bkz. Istatistik yazilari.