#!/usr/bin/env python # coding: utf-8 # #


# # Iris Verisini Kullanarak kNN ve Karar Ağacı Sınıflandırma Algoritmalarının Karşılaştırması

#

# In[1]: from IPython.display import Image,HTML HTML("""""") # In[2]: Image(filename="C:\\Users\\ceakn\\Desktop\\site-resimler\\iris.png") #


# Scikit-learn Üzerinden Iris Dataset' i İçe Aktarma

#

# In[3]: import numpy as np from sklearn import datasets iris = datasets.load_iris() # In[4]: print(iris.feature_names) # In[5]: print(iris.target_names) # In[6]: iris.data # In[7]: print(iris.target) # In[8]: print(type(iris.data)) print(type(iris.target)) print(type(iris)) print(iris.data.shape) # In[9]: np.isnan(iris.data).any() np.isnan(iris.target).any() # In[10]: X = iris.data y = iris.target #


# # Gerekli Kütüphanenin İçe Aktarılması

#

# In[11]: from sklearn.neighbors import KNeighborsClassifier from sklearn.tree import DecisionTreeClassifier #


# # Eğitim ve Test Kümelerine Ayırma (Train/Test split)

#

# In[12]: from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=4) # In[13]: print(X_train.shape ,X_test.shape) # In[14]: print(y_train.shape ,y_test.shape) #


# KNN Algoritması #

#


# K = 1 Değeri İçin Tahmin Yapalım

#

# In[15]: kNN = KNeighborsClassifier(n_neighbors=1) kNN.fit(X_train, y_train) y_pred = kNN.predict(X_test) # In[16]: from sklearn.metrics import accuracy_score,confusion_matrix # Hata Oranını Bulalım # In[17]: print("\nTest Değeri ve Tahmin Edilen Değerler") error_matrix = confusion_matrix(y_test, y_pred) print("\n",error_matrix) print("\nHata Oranı =",accuracy_score(y_test, y_pred)) # ### Hata Matrisinin Yorumlanması # 1. satırda 23 değer varmış ve hepsi doğru tahmin edilmiş. # 2. satırda 12 değer varmış 11 tanesi doğru 1 tanesi yanlış tahmin edilmiş. # 3. satırda 15 değer varmış 14 tanesi doğru 1 tanesi yanlış tahmin edilmiş. # # Not: 23 + 12 + 15 = 50. Bizim test için ayırdığımız sayıya eşit. #


# # K = 5 (Default Value) Değeri İçin Tahmin Yapalım

#

# In[18]: kNN = KNeighborsClassifier(n_neighbors=5) kNN.fit(X_train, y_train) y_pred = kNN.predict(X_test) # Hata Oranına tekrar bakalım # In[19]: print("\nTest Değeri ve Tahmin Edilen Değerler") error_matrix = confusion_matrix(y_test, y_pred) print("\n",error_matrix) print("\nHata Oranı =",accuracy_score(y_test, y_pred)) # In[20]: iris_classifier = DecisionTreeClassifier(max_leaf_nodes=10, random_state=0) # In[21]: iris_classifier.fit(X_train,y_train) # In[22]: y_pred = iris_classifier.predict(X_test) # In[23]: print("\nTest Değeri ve Tahmin Edilen Değerler") error_matrix = confusion_matrix(y_test, y_pred) print("\n",error_matrix) print("\nHata Oranı =",accuracy_score(y_test, y_pred)) # kNN (K=5) ve DecisonTree aynı oranda başarı yakalarken, kNN k=1'de 0.02 oranında daha az bir başarı oranına sahip.