Bu günlerde devamlı meşgul olduğumuz konu Python olduğunda onun ilgili yazılara devam ediyoruz.
Bu yazımızda Python ile Yapay Zekâ ‘nı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
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.
Burda ufak bir aramayla “Occupancy Detection” veri setinde karar kılıyoruz.
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.
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.

Devamı bir sonraki yazımıza….
Birol Kuyumcu