Uzupełnienia do wykładów 7 (KNN) i 9 (NN)

This commit is contained in:
Paweł Skórzewski 2021-05-12 09:26:00 +02:00
parent beb3186e7d
commit f869f2e099
2 changed files with 15 additions and 6 deletions

View File

@ -375,7 +375,7 @@
"execution_count": 10, "execution_count": 10,
"metadata": { "metadata": {
"slideshow": { "slideshow": {
"slide_type": "fragment" "slide_type": "skip"
} }
}, },
"outputs": [], "outputs": [],
@ -390,13 +390,22 @@
"execution_count": 11, "execution_count": 11,
"metadata": { "metadata": {
"slideshow": { "slideshow": {
"slide_type": "subslide" "slide_type": "skip"
} }
}, },
"outputs": [], "outputs": [],
"source": [ "source": [
"# Algorytm k najbliższych sąsiadów\n", "# Algorytm k najbliższych sąsiadów dla pojedynczej obserwacji\n",
"def knn(X, Y, x_new, k, distance=euclidean_distance):\n", "def knn(X, Y, x_new, k, distance=euclidean_distance):\n",
" \"\"\"Funkcja zwraca klasę najbliższego sąsiada dla pojedynczej obserwacji x_new\n",
" obliczoną według algorytmu KNN\n",
" \n",
" Argumenty funkcji:\n",
" X, Y - zbiór uczący\n",
" x_new - obserwacja, dla której chcemy dokonać predykcji\n",
" k - liczba sąsiadów\n",
" distance - funkcja odległości\n",
" \"\"\"\n",
" data = np.concatenate((X, Y), axis=1)\n", " data = np.concatenate((X, Y), axis=1)\n",
" nearest = sorted(\n", " nearest = sorted(\n",
" data, key=lambda xy:distance(xy[0, :-1], x_new))[:k]\n", " data, key=lambda xy:distance(xy[0, :-1], x_new))[:k]\n",
@ -409,7 +418,7 @@
"execution_count": 12, "execution_count": 12,
"metadata": { "metadata": {
"slideshow": { "slideshow": {
"slide_type": "notes" "slide_type": "skip"
} }
}, },
"outputs": [], "outputs": [],
@ -437,7 +446,7 @@
"execution_count": 13, "execution_count": 13,
"metadata": { "metadata": {
"slideshow": { "slideshow": {
"slide_type": "notes" "slide_type": "skip"
} }
}, },
"outputs": [], "outputs": [],

View File

@ -688,7 +688,7 @@
"## Podsumowanie\n", "## Podsumowanie\n",
"\n", "\n",
"* W przypadku jednowarstowej sieci neuronowej wystarczy znać gradient funkcji kosztu.\n", "* W przypadku jednowarstowej sieci neuronowej wystarczy znać gradient funkcji kosztu.\n",
"* Wtedy liczymy tak samo jak w przypadku regresji liniowej, logistycznej, wieloklasowej logistycznej itp. (wymienione modele to szczególne przypadki jednowarstwowych sieci neuronowych(.\n", "* Wtedy liczymy tak samo jak w przypadku regresji liniowej, logistycznej, wieloklasowej logistycznej itp. (wymienione modele to szczególne przypadki jednowarstwowych sieci neuronowych).\n",
"* Regresja liniowa i binarna regresja logistyczna to jeden neuron.\n", "* Regresja liniowa i binarna regresja logistyczna to jeden neuron.\n",
"* Wieloklasowa regresja logistyczna to tyle neuronów, ile klas." "* Wieloklasowa regresja logistyczna to tyle neuronów, ile klas."
] ]