Mar 022017
 
1.211 views

Karar ağacı görselleştirilmesi örnek kodlar

Bu yazımda ele alacağım örnek kodların orijinali Josh Gordon’a aittir. Bu kodlar Python2 için düzenlenmiştir. Ben ise aynı kodların Python 3.5.2 altında çalışabilmesi için gereken düzeltmeleri yaptım. Özellikle pydot kütüphanesi yerine pydotplus kütüphanesinin yüklenmesi, kodların çalıştırılabilmesi açısından önemlidir.

Kullandığımız veritabanı, sklearn kütüphanesiyle birlikte gelmektedir ve sadece 150 kayda sahiptir. Dolayısıyla zayıf konfigürasyonlu makinelerde bile sonuçlar çok kısa sürede alınabilmektedir.

Kodları çalıştırdığım sistem ve gereken kütüphanelerin sürüm numaralarını herhangi bir olumsuzluk olasılığına karşı not ettim:
Ubuntu 16.04
Intel i5 4 çekirdek – 8GB bellek
Python 3.5.2
sklearn 0.18.1
numpy 1.12.0
pydotplus 2.0.2

VERİ TABLOSUNUN GENEL AÇIKLAMASI

Veritabanı İris çiçeği‘nin bilinen üç ayrı türüne ait çeşitli yaprak boyutlarını içermektedir.

Karar ağacı görselleştirilmesi

Iris sotosa Credits: en.wikipedia.org

Bu verisetinin ayrıntılarını https://en.wikipedia.org/wiki/Iris_flower_data_set adresinden inceleyebilirsiniz.

İngilizce bilmeyen okuyucularımız için kısa bir özet yapayım.
İris çiçeğinin setosa, versicolor ve virginica adları verilen 3 ayrı türü bulunmaktadır. Bu türlere ait farklı çiçeklerin çanak yaprak (sepal) ve taç yaprak (petal) ölçüleri en ve boy olarak saptanmıştır. Tablo yapısı şöyledir:

Sepal length Sepal width Petal length Petal width Species
Çanak yap. boy Çanak yap. en Taç yap. boy Taç yap. en Tür
5.1 3.5 1.4 0.2 I. setosa

Ölçüler, santimetre cinsinden verilmiştir. Tabloda 150 kayıt bulunmaktadır.

Aşağıdaki kodların karar ağacı grafik dosyalarını üretebilmesi için sisteminize graphviz uygulamasını yüklemiş olmanız gerekir. Kurulumu aşağıdaki gibi kolayca yapabilirsiniz.

KODLAR

Sorularınızı yorum alanından bana iletebilirsiniz.

Ahmet Aksoy

Links:

Şub 202017
 
1.395 views

TensorFlow örneği ve küçük bir düzeltme

Bir önceki yazımda TensorFlow örneklerinin yer aldığı bir linkten bahsetmiş ve bazı kodlarda küçük düzeltmeler yapılması gerekebileceğinden bahsetmiştim.

Bu durum, hem yazılım dillerinde, hem de kütüphanelerde çok sık geliştirmelerle karşılaşmamızdan kaynaklanıyor.

TensorFlow örneği ve küçük bir düzeltme

Alıntı: tensorflow.org

Aşağıda, sözünü ettiğim kodlardan birini vereceğim. Yaklaşık 90 satırlık bu python kodunda sadece bir metodun adını değiştirmek gerekiyor. Benim yaşadığım sorunu, benimle benzer ortamlarda çalışan pek çok kişi aynen yaşayacaktır. Bu tür sorunları gidermek, en azından azaltmak için kod yazarlarının paylaştıkları açık kaynaklı kodları hangi koşullarda çalıştırdıklarını not etmelerinde yarar var. Bunun çok kolay olmadığını bir kod yazarı olarak ben de biliyorum. Bu nedenle, test ettiğim aşağıdaki kodu hangi ortamda çalıştırdığımı ve nasıl düzelttiğimi sizlerle de paylaşmak istiyorum.

Orijinal kodun yazarı ve nerede paylaşıldığını kodların başlangıç bölümünde bulabilirsiniz.

Test bilgisayarı: 8GB ram, 4 çekirdek, Intel i5
Test sistemi: Ubuntu 16.04
Python sürümü: 3.5.2
TensorFlow sürümü: 1.0.0
numpy sürümü: 1.12.0
matplotlib sürümü: 1.5.3

Kendi sisteminizdeki kütüphane sürümlerini öğrenmek için aşağıdaki kodu kullanın:

Kodlarda düzeltme gereği sadece tek bir satırda (satır no 39) var.

Sorunlu satır no: 39

Düzeltilmiş satır:

Açıklama:

Diğer kodlarla ilgili takıldığınız yerler olursa, yorum alanından sorularınızı bana yöneltebilirsiniz. 15 ayrı örneği yukarıda belirttiğim koşullarda denedim. 12 örneği sorunsuz çalıştırdım. 3 tanesindeki sorunlar hala devam ediyor. Testleri sürdürüyorum.

Ahmet Aksoy

Kaynaklar: