-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathders3.qmd
243 lines (141 loc) · 7.47 KB
/
ders3.qmd
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
---
title: "Değerlendirme Ölçütleri"
subtitle: "FEF3001 Yapay zekaya giriş - Ders3"
author: "Alper Yılmaz"
date: 2024-07-11
format:
revealjs:
chalkboard: true
css: custom.css
smaller: true
scrollable: true
controls: true
touch: true
history: false
progress: true
slide-number: c/t
typora-copy-images-to: images
---
## Değerlendirme ölçütleri / Performance Metrics
* Sınıflandırma değerlendirme (Classification)
* Regresyon değerlendirme (Regression)
## Sınıflandırma ve Regresyon (Classification vs regression)
![](attachments/1677785069046.png)
[Source](https://www.linkedin.com/pulse/aipart3regression-vs-classification-models-arnab-mukherjee)
##
![](attachments/Screenshot-2023-05-02-at-9.57.48-AM.png)
[Source](https://acua.qcri.org/blog/comparing-the-results-classification-vs-regression-models-in-machine-learning/)
## Sınıflandırma ve Regresyon
![](attachments/regression-data-vs-classification-data.png)
[Source](https://www.sharpsightlabs.com/blog/regression-vs-classification/)
##
![](attachments/1CbxJX9DXjxx17X4NupHrtw.webp)
[Source](https://medium.com/@Nichu55/understanding-the-difference-between-regression-and-classification-c96862d7f4b0)
## Fit
![](attachments/1718273106637.svg)
[Source](https://www.mathworks.com/discovery/overfitting.html)
## Training
![](attachments/2_train-test-split.jpg)
[Source](https://builtin.com/data-science/train-test-split)
## Training / Test
![](attachments/1_train-test-split_0.jpg)
[Source](https://builtin.com/data-science/train-test-split)
## Classification Performance Metrics
Bir Sınıflandırma modeli oluşturulduktan sonra bu model ile yapılan tahminlerin ne kadar doğru olduğuna dair değerlendirme yapılması gereklidir\.
Aşağıda verilen confusion matrix \(karşılaştırma matrisi\) bir sınıflandırma modeline dair gerçekleşen durumları ve bu durumlara dair tahminleri verilmiştir\.
| | | Actual (Gerçek) | |
| :-----------------: | :-----: | :-------------: | :------------: |
| | | True (Doğru) | False (Yanlış) |
| Prediction (Tahmin) | Pozitif | TP | FP |
| | Negatif | FN | TN |
TP : True Positive, FP : False Positive, FN : False Negative, TN : True Negative
True ve false değeri bu modele dair gerçek sonuçları\, positive ve negative ise modele dair tahminleri göstermektedir\.
## Classification Performance Metrics
Tümör ve Hasta örnekleri ele alırsak, Normal örnekler *negatif* olarak, Tümör örnekleri de *pozitif* olarak değerlendirilebilir.
<br>
TP : Gerçekte Tümör olan hastayı (true/pozitif) Tümör olarak tahmin etmek (pozitif).
<br>
FP : Gerçekte Normal olan örneği (false/negatif) Tümör olarak tahmin etmek (pozitif). — > Type 1 Error
<br>
FN : Gerçekte Tümor olan örneği (true/pozitif) Normal olarak tahmin etmek (negatif). — > Type 2 Error
<br>
TN : Gerçekte Normal olan örneği (false/negatif) Normal olarak tahmin etmek (negatif).
## Metrics
**Accuracy** *(Doğruluk)* : Doğru tahminlerin toplam veri kümesine oranıdır.
**Precision** *(Kesinlik)*: Pozitif olarak tahmin edilen verilerin kaçının gerçekten pozitif olduğunu gösterir.
**Recall or Sensitivity** *(Duyarlılık)*: Geliştirilen modelin pozitif olanların kaçını yakaladığını gösterir.
**F1 Score** *(F1 Skoru)*: F1 score, precision ve recall değerlerinin harmonik ortalamasıdır. Sınıf dağılımı benzer olduğunda accuracy kullanılabilirken, dengesiz veri setleri söz konusu olduğunda F1 skor daha iyi bir metriktir.
**ROC Curve** *(ROC Eğrisi)*: Yanlış pozitif oranı ve gerçek pozitif oranı göz önünde bulundurarak x ekseninde ve y ekseninde 0'dan 100'e kadar olan değerlerin üzerinde bir eğri oluşturulur. Bu eğrinin altında kalan alana Area Under Curve (AUC) adı verilir. Bu alanın büyük olması modelin başarılı olduğunu gösterir. Grafikte yer alan mavi çizgi; ne kadar geniş bir alan kaplıyorsa modelin tahmin başarısı o kadar yüksek, ortadaki kesikli çizgiye ne kadar yakınsa modelin başarı oranı o kadar düşüktür.
## ROC Curve
![](images/hafta2_De%C4%9Ferlendirme%C3%96l%C3%A7%C3%BCtleri0.png)
## Why too many metrics?
:::: {.columns}
::: {.column width="60%"}
Neden birden fazla metrik kullanılıyor, bir örnek ile görelim. Yandaki durum için, 8 Normal ve 2 Tümör olan bir durumda, her örnek için
Normal diye tahminde bulunursak. True Negatif (TN) sayısı 8 ve False Negatif (FN) sayısı ise 2 olmaktadır.
Bu durumda, doğruluk, accuracy
ACC = (TP + TN) / (TP + FP + TN + FN)
formülünden dolayı 8 / 10 = 0.8 yani %80 olarak hesaplanmaktadır.
Fakat, Duyarlılık/Sensitivity
SENS = TP / (TP + FN)
formülünden 0 çıkmaktadır.
:::
::: {.column width="40%"}
| Actual Label | Prediction |
|--------|------------|
| Tumor | Normal |
| Tumor | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
| Normal | Normal |
:::
::::
## Example
100 kişilik bir çalışmada, 25 Tümör hastası ve 75 Normal birey bulunmaktadır. Normal (negatif) olan 70 kişi Normal olarak tahmin edilmştir (TN: True Negatif). 5 kişi Normal olduğu halde Tümör olarak tahmin edilmiştir (FP: False pozitif). Gerçekte Tümör olan 15 kişi Tümör olarak tahmin edilmiştir (TP: True pozitif). Son olarak, 10 kişi Tümör olduğu halde Normal olarak tahmin edilmiştir (FN: False negatif). Bu duruma göre Confusion Matrix aşağıdaki gibi hesaplanacaktır.
| | | Actual | |
| :----: | :-----: | :----: | :-----: |
| | | True | False |
| Tahmin | Pozitif | TP (15) | FP (5) |
| | Negatif | FN (10) | TN (70) |
## Example
Bu durumda,
Doğruluk (Accuracy) ACC = (TP + TN) / (TP + TN + FN + FP) = 0.85
Duyarlılık (Sensitivity) SENS = TP / (TP + FN) = 0.60
Kesinlik (Precision) PREC = TP / (TP + FP) = 0.75
F1 Skor = 2 x (PREC x SENS) / (PREC + SENS) = 0.6667
## Summary
![](attachments/1QAlFTwg8Q1qbKSIXYU5eew.png)
[Source](https://python.plainenglish.io/demystifying-performance-metrics-illuminating-machine-learning-model-evaluation-in-8977e10e87e9)
## Python code
```{python}
#| echo: true
from sklearn.metrics import confusion_matrix
actual = [1, 0, 1, 1, 0, 0, 1, 0, 1, 1]
predicted = [0, 1, 1, 1, 1, 0, 1, 1, 0, 1]
print("\nConfusion matrix")
conf_mat = confusion_matrix(actual, predicted)
print(conf_mat)
```
## Regression Performance Metrics
Following metrics can be used to measure the performance of regression model output.
* Mean Error (ME)
* Mean Absolute Error (MAE)
* Mean Squared Error (MSE)
* Root Mean Squared Error (RMSE)
There are much more advanced metrics but we'll learn only essental ones
## Mean Error (ME)
$$ \text{ME} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i) $$
$y_i$: Actual value, $\hat{y}_i$: predicted value, n: number of observations
## Mean Absolute Error (MAE)
Adding negative results is not right when using ME. Let's take care of it.
$$ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| $$
## Mean Squared Error (MSE)
$$ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$
Please note that squaring the error with punish the model more. Also, squaring a difference will take care of negative sign.
## Root Mean Squared Error (RMSE)
$$ \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} $$