diff --git a/wyk/05_Metody_ewaluacji.ipynb b/wyk/05_Metody_ewaluacji.ipynb
index fd75c2f..dfbbd8b 100644
--- a/wyk/05_Metody_ewaluacji.ipynb
+++ b/wyk/05_Metody_ewaluacji.ipynb
@@ -53,10 +53,10 @@
}
},
"source": [
- "* Na zbiorze uczącym (treningowym) uczymy algorytmy, a na zbiorze testowym sprawdzamy ich poprawność.\n",
+ "* Na zbiorze uczącym uczymy algorytmy, a na zbiorze testowym sprawdzamy ich poprawność.\n",
"* Zbiór uczący powinien być kilkukrotnie większy od testowego (np. 4:1, 9:1 itp.).\n",
"* Zbiór testowy często jest nieznany.\n",
- "* Należy unikać mieszania danych testowych i treningowych – nie wolno „zanieczyszczać” danych treningowych danymi testowymi!"
+ "* Należy unikać mieszania danych testowych i uczących – nie wolno „zanieczyszczać” danych uczących danymi testowymi!"
]
},
{
@@ -89,7 +89,7 @@
}
},
"source": [
- "Do doboru parametrów najlepiej użyć jeszcze innego zbioru – jest to tzw. **zbiór walidacyjny**"
+ "Do doboru parametrów najlepiej użyć jeszcze innego zbioru – jest to tzw. **zbiór walidacyjny**."
]
},
{
@@ -107,7 +107,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -144,8 +144,7 @@
}
},
"source": [
- "\n",
- "Żródło: https://chrisjmccormick.wordpress.com/2013/07/31/k-fold-cross-validation-with-matlab-code/"
+ ""
]
},
{
@@ -160,7 +159,7 @@
"\n",
"* Podziel dane $D = \\left\\{ (x^{(1)}, y^{(1)}), \\ldots, (x^{(m)}, y^{(m)})\\right\\} $ na $N$ rozłącznych zbiorów $T_1,\\ldots,T_N$\n",
"* Dla $i=1,\\ldots,N$, wykonaj:\n",
- " * Użyj $T_i$ do walidacji i zbiór $S_i$ do trenowania, gdzie $S_i = D \\smallsetminus T_i$. \n",
+ " * Użyj $T_i$ do walidacji i zbiór $S_i$ do uczenia, gdzie $S_i = D \\smallsetminus T_i$. \n",
" * Zapisz model $\\theta_i$.\n",
"* Akumuluj wyniki dla modeli $\\theta_i$ dla zbiorów $T_i$.\n",
"* Ustalaj parametry uczenia na akumulowanych wynikach."
@@ -179,7 +178,7 @@
"* Zazwyczaj ustala się $N$ w przedziale od $4$ do $10$, tzw. $N$-krotna walidacja krzyżowa (*$N$-fold cross validation*). \n",
"* Zbiór $D$ warto zrandomizować przed podziałem.\n",
"* W jaki sposób akumulować wyniki dla wszystkich zbiórow $T_i$?\n",
- "* Po ustaleniu parametrów dla każdego $T_i$, trenujemy model na całych danych treningowych z ustalonymi parametrami.\n",
+ "* Po ustaleniu parametrów dla każdego $T_i$, uczymy model na całych danych uczących z ustalonymi parametrami.\n",
"* Testujemy na zbiorze testowym (jeśli nim dysponujemy)."
]
},
@@ -233,7 +232,7 @@
"### Zbiór walidujący a algorytmy optymalizacji\n",
"\n",
"* Gdy błąd rośnie na zbiorze uczącym, mamy źle dobrany parametr $\\alpha$. Należy go wtedy zmniejszyć.\n",
- "* Gdy błąd zmniejsza się na zbiorze trenującym, ale rośnie na zbiorze walidującym, mamy do czynienia ze zjawiskiem **nadmiernego dopasowania** (*overfitting*).\n",
+ "* Gdy błąd zmniejsza się na zbiorze uczącym, ale rośnie na zbiorze walidującym, mamy do czynienia ze zjawiskiem **nadmiernego dopasowania** (*overfitting*).\n",
"* Należy wtedy przerwać optymalizację. Automatyzacja tego procesu to _early stopping_."
]
},
@@ -267,7 +266,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -295,7 +294,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -306,7 +305,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -328,7 +327,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 2,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -347,7 +346,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -419,7 +418,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 4,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -443,7 +442,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 5,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -467,7 +466,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 6,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -514,7 +513,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 7,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -542,7 +541,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 8,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -572,7 +571,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 9,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -594,7 +593,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 10,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -608,7 +607,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 11,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -628,7 +627,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 12,
"metadata": {
"scrolled": true,
"slideshow": {
@@ -639,7 +638,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "99f3351da36340ca8c6d117c625f3ed4",
+ "model_id": "e622904eeae04709aed0ad3587bd5d7a",
"version_major": 2,
"version_minor": 0
},
@@ -656,7 +655,7 @@
""
]
},
- "execution_count": 21,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
@@ -674,6 +673,7 @@
},
"source": [
"Zadanie klasyfikacyjne z powyższego przykładu polega na przypisaniu punktów do jednej z dwóch kategorii:\n",
+ "\n",
" 0. czerwone krzyżyki\n",
" 1. zielone kółka\n",
"\n",
@@ -689,6 +689,7 @@
},
"source": [
"W rezultacie otrzymano model, który dzieli płaszczyznę na dwa obszary:\n",
+ "\n",
" 0. na zewnątrz granatowej krzywej\n",
" 1. wewnątrz granatowej krzywej\n",
" \n",
@@ -725,7 +726,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 13,
"metadata": {
"slideshow": {
"slide_type": "skip"
@@ -782,12 +783,12 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
"#### Dokładność (*accuracy*)\n",
- "$$ \\mbox{accuracy} = \\frac{\\mbox{przypadki poprawnie sklasyfikowane}}{\\mbox{wszystkie przypadki}} = \\frac{TP + TN}{TP + TN + FP + FN} $$"
+ "$$ \\mbox{accuracy} = \\frac{\\mbox{przypadki poprawnie sklasyfikowane}}{\\mbox{wszystkie przypadki}} \\\\ = \\frac{TP + TN}{TP + TN + FP + FN} $$"
]
},
{
@@ -803,7 +804,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 14,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -848,7 +849,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -858,7 +859,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 15,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -893,7 +894,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -903,7 +904,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 16,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -938,7 +939,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
}
},
"source": [
@@ -948,7 +949,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 17,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -1053,7 +1054,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 18,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -1126,7 +1127,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 19,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -1153,7 +1154,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 20,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -1193,7 +1194,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 21,
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -1211,7 +1212,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 22,
"metadata": {
"slideshow": {
"slide_type": "notes"
@@ -1234,7 +1235,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 23,
"metadata": {
"slideshow": {
"slide_type": "subslide"
diff --git a/wyk/cv.png b/wyk/cv.png
new file mode 100644
index 0000000..7030ec9
Binary files /dev/null and b/wyk/cv.png differ