376 lines
13 KiB
Text
376 lines
13 KiB
Text
{
|
||
"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": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>date</th>\n",
|
||
" <th>datatype</th>\n",
|
||
" <th>station</th>\n",
|
||
" <th>attributes</th>\n",
|
||
" <th>value</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>2018-01-01T00:00:00</td>\n",
|
||
" <td>PRCP</td>\n",
|
||
" <td>GHCND:US1CTFR0039</td>\n",
|
||
" <td>,,N,</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2018-01-01T00:00:00</td>\n",
|
||
" <td>PRCP</td>\n",
|
||
" <td>GHCND:US1NJBG0015</td>\n",
|
||
" <td>,,N,</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2018-01-01T00:00:00</td>\n",
|
||
" <td>SNOW</td>\n",
|
||
" <td>GHCND:US1NJBG0015</td>\n",
|
||
" <td>,,N,</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>2018-01-01T00:00:00</td>\n",
|
||
" <td>PRCP</td>\n",
|
||
" <td>GHCND:US1NJBG0017</td>\n",
|
||
" <td>,,N,</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>2018-01-01T00:00:00</td>\n",
|
||
" <td>SNOW</td>\n",
|
||
" <td>GHCND:US1NJBG0017</td>\n",
|
||
" <td>,,N,</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78775</th>\n",
|
||
" <td>2018-12-31T00:00:00</td>\n",
|
||
" <td>WDF5</td>\n",
|
||
" <td>GHCND:USW00094789</td>\n",
|
||
" <td>,,W,</td>\n",
|
||
" <td>130.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78776</th>\n",
|
||
" <td>2018-12-31T00:00:00</td>\n",
|
||
" <td>WSF2</td>\n",
|
||
" <td>GHCND:USW00094789</td>\n",
|
||
" <td>,,W,</td>\n",
|
||
" <td>9.8</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78777</th>\n",
|
||
" <td>2018-12-31T00:00:00</td>\n",
|
||
" <td>WSF5</td>\n",
|
||
" <td>GHCND:USW00094789</td>\n",
|
||
" <td>,,W,</td>\n",
|
||
" <td>12.5</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78778</th>\n",
|
||
" <td>2018-12-31T00:00:00</td>\n",
|
||
" <td>WT01</td>\n",
|
||
" <td>GHCND:USW00094789</td>\n",
|
||
" <td>,,W,</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78779</th>\n",
|
||
" <td>2018-12-31T00:00:00</td>\n",
|
||
" <td>WT02</td>\n",
|
||
" <td>GHCND:USW00094789</td>\n",
|
||
" <td>,,W,</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>78780 rows × 5 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"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
|
||
}
|