Elbette, "Karar Ağaçları" (Decision Trees) konusunu baştan sona açıklayacağım ve örnek bir veri seti üzerinde Python kodu ile nasıl kullanıldığını göstereceğim.
Karar Ağaçları Nedir?
Karar Ağaçları, sınıflandırma ve regresyon görevleri için kullanılan, görsel olarak anlaşılması kolay ve uygulaması basit bir makine öğrenmesi algoritmasıdır. Bu algoritma, veri setini daha küçük alt kümelerine ayırarak çalışır ve bir ağaç yapısı oluşturur. Her "dal" bir karar noktasını (özellik ya da soru) temsil eder ve her "yaprak düğüm" ise bir sonuç (sınıf ya da tahmin) ile sonuçlanır.
Örnek Veri Seti ve Python Kullanımı
Örnek olarak, bir otomobilin özelliklerine (örneğin: marka, model, motor hacmi, kilometre) dayanarak ikinci el fiyatını tahmin eden bir regresyon modeli oluşturalım. İşte adım adım yapılacaklar:
Veri Setinin Yüklenmesi ve Hazırlanması: Öncelikle, uygun bir veri seti seçmeli ve ön işlemlerini yapmalıyız (boş değerlerin doldurulması, kategorik verilerin sayısal hale getirilmesi
Veri setimiz, otomobillerin markasını, yılını, kilometre bilgisini ve fiyatını içeriyor. Marka sütunu kategorik olduğu için sayısal bir formata dönüştürdük. Şimdi, veriyi eğitim ve test setlerine ayıracağız ve bir Karar Ağacı regresyon modeli eğiteceğiz:
Veri Setinin Eğitim ve Test Olarak Bölünmesi: Veri setini, modeli eğitmek için kullanılacak bir eğitim seti ve modelin performansını test etmek için kullanılacak bir test seti olmak üzere ikiye ayıracağız.
Modelin Eğitilmesi: Bir Karar Ağacı regresyon modeli oluşturacağız ve eğitim seti üzerinde eğiteceğiz.
Modelin Test Edilmesi ve Performansının Değerlendirilmesi: Eğitilmiş modeli, test seti üzerinde değerlendirip modelin performansını ölçeceğiz.
Bu adımları Python kodu ile gerçekleştirelim:
# Importing necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
# Sample data
data = {
'Brand': ['Toyota', 'Honda', 'Toyota', 'Honda', 'Toyota', 'Honda'],
'Year': [2010, 2010, 2012, 2012, 2014, 2014],
'Mileage': [50000, 30000, 60000, 40000, 70000, 20000],
'Price': [9000, 10000, 8500, 12000, 7500, 13000]
}
# Creating a DataFrame
df = pd.DataFrame(data)
# Encoding the 'Brand' column as it is categorical
df['Brand'] = df['Brand'].astype('category').cat.codes
# Splitting the data into training and testing sets
X = df[['Brand', 'Year', 'Mileage']] # Features
y = df['Price'] # Target variable
# Splitting the dataset into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Creating and training the Decision Tree Regressor model
model = DecisionTreeRegressor()
model.fit(X_train, y_train)
# Predicting the prices for the test set
predictions = model.predict(X_test)
# Calculating the Mean Squared Error
mse = mean_squared_error(y_test, predictions)
# Plotting the decision tree
plt.figure(figsize=(12,8))
plot_tree(model, feature_names=['Brand', 'Year', 'Mileage'], filled=True)
plt.show()
Hiç yorum yok
Yorum Gönder