Karar ağaçlarıyla churn tahmini

Python ile Pazarlama için Machine Learning

Karolis Urbonas

Head of Analytics & Science, Amazon

Karar ağaçlarına giriş

Titanic hayatta kalma veri kümesinde Karar Ağacı kuralları

Python ile Pazarlama için Machine Learning

Modelleme adımları

  1. Veriyi eğitim ve test olarak ayırın
  2. Modeli başlatın
  3. Modeli eğitim verisiyle eğitin
  4. Test verisi üzerinde tahmin yapın
  5. Test verisinde performansı ölçün
Python ile Pazarlama için Machine Learning

Modeli eğitme

Karar ağacı modülünü içe aktarın

from sklearn.tree import DecisionTreeClassifier

Decision Tree modelini başlatın

mytree = DecisionTreeClassifier()

Modeli eğitim verisiyle eğitin

treemodel = mytree.fit(train_X, train_Y)
Python ile Pazarlama için Machine Learning

Model doğruluğunu ölçme

from sklearn.metrics import accuracy_score

pred_train_Y = mytree.predict(train_X) pred_test_Y = mytree.predict(test_X)
train_accuracy = accuracy_score(train_Y, pred_train_Y) test_accuracy = accuracy_score(test_Y, pred_test_Y)
print('Training accuracy:', round(train_accuracy,4)) print('Test accuracy:', round(test_accuracy, 4))
Training accuracy: 0.9973
Test accuracy: 0.7196
Python ile Pazarlama için Machine Learning

Kesinlik ve duyarlılığı ölçme

from sklearn.metrics import precision_score, recall_score

train_precision = round(precision_score(train_Y, pred_train_Y), 4) test_precision = round(precision_score(test_Y, pred_test_Y), 4)
train_recall = round(recall_score(train_Y, pred_train_Y), 4) test_recall = round(recall_score(test_Y, pred_test_Y), 4)
print('Training precision: {}, Training recall: {}'.format(train_precision, train_recall)) print('Test precision: {}, Test recall: {}'.format(train_recall, test_recall))
Training precision: 0.9993, Training recall: 0.9906
Test precision: 0.9906, Test recall: 0.4878
Python ile Pazarlama için Machine Learning

Ağaç derinliği ayarı

depth_list = list(range(2,15))
depth_tuning = np.zeros((len(depth_list), 4))
depth_tuning[:,0] = depth_list

for index in range(len(depth_list)): mytree = DecisionTreeClassifier(max_depth=depth_list[index]) mytree.fit(train_X, train_Y) pred_test_Y = mytree.predict(test_X)
depth_tuning[index,1] = accuracy_score(test_Y, pred_test_Y) depth_tuning[index,2] = precision_score(test_Y, pred_test_Y) depth_tuning[index,3] = recall_score(test_Y, pred_test_Y)
col_names = ['Max_Depth','Accuracy','Precision','Recall'] print(pd.DataFrame(depth_tuning, columns=col_names))
Python ile Pazarlama için Machine Learning

En iyi derinliği seçme

Maksimum derinlik ayarı

Python ile Pazarlama için Machine Learning

En iyi derinliği seçme

Maksimum derinlik ayarı

Python ile Pazarlama için Machine Learning

Bir karar ağacı oluşturalım!

Python ile Pazarlama için Machine Learning

Preparing Video For Download...