Sayfalar

Pazar, Temmuz 03, 2016

Python İle Yapay Zeka 1

Bu günlerde devamlı meşgul olduğumuz konu Python olduğunda onun ilgili yazılara devam ediyoruz.
Bu yazımızda Yapay Zekanın oldukça pratik bir alanı olan Makine Öğrenmesi -Machine Learning- üzerine basit bir örnek yapacağız.

Python dil özellikleri olarak oldukça kolay olduğundan, başka bir dili iyi bir şekilde bilen birinin zorlanmadan öğrenebileceği niteliktedir. Fakat zannımca dilin genişliği öğrenmedeki pekiştirmeyi geciktiriyor.

Pythonun öğrenmeyle, sadece giriş yapmış oluyorsunuz. Öğrenmeniz gereken devasa kütüphaneler var.  Devasa bir kaynakda İnternette var.  Malesef türkçe pek yok. Türkçe kaynak azlığından bahsetmişken bahsedeyim

 PyData  Python konusunda etkinliklerle tanınan Uluslararası bir topluluktur.  Dünyanın dör bir yanın da çok güzel organizasyonlar yapmaktalar. PyData - Ankara olarak Ayşe hanımın öncülüğünde önümüzdeki günlerde ilk etkinliği olacak
Introduction to Data Science Using Python and R
 Muhtemelen türkçe olmasını beklediğimiz :)  bu etkinliğe gitmeyi planlıyoruz -inşallah- İlgilenenlerin de katılımını bekliyoruz.  Bizden duyurması...


Neyse konumuza dönelim devasa kütüphanelerden bahsediyorduk. Biz bu yazımızda çok yaygın olan bir kaç tanesini kullanacağız.
  • Pandas : Verileri Aanlizi kütüphanesi ; okumak yazmak evirmek çevirmek vs...
  • Matplotlib : daha çok 2 boyutlu çizim ve grafikler görseleştirmeler için kullanılan bir kütüphane
  • Scikit-Learn :  Makine Öğrenmesi kütüphanesi
  • Numpy : n boyutlu dizi ve matrisleri kullanmak ve üzerinde hesaplamalar yapmanıza yarayacak bir kütüphane
  • IPython : Adım adım görerek python programı yazmanıza olanak veren sihir ! ;)
Örnek uygulama için şöyle giriş niteliğine uygun bir veri seti bulamamız lazım. Daha Önceki yazılarımızda da çok müracaat ettiğimiz kaynağa yöneliyoruz.
UC Irvine Machine Learning Repository
 Burda ufak bir aramayla "Occupancy Detection" veri setinde karar kılıyoruz.
http://archive.ics.uci.edu/ml/datasets/Occupancy+Detection+

Veriyi Anlamak

Problemi çözmenin ilk adımı veri setini anlamakdan geçer.

Verimiz Enerji tasarrufuna yönelik. Binalardaki ısıtma havalandırma ve iklimlendirme için kullanılan enerjinin talebe göre otomatik ayarlanmasıyla tasarruf edilmesi düşünülüyor. Özetle yapılmak istenen ; sensörlerden alınan bilgilerle o kısmın - odanın - kullanılıp kullanılmadığını tespit ederek, kullanılmadığında tassaruf moduna geçilmesi.
Veri setinin sayfasında da konuyla ilgili bağlantılar var. keza  ufak bir internet araması ilede

gibi çeşitli başka çalışmalara ulaşabilirsiniz.

Şimdi verinin içeriğine bakalım
  • Temperature : Sıcaklık ,
  • Relative Humidity : Bağıl Nem, %
  • Light : Aydınlık Sevyesi, Lux
  • CO2 : Karbondioksit Miktarı, ppm
  • Humidity Ratio : Nem Oranı , Sıcaklık ve Bağıl nemden hesaplanıyor
  • Occupancy : Ölçümün yapıldığı kısımda birilerinin olup olmaması, 0 kimse yok , 1 var
ilk 5 değeri kullanarak  son değişkeni tahmin eden bir sistem geliştireceğiz.



Veriyi Okumak

 Evet kodlamaya geçelim bakalım...
IPython NoteBook 'umuzu açıyoruz.

İlk önce lazım olan kütüphaneleri yüklüyoruz.


son satır IPython üzerinde matplotlib çizimlerinin gösterilmesi için



verilerimiz eğitim için datatraining.txt test içinde datatest.txt dosyalrında csv formatında tutuluyor.
pythonda pek çok şekilde okumamız mümkünsede. En rahatı olan pandas ile okuyoruz.
read_csv ile okuyoruz.

 columns ile okuduğumuz verinin sutun isimlerini görüyoruz.

describe ile sayısal değerler sahip sutunlar için ortalama, minimum, maksimum vb gibi istatistikler ayrı ayrı hesaplanır ve tablo olara size gösterilir.


head(n) ile verimizin ilk n satırının değerleri tablolarak gösterilir




Verimizin kullanmadığımız sutununu kaldıralım - drop - ve giriş  çıkış  değerlerini ayıralım.

1)  date sutununu siliyoruz.
2)  Occupancy sutununu çıkış verisini tutacağımız out_train değişkenine atıyoruz.
3)  Occupancy sutununu data_train den siliyoruz.

ve son aşama  Makine Öğrenmesi algoritmalarında veriler genellikle Numpy ndarray formatında istenir. Bu yüzden verilerimizi values ile numpy ndarray formatına çeviriyoruz.


Evet artık makina öğrenmesi kısmına geçebiliriz elbette test için kullanacağımız verilerede aynı işlemleri uyguladıktan sonra
Yazı baya uzamış burda keselim.
Devamı bir sonraki yazımıza....

Hiç yorum yok: