-
Notifications
You must be signed in to change notification settings - Fork 18
/
b-14-Decision_Tree(Sınıflandırma).py
118 lines (80 loc) · 2.87 KB
/
b-14-Decision_Tree(Sınıflandırma).py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 15 04:18:20 2018
@author: regkr
"""
#1. kutuphaneler
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#2. Veri Onisleme
#2.1. Veri Yukleme
veriler = pd.read_csv('veriler.csv')
#pd.read_csv("veriler.csv")
x = veriler.iloc[:,1:4].values #bağımsız değişkenler
y = veriler.iloc[:,4:].values #bağımlı değişken
print(y)
#verilerin egitim ve test icin bolunmesi
from sklearn.cross_validation import train_test_split
x_train, x_test,y_train,y_test = train_test_split(x,y,test_size=0.33, random_state=0)
#verilerin olceklenmesi
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(x_train)
X_test = sc.transform(x_test)
from sklearn.linear_model import LogisticRegression
logr = LogisticRegression(random_state=0)
logr.fit(X_train,y_train)
y_pred = logr.predict(X_test)
print(y_pred)
print(y_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test,y_pred)
print(cm)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1, metric='minkowski')
knn.fit(X_train,y_train)
y_pred = knn.predict(X_test)
cm = confusion_matrix(y_test,y_pred)
print(cm)
from sklearn.svm import SVC
svc = SVC(kernel='poly')
svc.fit(X_train,y_train)
y_pred = svc.predict(X_test)
cm = confusion_matrix(y_test,y_pred)
print('SVC')
print(cm)
#Naive Bayes
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
"""
GaussianNB: sonucu reel sayılar olarak tahmin edeceksek kullanmaya uygun.
MultinomialNB: tahmin nominal değerler olacaksa kullanmaya uygundur.
BernoulliNB: tahmin sonucu ikili değerlerse kullanmaya uygundur.
"""
gnb.fit(X_train, y_train)
y_pred = gnb.predict(X_test)
cm = confusion_matrix(y_test,y_pred)
print('GNB')
print(cm)
#Buradan sonrası Karar ağacı ile sınıflandırma anlatımı kaldırmadım.
"""
Decision_Tree oluşturulurken verinin değişkenleri için information gain
değerleri bulunur ve karar ağacının en tepesine information gain değeri
en yüksek olan bağımsız değişken koyularak bağımlı değişkene dair tahmin
için bir karar ağacı oluşturulur. Information gain türkçe bilgi kazanımı
demektir. Yani bize en tepedeki verinin en çok bilgi kazanımını sağlaması
ve karar ağacının altına indikçe sırasıyla bilgi kazanımı en yüksek
olan değişkenden en düşük olana doğru bir sıralama yapılması söz konusu.
Information gain değerini bulmak için gerekli formüle internetten
bakılabilir. gini veya entropi yöntemiyle hesaplama yapılabilir.
"""
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier(criterion = 'entropy')
#biz default olan gini ile değil entropi yöntemiyle hesaplama yaptık.
dtc.fit(X_train,y_train)
y_pred = dtc.predict(X_test)
cm = confusion_matrix(y_test,y_pred)
print('DTC')
print(cm)