{ "cells": [ { "cell_type": "markdown", "id": "a5fd2a1b-ac9e-474a-a04b-d583a48d3b3f", "metadata": {}, "source": [ "# Dzień 4" ] }, { "cell_type": "code", "execution_count": 5, "id": "6a53b426-a1c5-485b-807c-02c3bddb5a85", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "id": "5cdb50f3-a713-4f9d-b58d-5169529cc736", "metadata": {}, "source": [ "## Najpopularniejsze modele uczenia maszynowego\n", "### Regresja liniowa\n", " - model przewiduje wartość liczbową na podstawie wartości wejściowych\n", "### Regresja logistyczna\n", " - mimo nazwy, służy głownie do klasyfikacji binarnej - prawdopodobieństwo przynależności do grupy\n", " - np. w jakim stopniu prawdopodobieństwa dane objawy pasują do choroby, albo dane finansowe pasują do grupy \"dostanie kredyt\"\n", " - \n", "## Drzewa decyzyjne i last losowe\n", "### Drzewo decyzyjne\n", " - struktura przypominająca drzewo, gdzie każdy węzeł to pytanie o dane a gaęzie to odpowiedzi na to pytanie\n", "### Las losowy\n", " - grupa wielu drzew decyzyjnych, gdzie każde drzewo jest uczone na losowym podzbiorze cech\n", " - końcowa decyzja jest wynikiem głosowania drzew, co poprawia dokładność\n", "### Gradient boosting\n", " - technika polegająca na tym, że bierzemy słabe modele (zwykle drzewa) i łączymy z innymi modelami, które koncentrują się na poprawie błędów poprzenich modeli\n", "\n", "## Wzmacnianie \n", " - środowisko - przestreń, w której agent działa\n", " - agent - autonomiczny program, który podejmuje decyzje na podstawie środowiska\n", " - nagroda - sygnał informujący agenta o jakości akcji\n", " - akcja - działanie podjęte przez agenta, które wpływa na środowisko\n", "Przykład: Środowisko to plansza, duchy, owoce i tabletki, nagroda to owoce, agent to PacMan, akcja to poruszanie się.\n", "\n", "## Support Vector Machines - SVM \n", " - potężne narzędzie do klasyfikacji\n", "\n", "## Metoda KNN\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "4dbc4438-13fa-429d-894e-ffaf184f2fdb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
datedatatypestationattributesvalue
02018-01-01T00:00:00PRCPGHCND:US1CTFR0039,,N,0.0
12018-01-01T00:00:00PRCPGHCND:US1NJBG0015,,N,0.0
22018-01-01T00:00:00SNOWGHCND:US1NJBG0015,,N,0.0
32018-01-01T00:00:00PRCPGHCND:US1NJBG0017,,N,0.0
42018-01-01T00:00:00SNOWGHCND:US1NJBG0017,,N,0.0
..................
787752018-12-31T00:00:00WDF5GHCND:USW00094789,,W,130.0
787762018-12-31T00:00:00WSF2GHCND:USW00094789,,W,9.8
787772018-12-31T00:00:00WSF5GHCND:USW00094789,,W,12.5
787782018-12-31T00:00:00WT01GHCND:USW00094789,,W,1.0
787792018-12-31T00:00:00WT02GHCND:USW00094789,,W,1.0
\n", "

78780 rows × 5 columns

\n", "
" ], "text/plain": [ " date datatype station attributes value\n", "0 2018-01-01T00:00:00 PRCP GHCND:US1CTFR0039 ,,N, 0.0\n", "1 2018-01-01T00:00:00 PRCP GHCND:US1NJBG0015 ,,N, 0.0\n", "2 2018-01-01T00:00:00 SNOW GHCND:US1NJBG0015 ,,N, 0.0\n", "3 2018-01-01T00:00:00 PRCP GHCND:US1NJBG0017 ,,N, 0.0\n", "4 2018-01-01T00:00:00 SNOW GHCND:US1NJBG0017 ,,N, 0.0\n", "... ... ... ... ... ...\n", "78775 2018-12-31T00:00:00 WDF5 GHCND:USW00094789 ,,W, 130.0\n", "78776 2018-12-31T00:00:00 WSF2 GHCND:USW00094789 ,,W, 9.8\n", "78777 2018-12-31T00:00:00 WSF5 GHCND:USW00094789 ,,W, 12.5\n", "78778 2018-12-31T00:00:00 WT01 GHCND:USW00094789 ,,W, 1.0\n", "78779 2018-12-31T00:00:00 WT02 GHCND:USW00094789 ,,W, 1.0\n", "\n", "[78780 rows x 5 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('data/nyc_weather_2018.csv')\n", "df" ] }, { "cell_type": "code", "execution_count": 7, "id": "5987fc03-1a75-45bb-b154-7fb1d8c5c1e9", "metadata": {}, "outputs": [], "source": [ "iris = pd.read_csv('data/iris.csv')\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "1edbb5f7-577a-4460-886e-482464157465", "metadata": {}, "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", "import matplotlib.pyplot as plt\n", "\n", "# To check recent matplotlib compatibility\n", "import matplotlib\n", "from distutils.version import LooseVersion\n", "\n", "\n", "def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):\n", "\n", " # setup marker generator and color map\n", " markers = ('o', 's', '^', 'v', '<')\n", " colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n", " cmap = ListedColormap(colors[:len(np.unique(y))])\n", "\n", " # plot the decision surface\n", " x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", " x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", " xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n", " np.arange(x2_min, x2_max, resolution))\n", " lab = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n", " lab = lab.reshape(xx1.shape)\n", " plt.contourf(xx1, xx2, lab, alpha=0.3, cmap=cmap)\n", " plt.xlim(xx1.min(), xx1.max())\n", " plt.ylim(xx2.min(), xx2.max())\n", "\n", " # plot class examples\n", " for idx, cl in enumerate(np.unique(y)):\n", " plt.scatter(x=X[y == cl, 0],\n", " y=X[y == cl, 1],\n", " alpha=0.8,\n", " c=colors[idx],\n", " marker=markers[idx],\n", " label=f'Class {cl}',\n", " edgecolor='black')\n", " # highlight test examples\n", " if test_idx:\n", " # plot all examples\n", " X_test, y_test = X[test_idx, :], y[test_idx]\n", "\n", " plt.scatter(X_test[:, 0],\n", " X_test[:, 1],\n", " c='none',\n", " edgecolor='black',\n", " alpha=1.0,\n", " linewidth=1,\n", " marker='o',\n", " s=100,\n", " label='Test set')" ] }, { "cell_type": "code", "execution_count": 9, "id": "0de01538-5c3f-4110-bb9d-ecdbb7f0af1b", "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'sklearn'", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[9]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[34;01msklearn\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mmodel_selection\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m train_test_split\n\u001b[32m 3\u001b[39m X_train, X_test, Y_train, Y_test = train_test_split(x,y,test_size=\u001b[32m0.3\u001b[39m, random_state=\u001b[32m1\u001b[39m, stratify=y)\n", "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'sklearn'" ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, Y_train, Y_test = train_test_split(x,y,test_size=0.3, random_state=1, stratify=y)" ] }, { "cell_type": "code", "execution_count": 10, "id": "00d65b25-a305-4409-8daf-8bd4e3cd8005", "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'sklearn'", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[34;01msklearn\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpreprocessing\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m StandardScaler\n\u001b[32m 3\u001b[39m sc = StandardScaler()\n\u001b[32m 4\u001b[39m sc.fit(X_train)\n", "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'sklearn'" ] } ], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "sc = StandardScaler()\n", "sc.fit(X_train)\n", "X_train_std = sc.transform(X_train)\n", "X_test_std = sc.transform(X_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "5cecc1db-c8b7-4153-897e-9a4a216e936e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "f0c72b7a-b92b-4678-8bdb-3b6ca4c201ad", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "06f65b9c-bf3e-438a-a11f-8df0db4f553e", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" } }, "nbformat": 4, "nbformat_minor": 5 }