Çarşamba Mayıs 1st, 2019

Decision Tree(Karar Ağacı)

ile Ebubekir Sezer

Decision Tree(Karar Ağacı) hem sınıflandırma hemde regression işlemini gösterebilen makine öğrenmesi algoritmaların’dan biridir. Kullanımı çok basit olan bir algoritmadır. Decision tree’de karar  en başta verilen değerlere göre hareket edilerek devam edilir. En başta verilen root(kök) koşullarla 2 kol’a ayrılır ve buradan sağlanan koşul ile devam edilir.

Şimdi Decision Tree(Karar Ağacı) kullanarak bir tahminleme yapmak istiyorum. Benim elimde bir kişinin iş tecrübesi yıllarına göre sahip olduğu maaşı gösteren veriler var. Ben bu verileri kullanarak küsuratlı iş deneyimine sahip olan kişinin alabileceği maaş miktarını tahmin ettirmeye çalışacağım.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data=pd.read_csv("salary.csv",sep=";")
print(data.head())

x=data.iloc[:,0].values.reshape(-1,1)
y=data.iloc[:,1].values.reshape(-1,1)

İlk olarak yukarıda gördüğünüz gibi kütüphaneleri projeme ekliyorum daha sonra pandas’ı kullanarak csv tipinde olan verimi ekliyorum. Bu veri 2 sütun’dan oluştuğu için x ve y değerlerini atama işlemini iloc kullanarak atıyorum.

from sklearn.tree import DecisionTreeRegressor
tree_regression=DecisionTreeRegressor()
tree_regression.fit(x,y)

x2=np.arange(min(x),max(x),0.01).reshape(-1,1)
y_head=tree_regression.predict(x2)

Sklearn kütüphanesini kullanarak Decision Tree Regressor‘u projeme ekliyorum daha sonra bu regression modelini kullanarak verilerimi fit ediyorum. Daha sonra yıl değerlerini tahmin edebilmem için en az deneyim sahip olduğu 1. yıl ile en yüksek deneyime sahip olduğu 10. yıl arasında ne kadar gelir elde ettiğini öğrenmek için bir değişken atıyorum ve bu değişkeni 1 ile 10 arasında 0.01 arttırarak değerlerini tahmin etmeye çalışıyorum. En son olarak’da verinin grafiğini ekrana çizdiren kodu yazıyorum.

plt.scatter(x,y,color="red")
plt.plot(x2,y_head,color="green")
plt.xlabel("Years Experience")
plt.ylabel("Salary")

Yukarıdaki gibi bir görüntü elde ediyoruz. Soru ve görüşlerinizi e-mail veya yorum olarak belirtebilirsiniz.