diff --git a/lab1.ipynb b/lab1.ipynb deleted file mode 100644 index ae6c6d7..0000000 --- a/lab1.ipynb +++ /dev/null @@ -1,198 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Начинаем работу...\n", - "\n", - "Выгрузка данных будет проводиться с помощью Pandas из cvs файла (Данные по продажам домов). Выгрузим-ка данные из cvs файла в датафрейм:" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['id', 'date', 'price', 'bedrooms', 'bathrooms', 'sqft_living',\n", - " 'sqft_lot', 'floors', 'waterfront', 'view', 'condition', 'grade',\n", - " 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated', 'zipcode',\n", - " 'lat', 'long', 'sqft_living15', 'sqft_lot15'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "\n", - "# Загрузка данных\n", - "df = pd.read_csv(\".//static//csv//kc_house_data.csv\")\n", - "\n", - "# Вывод столбцов\n", - "print(df.columns)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Ураа мы справились с выводом данных**\n", - "\n", - "Помимо вывода, подсоединили дополнительные библиотеки, которые помогут построить графики :)\n", - "\n", - "Приступим к построению диаграмм..." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAIjCAYAAAD1OgEdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1RklEQVR4nO3deXwTdf7H8ffk7F2gpS3lFpBLQCmK9UBEFBFdXVldFRVBRVdQgfVY1huvxRMPvFYFXeGn4K2oiCh4oSJaBURERItACwV6t0mbzO+PNmlDy1Xapklez8cjD5qZycwnacR58/3OZwzTNE0BAAAAABqVJdgFAAAAAEA4ImwBAAAAQBMgbAEAAABAEyBsAQAAAEATIGwBAAAAQBMgbAEAAABAEyBsAQAAAEATIGwBAAAAQBMgbAEAAABAEyBsAQAAAEATIGwBaJHmzJkjwzD8j6ioKB166KGaNGmScnNzg10eAADAPtmCXQAA7M306dPVtWtXlZeX6/PPP9eTTz6p9957T6tXr1ZMTEywywMAANgjwhaAFm3kyJEaNGiQJOmyyy5TUlKSHnroIb311ls6//zzg1wdAADAnjGNEEBIGTZsmCRp48aNkqSdO3fquuuuU79+/RQXF6eEhASNHDlSP/zwQ53XlpeX6/bbb9ehhx6qqKgotWvXTmeffbY2bNggSfr9998Dpi7u/hg6dKh/X0uXLpVhGHrllVf073//W2lpaYqNjdVf/vIXbdq0qc6xv/76a5166qlKTExUTEyMTjjhBH3xxRf1vsehQ4fWe/zbb7+9zrYvvfSSMjIyFB0drTZt2ui8886r9/h7e2+1eb1ezZw5U3379lVUVJRSU1N1xRVXaNeuXQHbdenSRaeffnqd40yaNKnOPuur/f7776/zmUqSy+XSbbfdpu7du8vpdKpjx4664YYb5HK56v2sahs6dKgOO+ywOssfeOABGYah33//PWB5fn6+Jk+erI4dO8rpdKp79+6aMWOGvF6vfxvf5/bAAw/U2e9hhx1Wp/76GIahSZMm1Vl++umnq0uXLnVqPeaYY5SUlKTo6GhlZGTo1Vdf3ecxpAN//++//76OP/54xcbGKj4+XqNGjdKaNWvq3XeXLl3q/e7MmTPHv83u3zG73a4uXbro+uuvl9vt9m/nmyJcux6v16v+/fvX2ecFF1ygpKQkrV+/fq+vX7BggSwWi55++mn/sksuuaTO57tp0yZFR0fXeb3v/U2ePLnOex8xYoQMw6jzfd+2bZsuvfRSpaamKioqSgMGDNALL7xQ5/Ver1ePPPKI+vXrp6ioKLVt21annnqqvv32W0na6985tf8b8f2ds7/fBwAtAyNbAEKKLxglJSVJkn777Te9+eabOuecc9S1a1fl5ubq6aef1gknnKCffvpJ6enpkiSPx6PTTz9dS5Ys0Xnnnadrr71WRUVFWrx4sVavXq1u3br5j3H++efrtNNOCzjutGnT6q3n7rvvlmEYuvHGG7Vt2zbNnDlTw4cPV1ZWlqKjoyVJH3/8sUaOHKmMjAzddtttslgsmj17toYNG6bPPvtMRx11VJ39dujQQffee68kqbi4WP/4xz/qPfYtt9yic889V5dddpm2b9+uxx57TEOGDNH333+vVq1a1XnNhAkTdPzxx0uSXn/9db3xxhsB66+44grNmTNH48aN0zXXXKONGzfq8ccf1/fff68vvvhCdru93s/hQOTn5/vfW21er1d/+ctf9Pnnn2vChAnq3bu3Vq1apYcffli//PKL3nzzzYM+tk9paalOOOEEbd68WVdccYU6deqkL7/8UtOmTdPWrVs1c+bMRjvWgXjkkUf0l7/8RWPGjJHb7dbLL7+sc845R++++65GjRrVaMf53//+p7Fjx2rEiBGaMWOGSktL9eSTT+q4447T999/XyekSNLhhx+uf/7zn5Kq/rHj1ltvrXffvu+Yy+XSokWL9MADDygqKkp33nnnXutZtWpVneXPP/+8hg0bplGjRunrr79W69at62zzzTffaOzYsZoyZYquuOKKvb7vW2+9VeXl5fWui4qK0ty5c3X//ff7v+d//vmnlixZoqioqIBty8rKNHToUP3666+aNGmSunbtqgULFuiSSy5Rfn6+rr32Wv+2l156qebMmaORI0fqsssuU2VlpT777DN99dVXGjRokP73v//5t/3ss8/0zDPP6OGHH1ZycrIkKTU1da/vCUALZwJACzR79mxTkvnRRx+Z27dvNzdt2mS+/PLLZlJSkhkdHW3++eefpmmaZnl5uenxeAJeu3HjRtPpdJrTp0/3L3v++edNSeZDDz1U51her9f/Oknm/fffX2ebvn37mieccIL/+SeffGJKMtu3b28WFhb6l8+fP9+UZD7yyCP+fffo0cMcMWKE/zimaZqlpaVm165dzZNPPrnOsY455hjzsMMO8z/fvn27Kcm87bbb/Mt+//1302q1mnfffXfAa1etWmXabLY6y9evX29KMl944QX/sttuu82s/b+Bzz77zJRkzp07N+C1H3zwQZ3lnTt3NkeNGlWn9okTJ5q7/69l99pvuOEGMyUlxczIyAj4TP/3v/+ZFovF/OyzzwJe/9RTT5mSzC+++KLO8Wo74YQTzL59+9ZZfv/995uSzI0bN/qX3XnnnWZsbKz5yy+/BGz7r3/9y7RarWZ2drZpmgf2ndgTSebEiRPrLB81apTZuXPngGWlpaUBz91ut3nYYYeZw4YN2+dx9vf9FxUVma1atTIvv/zygO1ycnLMxMTEOstN0zTT09PN008/3f98xYoVpiRz9uzZ/mW+z6r2Mt9rTzvtNP9z33/bvnrKy8vNTp06mSNHjqz39bm5uWaXLl3ME0880XS73QGvz87ONtPS0sy//OUvdf4eGDt2bMDnu3r1atNisfiPU/v70LlzZ/Pkk082k5OTzVdffdW//M477zSPOeaYOt/3mTNnmpLMl156yb/M7XabmZmZZlxcnP/vhI8//tiUZF5zzTV1PtPafx/s6bOpzfd3zoIFC+qsA9ByMY0QQIs2fPhwtW3bVh07dtR5552nuLg4vfHGG2rfvr0kyel0ymKp+qvM4/Fox44diouLU8+ePfXdd9/59/Paa68pOTlZV199dZ1j7D7t7UBcfPHFio+P9z//29/+pnbt2um9996TJGVlZWn9+vW64IILtGPHDuXl5SkvL08lJSU66aST9OmnnwZMW5Oqpjvu/i/pu3v99dfl9Xp17rnn+veZl5entLQ09ejRQ5988knA9r5pXE6nc4/7XLBggRITE3XyyScH7DMjI0NxcXF19llRURGwXV5e3h5HDXw2b96sxx57TLfccovi4uLqHL93797q1atXwD59U0d3P/7BWLBggY4//ni1bt064FjDhw+Xx+PRp59+GrB9aWlpnffq8Xj2+3jl5eV1Xl9RUVFnO99oqCTt2rVLBQUFOv744wO+y3vj8XjqHKe0tDRgm8WLFys/P1/nn39+wHZWq1WDBw+u93Pen++kT3FxsfLy8rR582Y988wzysnJ0UknnbTH7WfNmqUdO3botttuq3d9SkqKFi5cqK+//lpXXXVVwHHOOOMMJScna968ef6/B/Zk2rRpGjhwoM4555x61zscDo0ZM0azZ8/2L/ON8u7uvffeU1paWsB1o3a7Xddcc42Ki4u1bNkySVV/7xiGUe97a+jfO0VFRcrLy1N+fn6DXg+geTGNEECLNmvWLB166KGy2WxKTU1Vz549A06qfNdDPPHEE9q4cWPACbBvqqFUNf2wZ8+estka96+9Hj16BDw3DEPdu3f3Xw/iu9Zk7Nixe9xHQUFBwPSovLy8Ovvd3fr162Wa5h632326n+/EbPeAs/s+CwoKlJKSUu/6bdu2BTz/8MMP1bZt273WubvbbrtN6enpuuKKK+pce7J+/XqtXbt2j/vc/fgHY/369frxxx/3+1i33XZbvSfM+zvF67nnntNzzz1XZ3nnzp0Dnr/77ru66667lJWVFXCd2v6emP/888/7/J34vpO+ELu7hISEgOcej0f5+flKTEzcrxquvvrqgH/UGDdunKZMmVLvtgUFBbrnnns0derUvX6WhYWFKisr07PPPuu/HnP8+PH64Ycf1K5du30G388//1zvvPOOlixZouzs7D1uN27cOGVkZGjr1q365ZdftHXrVp177rm66667Arb7448/1KNHjzoBr3fv3v71UtXfO+np6WrTps1e6zsQ48eP9/8cFxenM844Qw8//DDTDYEWirAFoEU76qij/N0I63PPPffolltu0fjx43XnnXeqTZs2slgsmjx5cp0Ro2Dw1XD//ffr8MMPr3eb2gHI7XZr69atOvnkk/e5X8Mw9P7778tqte51n5KUk5MjSUpLS9vrPlNSUjR37tx61+9+Ej948OA6J6GPP/643nrrrXpfv3btWs2ZM0cvvfRSvdd+eb1e9evXTw899FC9r+/YseMeaz9QXq9XJ598sm644YZ61x966KEBzydMmFBnROTyyy/f7+OdeeaZdZpk3Hzzzf7fi1R1vc5f/vIXDRkyRE888YTatWsnu92u2bNna968eft1nC5duui///1vwLIFCxbomWee8T/3fSf/97//1ft92P0fJLKzs+X1euu9jqs+119/vU455RR5PB6tWbNG06dPl2maASNGPjNmzJDFYtH111+vHTt21Ls/j8ejq666SpmZmfr73//uvx5q9erVevvtt3XRRRfp1ltv3et1djfeeKNGjBihYcOGBTTg2N2AAQM0YMAAvfjii1q7dq1Gjx5dJ3wG26233qrjjz9eFRUVWrlypaZPn678/Hz/aDqAloWwBSCkvfrqqzrxxBPrjBrk5+f7LzCXpG7duunrr79WRUVFozR58KndJU2STNPUr7/+qv79+/uPK1WNFgwfPnyf+/vhhx9UUVGx14Dp269pmuratWudYFCfn376SYZhqGfPnnvd50cffaRjjz02YDrbniQnJ9d5T3trYjFt2jQdfvjh+vvf/77H4//www866aSTDmpq5/7o1q2biouL9+t3IlWNYO6+bWxs7H4fr0OHDnVeP3PmzICw9dprrykqKkqLFi0KmO5ZX0jZk9jY2DrHycrKCnju+06mpKTs1/v3dc3b13fSp0+fPv79jhgxQi6XS//+97919913+xvWSNKWLVv0yCOP6N5771V8fPwew9YTTzyhH3/8UStXrtSAAQO0evVq/fe//9Wzzz6rM844Q3fddZcmT56scePGacCAAXVe/+abb2r58uX7PRVz/Pjxevjhh5WTk6N33nmn3m06d+6sH3/8UV6vN2B06+eff/avl6o+60WLFmnnzp2NNrrVr18//+c7cuRIZWdn64UXXlBlZWWjj9wDOHhcswUgpFmtVpmmGbBswYIF2rx5c8Cy0aNHKy8vT48//nidfez++gPx4osvqqioyP/81Vdf1datWzVy5EhJUkZGhrp166YHHnhAxcXFdV6/ffv2OrVbrdZ626rXdvbZZ8tqteqOO+6oU79pmgEnrpWVlXrttdd01FFH7XUa4bnnniuPx1Nv17jKysqDukZk+fLleuutt/Sf//xnj0Hq3HPP1ebNm+uMzEhV3d9KSkoafPz6jrV8+XItWrSozrr8/HxVVlY22rH2l9VqlWEYAVPifv/990btwihVBaCEhATdc8899V43Vt93slWrVjrhhBMadLyysjJJCmj/Lkl33HGHUlNTdeWVV+7xtbm5ubrllls0adIkf5A65phjAv78xz/+oQEDBuiqq66q89+Cx+PRv//9b11wwQV7HFne3QUXXKDNmzcrJSVlj639TzvtNOXk5OiVV17xL6usrNRjjz2muLg4/2c1evRomaapO+64o84+Dubvndp8ga+p/4ECQMPwTyAAQtrpp5+u6dOna9y4cTrmmGO0atUqzZ07V4ccckjAdhdffLFefPFFTZ06Vd98842OP/54lZSU6KOPPtJVV12lM888s0HHb9OmjY477jiNGzdOubm5mjlzprp37+6fYmaxWPTss89q5MiR6tu3r8aNG6f27dtr8+bN+uSTT5SQkKB33nlHJSUlmjVrlh599FEdeuihWrp0qf8YvpD2448/avny5crMzFS3bt101113adq0afr999911llnKT4+Xhs3btQbb7yhCRMm6LrrrtNHH32kW265RT/++OMe/5Xe54QTTtAVV1yhe++9V1lZWTrllFNkt9u1fv16LViwQI888oj+9re/Nehz+vDDD3XyySfvdSTloosu0vz583XllVfqk08+0bHHHiuPx6Off/5Z8+fP16JFi/Y5ulJcXKwPPvggYNm6deskScuWLZPdblf79u11/fXX6+2339bpp5+uSy65RBkZGSopKdGqVav06quv6vfffw8YGW0Oo0aN0kMPPaRTTz1VF1xwgbZt26ZZs2ape/fu+vHHHxvtOAkJCXryySd10UUXaeDAgTrvvPPUtm1bZWdna+HChTr22GP1+OOPKzc3V48++qgWLFigIUOG6LXXXvPvw3efu+XLl2vgwIH+kVzfMpvN5p9G+Nhjj+mII46oMw3xww8/1Ny5c+VwOPZY63XXXaeYmBhNnz59j9tYrVY98cQTyszM1OzZswOuafrzzz/lcDgOaIpd69attXXrVn/4rc+ECRP09NNP65JLLtHKlSvVpUsXvfrqq/riiy80c+ZMf9OcE088URdddJEeffRRrV+/Xqeeeqq8Xq8+++wznXjiifXef21fsrKyFBcXp8rKSq1cuVIvvviizjzzzHqnEwNoAYLUBREA9srXAnnFihV73a68vNz85z//abZr186Mjo42jz32WHP58uXmCSecUKctd2lpqXnTTTeZXbt2Ne12u5mWlmb+7W9/Mzds2GCaZsNav//f//2fOW3aNDMlJcWMjo42R40aZf7xxx91Xv/999+bZ599tpmUlGQ6nU6zc+fO5rnnnmsuWbIk4Nj7eowdOzZgv6+99pp53HHHmbGxsWZsbKzZq1cvc+LEiea6detM0zTNq6++2hwyZIj5wQcf1Klp99bvPs8884yZkZFhRkdHm/Hx8Wa/fv3MG264wdyyZYt/mwNt/W4Yhrly5cqA5fX9jtxutzljxgyzb9++ptPpNFu3bm1mZGSYd9xxh1lQUFDneLvvb1+fX+224kVFRea0adPM7t27mw6H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WfrnP/8pi8Uiq9Uql8uljh076r777tO///3vxq4RB8E3hVBqGWHL342wyCWv1wxyNQAAAEDTaVDYstvtsliqXpqSkqLs7GxJUmJiojZt2tR41eGglVePbNmthqyW4Iet5DinDEOq9JraWere9wsAAACAENWga7aOOOIIrVixQj169NAJJ5ygW2+9VXl5efrf//6nww47rLFrxEHwtX132qxBrqSK3WpRUqxTecUubSt0KTnOGeySAAAAgCbRoJGte+65R+3atZMk3X333WrdurX+8Y9/aPv27XrmmWcatUAcHN81W1EtoTtGtZR42r8DAAAg/DVoZGvQoEH+n1NSUvTBBx80WkFoXC1tZEuqutfWT1tpkgEAAIDw1qDhjmHDhik/P7+RS0FTKK+ovqFxCxrZSuVeWwAAAIgADToDX7p0aZ0bGaNlclVWjWxFtaCRLaYRAgAAIBI0eLjDMILf2Q775hvZalHXbFWPbOUysgUAAIAw1qBrtiTpr3/9qxwOR73rPv744wYXhMbln0bYAke2thURtgAAABC+Ghy2MjMzFRcX15i1oAn4pxEGcWRr7dq1Ac937ayagvpnXqG+++67el+TnJysTp06NXltAAAAQFNpUNgyDEPXX3+9UlJSGrseNDKXfxph849sFe7cLkm68MILA5Zb45LUYeILyit2KyNjkCSzzmujY2L089q1BC4AAACErAaFLdOse3KMlqmm9btF9YWaplRWXChJGnXFTerZP8O/3GtKb2wyZVhtuurR1xS1Ww7Mzd6guTOuV15eHmELAAAAIatBYeu2225jCmGIqLmpsVVSZVBqSErvrA49+gYsi8n9TaVujxLad1NKfFRQ6gIAAACaUoPDliRt375d69atkyT17NlTbdu2bbzK0Ch8I1vBDFv1iXPaVOr2qMTlkeKDXQ0AAADQ+BrUNaG0tFTjx49Xenq6hgwZoiFDhig9PV2XXnqpSktLG7tGHISWeFNjqSpsSVJxecsJgAAAAEBjatAZ+JQpU7Rs2TK9/fbbys/PV35+vt566y0tW7ZM//znPxu7RhyE8sqW1/pdqhW2XIQtAAAAhKcGTSN87bXX9Oqrr2ro0KH+Zaeddpqio6N17rnn6sknn2ys+nCQXBXBb/1en7ioqq9ekasiyJUAAAAATaPB0whTU1PrLE9JSWEaYQtT7rvPFiNbAAAA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aOrUqbrtttv03XffacCAARoxYoS2bdsW7NLCUklJiQYMGKBZs2YFu5SIsGzZMk2cOFFfffWVFi9erIqKCp1yyikqKSkJdmlhq0OHDvrPf/6jlStX6ttvv9WwYcN05plnas2aNcEuLeytWLFCTz/9tPr37x/sUsJa3759tXXrVv/j888/D3ZJYW3Xrl069thjZbfb9f777+unn37Sgw8+qNatWwe7tLC0YsWKgO/34sWLJUnnnHNOkCsLTzNmzNCTTz6pxx9/XGvXrtWMGTN033336bHHHmvwPmn93sIMHjxYRx55pB5//HFJktfrVceOHXX11VfrX//6V5CrC2+GYeiNN97QWWedFexSIsb27duVkpKiZcuWaciQIcEuJ2K0adNG999/vy699NJglxK2iouLNXDgQD3xxBO66667dPjhh2vmzJnBLivs3H777XrzzTeVlZUV7FIixr/+9S998cUX+uyzz4JdSkSaPHmy3n33Xa1fv16GYQS7nLBz+umnKzU1Vc8995x/2ejRoxUdHa2XXnqpQftkZKsFcbvdWrlypYYPH+5fZrFYNHz4cC1fvjyIlQFNo6CgQFLVyT+ansfj0csvv6ySkhJlZmYGu5ywNnHiRI0aNSrg73M0jfXr1ys9PV2HHHKIxowZo+zs7GCXFNbefvttDRo0SOecc45SUlJ0xBFH6L///W+wy4oIbrdbL730ksaPH0/QaiLHHHOMlixZol9++UWS9MMPP+jzzz/XyJEjG7xPW2MVh4OXl5cnj8ej1NTUgOWpqan6+eefg1QV0DS8Xq8mT56sY489Vocddliwywlrq1atUmZmpsrLyxUXF6c33nhDffr0CXZZYevll1/Wd999pxUrVgS7lLA3ePBgzZkzRz179tTWrVt1xx136Pjjj9fq1asVHx8f7PLC0m+//aYnn3xSU6dO1b///W+tWLFC11xzjRwOh8aOHRvs8sLam2++qfz8fF1yySXBLiVs/etf/1JhYaF69eolq9Uqj8eju+++W2PGjGnwPglbAIJi4sSJWr16NddXNIOePXsqKytLBQUFevXVVzV27FgtW7aMwNUENm3apGuvvVaLFy9WVFRUsMsJe7X/tbl///4aPHiwOnfurPnz5zNNtol4vV4NGjRI99xzjyTpiCOO0OrVq/XUU08RtprYc889p5EjRyo9PT3YpYSt+fPna+7cuZo3b5769u2rrKwsTZ48Wenp6Q3+fhO2WpDk5GRZrVbl5uYGLM/NzVVaWlqQqgIa36RJk/Tuu+/q008/VYcOHYJdTthzOBzq3r27JCkjI0MrVqzQI488oqeffjrIlYWflStXatu2bRo4cKB/mcfj0aeffqrHH39cLpdLVqs1iBWGt1atWunQQw/Vr7/+GuxSwla7du3q/ENN79699dprrwWposjwxx9/6KOPPtLrr78e7FLC2vXXX69//etfOu+88yRJ/fr10x9//KF77723wWGLa7ZaEIfDoYyMDC1ZssS/zOv1asmSJVxfgbBgmqYmTZqkN954Qx9//LG6du0a7JIiktfrlcvlCnYZYemkk07SqlWrlJWV5X8MGjRIY8aMUVZWFkGriRUXF2vDhg1q165dsEsJW8cee2ydW3b88ssv6ty5c5AqigyzZ89WSkqKRo0aFexSwlppaakslsB4ZLVa5fV6G7xPRrZamKlTp2rs2LEaNGiQjjrqKM2cOVMlJSUaN25csEsLS8XFxQH/Arpx40ZlZWWpTZs26tSpUxArC08TJ07UvHnz9NZbbyk+Pl45OTmSpMTEREVHRwe5uvA0bdo0jRw5Up06dVJRUZHmzZunpUuXatGiRcEuLSzFx8fXuQYxNjZWSUlJXJvYBK677jqdccYZ6ty5s7Zs2aLbbrtNVqtV559/frBLC1tTpkzRMccco3vuuUfnnnuuvvnmGz3zzDN65plngl1a2PJ6vZo9e7bGjh0rm41T96Z0xhln6O6771anTp3Ut29fff/993rooYc0fvz4hu/URIvz2GOPmZ06dTIdDod51FFHmV999VWwSwpbn3zyiSmpzmPs2LHBLi0s1fdZSzJnz54d7NLC1vjx483OnTubDofDbNu2rXnSSSeZH374YbDLiignnHCCee211wa7jLD097//3WzXrp3pcDjM9u3bm3//+9/NX3/9Ndhlhb133nnHPOyww0yn02n26tXLfOaZZ4JdUlhbtGiRKclct25dsEsJe4WFhea1115rdurUyYyKijIPOeQQ86abbjJdLleD98l9tgAAAACgCXDNFgAAAAA0AcIWAAAAADQBwhYAAAAANAHCFgAAAAA0AcIWAAAAADQBwhYAAAAANAHCFgAAAAA0AcIWAAAAgLDy6aef6owzzlB6eroMw9Cbb755wPswTVMPPPCADj30UDmdTrVv31533333Ae3DdsBHBQAAAIAWrKSkRAMGDND48eN19tlnN2gf1157rT788EM98MAD6tevn3bu3KmdO3ce0D4M0zTNBh0dAIAQc8kllyg/P7/Ov3AuXbpUJ554onbt2qVWrVoFpTYAQNMwDENvvPGGzjrrLP8yl8ulm266Sf/3f/+n/Px8HXbYYZoxY4aGDh0qSVq7dq369++v1atXq2fPng0+NtMIAQAAAESUSZMmafny5Xr55Zf1448/6pxzztGpp56q9evXS5LeeecdHXLIIXr33XfVtWtXdenSRZdddtkBj2wRtgAA2E1+fr4uu+wytW3bVgkJCRo2bJh++OEH//rbb79dhx9+eMBrli5dKsMwlJ+fL0nasWOHzj//fLVv314xMTHq16+f/u///q8Z3wUAoD7Z2dmaPXu2FixYoOOPP17dunXTddddp+OOO06zZ8+WJP3222/6448/tGDBAr344ouaM2eOVq5cqb/97W8HdCyu2QIAYDfnnHOOoqOj9f777ysxMVFPP/20TjrpJP3yyy9q06bNfu2jvLxcGRkZuvHGG5WQkKCFCxfqoosuUrdu3XTUUUc18TsAAOzJqlWr5PF4dOihhwYsd7lcSkpKkiR5vV65XC69+OKL/u2ee+45ZWRkaN26dfs9tZCwBQBALZ9//rm++eYbbdu2TU6nU5L0wAMP6M0339Srr76qCRMm7Nd+2rdvr+uuu87//Oqrr9aiRYs0f/58whYABFFxcbGsVqtWrlwpq9UasC4uLk6S1K5dO9lstoBA1rt3b0lVI2OELQAAGuCHH35QcXGx/183fcrKyrRhwwb/81WrVvn/pyxJHo8nYHuPx6N77rlH8+fP1+bNm+V2u+VyuRQTE9O0bwAAsFdHHHGEPB6Ptm3bpuOPP77ebY499lhVVlZqw4YN6tatmyTpl19+kSR17tx5v49F2AIAoJbi4mK1a9dOS5curbOudqfCnj176u233/Y///rrr3XhhRf6n99///165JFHNHPmTPXr10+xsbGaPHmy3G53U5YPAFDV3+W//vqr//nGjRuVlZWlNm3a6NBDD9WYMWN08cUX68EHH9QRRxyh7du3a8mSJerfv79GjRql4cOHa+DAgRo/frxmzpwpr9eriRMn6uSTT64z/XBvCFsAANQycOBA5eTkyGazqUuXLnvczuFwqHv37v7nf/75Z8D6L774QmeeeaY/gHm9Xv3yyy/q06dPk9QNAKjx7bff6sQTT/Q/nzp1qiRp7NixmjNnjmbPnq277rpL//znP7V582YlJyfr6KOP1umnny5Jslgseuedd3T11VdryJAhio2N1ciRI/Xggw8eUB2ELQBARCkoKFBWVlbAMt+/fq5atUpHH320MjMzddZZZ+m+++7ToYceqi1btmjhwoX661//qkGDBu3XcXr06KFXX31VX375pVq3bq2HHnpIubm5hC0AaAZDhw7V3m4nbLfbdccdd+iOO+7Y4zbp6el67bXXDqoOwhYAIKIsXbpURxxxRL3rhgwZok8++UTvvfeebrrpJo0bN07bt29XWlqahgwZotTU1P0+zs0336zffvtNI0aMUExMjCZMmKCzzjpLBQUFjfVWAAAtnGHuLfIBABBBunTpojlz5mjo0KHBLgUAEAa4qTEAANX69OkT0GEQAICDwcgWAAAAADQBRrYAAAAAoAkQtgAAAACgCRC2AAAAAKAJELYAAAAAoAkQtgAAAACgCRC2AAAAAKAJELYAAAAAoAkQtgAAAACgCRC2AAAAAKAJ/D+7ECSVstnhpQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# 1. Диаграмма распределения цен (гистограмма)\n", - "plt.figure(figsize=(10,6))\n", - "sns.histplot(df['price'], bins=50, kde=True)\n", - "plt.title('Распределение цен на недвижимость')\n", - "plt.xlabel('Цена')\n", - "plt.ylabel('Частота')\n", - "plt.show" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Диаграмма №1 (Гистограмма)\n", - "\n", - "Данная круговая диаграмма отображает распределение цен на недвижимость. Bins позволяет установить интервальность исследования, так на графике заданы 50 интервалов, для более детального отображения распределения цен. Это позволяет сделать вывод о том, что большинство объектов недвижимости находится в более низком ценовом сегменте и дорогая недвижимость встречается реже." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Gd5//300a9YMycnJTrdFf22FSfnm119/3eL29p5PU/oeK6mfqYEDByI7O9uosmB5eTmWLl0KjUYj2Suk9/7772Pfvn1YunQplEol6tWrh1atWqFVq1aoW7culEolli5dit9++w3Lli0z2z89PR1r167FokWLrAaCtWvX4sqVKzavoSX6c216Dh588EGEhobigw8+QL9+/ey6vlqtFs888wzuu+8+yV5bVxgxYgTOnDlj8dxduXJF9vDdmgYPHgytVoslS5YYPf7aa69BoVCYfXgr9xoRke+qNT1M1pw+fRrLly/H6dOn0bBhQwDAf/7zH6SlpWH58uV48cUXcfLkSZw6dQpfffUVPv30U2i1Wjz22GO4++67sW3bNi+/AyLPa9GiBVasWIF7770Xbdu2xbhx45CSkoLKykr88ssv+Oqrr8zWzDl48CBSU1MhhMCJEyfw5ptvonHjxoZP93U6HcaOHYvGjRtj0aJFkq/98MMPIyQkBG3atIFSqcTOnTuxYsUK3HbbbWbhKj09HRcuXDAMydu6dSv+85//2PVe58+fjyeffFIyuCmVSnzwwQcYNGgQ2rVrh/vvvx+NGjXCmTNnsH37dsTExBiGML344os4d+6czTD55ptvIjk5GQsXLsR///tflJWV4e2338abb76J1q1bG60low9pBw8eNOvx69y5M1JSUgyT27t06WLXe7dl6dKlWLhwISIiIswmuZt6+umnsXLlSgwaNAiPPvoo4uLi8MknnyAnJwfffPONWe9IZmamUW+hVqvFmTNnjHoIT58+DQBIS0tDnz59EBMTgxtvvBEvvfQSqqqq0KhRI/zwww/IyckxOraj5/P06dNIS0szDMlbsGABmjZtis6dO1t8z0899RRWrFiB4cOHG5UVz87Oxueff47gYOl/Zs+fP49nnnkGU6ZMsXrdunbtismTJ+OZZ57BXXfdZSjrDgA//PAD+vfvL9nzefnyZcyZMwfvvPMOrr/+etx6662Sr6On1WoN16C0tBTLly9HWVkZ7rjjDsM2H374IVavXo3t27fLnh9W019//YXQ0FBs2rTJ7n1N26iXmZkJANizZw8aN26Mli1bYuzYsfjyyy8xefJkbN++Hb169YJWq8Xvv/+OL7/8Et9//73s3ke9oUOH4uabb8azzz6L3NxcdOzYET/88APWrl2LGTNmGHqk9WxdIyLyA94r0Oc+AMTq1asN32/YsEEAEJGRkUZfwcHBYsSIEUIIISZNmiQAiD/++MOw3759+wQA8fvvv3v6LRD5jKNHj4pJkyaJZs2aidDQUBEdHS169eol3nrrLVFeXm7YDoDhS6FQCI1GI+68805x5MgRwzYvvviiUKlU4sCBA0avYVpWfOnSpaJ9+/YiMjJSREVFieTkZDFv3jyjUtn6Esb6r9DQUNGyZUvx/PPPi4qKCqvvyVb5Y6nn9+/fL+68804RHx8vVCqVaNq0qRgxYoTYunWr4VypVCrx4osvGu1Xs6x4TQsWLBAqlUocPXrUUK7a1pdp2W0hhHjppZcEALPXtUZuWfHu3buLe+65x+LfQdOy4kIIceLECXH33XeL2NhYERYWJrp37y42bNhg8XzY+6UvN/3XX3+J4cOHi9jYWKFWq8U999wj/v77b6MSzo6cTzk/w6ZlxYUQ4vjx4+Kuu+4SarVaqFQq0a1bN6N/g6Tcf//9on79+uLixYs2z+vFixdF/fr1xf3332/UXoVCIfbt2ye5/19//SUSExPFjBkzRHFxsVkbap4zIapLdtc8D1FRUaJLly7is88+M2xz7NgxERkZKWbNmmV0LHvKigMQ06dPt7i/nLLitq5rzfdUWVkpFi9eLNq1aydUKpWoU6eO6Nq1q5g3b57ROYHMsuJCVJfLf+yxx0TDhg1FSEiIaNWqlXj55ZeNyqzrj2nrGhGR71MIYTKuoRZQKBRYvXq14dOwL774AqNHj8bhw4fNhhRERUVBo9Fgzpw5ePHFF42G+1y5cgURERGGT4eIiNwlNzcXSUlJyMnJkZz3MnfuXOTm5ppNjn/jjTfw2GOPITc3F02aNHF/Y71AoVBYPTemnDmf5N9uuukm3HTTTZg7d663m0JEtURADMnr3LkztFotzp07Z5hEbqpXr164evUqTpw4YehOP3r0KADXTFQmInIHIQQ+/PBD9OnTp9aGJSIiIm+qNYHp0qVLOH78uOH7nJwcZGZmIi4uDq1bt8bo0aMxbtw4vPrqq+jcuTPOnz+PrVu3okOHDhgyZAj69euHLl26YOLEiXj99deh0+kwdepU9O/f37BeAxGRu+irsVlbJ6dDhw6GeZhlZWVYt24dtm/fjkOHDmHt2rWeaqpXDBgwQHKhX0vsPZ9Ue3Tv3h0tW7b0djOIqBapNUPyfvzxR9x8881mj48fPx4ff/wxqqqq8MILL+DTTz/FmTNnULduXfTo0QPz5s1D+/btAQB///03HnnkEfzwww+IjIzEoEGD8OqrryIuLs7Tb4eIyCr9kLPY2Fg8/PDDXGSbiIjITWpNYCIiIiIiInK1gFmHiYiIiIiIyF4MTERERERERBL8uuiDTqfD33//jejoaK6eTUREREQUwIQQKC0tRcOGDc0WS3eGVwOTVqvF3LlzkZqaivz8fDRs2BATJkzAc889JysA/f3330hMTPRAS4mIiIiIyB/8+eefaNy4scuO59XAtHjxYixduhSffPIJ2rVrh99++w33338/1Go1Hn30UZv7R0dHA6g+KTExMe5uLhERERER+aiSkhIkJiYaMoKreDUw/fLLLxg2bBiGDBkCAGjWrBlWrlyJPXv2yNpf3wsVExPDwERERERERC6fquPVog/XX389tm7diqNHjwIADhw4gJ07d2LQoEEWt6+oqEBJSYnRFxERERERkbt4tYfp6aefRklJCa655hoEBQVBq9ViwYIFGD16tMXtFy5ciHnz5nm4lUREREREFKi82sP05Zdf4vPPP8eKFSuQkZGBTz75BK+88go++eQTi9vPmjULxcXFhq8///zTwy0mIiIiIqJAohBCCG+9eGJiIp5++mlMnTrV8NgLL7yA1NRU/P777zb3LykpgVqtRnFxMecwEREREREFMHdlA6/2MF2+fNmsRnpQUBB0Op2XWkRERERERPQvr85hGjp0KBYsWIAmTZqgXbt22L9/P/73v/9h4sSJ3mwWERERERERAC8PySstLcXs2bOxevVqnDt3Dg0bNsSoUaPw/PPPIzQ01Ob+HJJHRERERESA+7KBVwOTsxiYiIiIiIgIqKVzmIiIiIiIiHwZAxMREREREZEEBiYiIiIiIiIJDExEREREREQSGJiIiIiIiIgkeHUdJiIiIiIib9LqBPbkFOJcaTnqR4ehe1IcgpQKbzeLfAgDExEREREFpLSsPMxbn4284nLDYwnqMMwZmoyBKQlebBn5Eg7JIyIiIqKAk5aVhympGUZhCQDyi8sxJTUDaVl5XmoZ+RoGJiIiIiIKKFqdwLz12RAWntM/Nm99NrQ6S1tQoGFgIiIiIqKAsien0KxnqSYBIK+4HHtyCj3XKPJZDExEREREFFDOlUqHJUe2o9qNgYmIiIiIAkr96DCXbke1GwMTEREREQWU7klxSFCHQap4uALV1fK6J8V5slnkoxiYiIiIiCigBCkVmDM0GQDMQpP++zlDk7keEwFgYCIiIiKiADQwJQFLx3SBRm087E6jDsPSMV24DhMZcOFaIiIiIgpIA1MS0D9Zgz05hThXWo760dXD8NizRDUxMBERERFRwApSKtCzRby3m0E+jEPyiIiIiIiIJDAwERERERERSWBgIiIiIiIiksDAREREREREJIGBiYiIiIiISAIDExERERERkQQGJiIiIiIiIgkMTERERERERBIYmIiIiIiIiCQwMBEREREREUlgYCIiIiIiIpLAwERERERERCSBgYmIiIiIiEgCAxMREREREZEEBiYiIiIiIiIJDExEREREREQSGJiIiIiIiIgkMDARERERERFJYGAiIiIiIiKSwMBEREREREQkgYGJiIiIiIhIAgMTERERERGRBAYmIiIiIiIiCcHebgARERFRbaPVCezJKcS50nLUjw5D96Q4BCkV3m4WETmAgYmIiIjIhdKy8jBvfTbyissNjyWowzBnaDIGpiR4sWVE5AgOySMiIiJykbSsPExJzTAKSwCQX1yOKakZSMvK81LLiMhRDExERERELqDVCcxbnw1h4Tn9Y/PWZ0Ors7QFEfkqrwamZs2aQaFQmH1NnTrVm80iIiIistuenEKznqWaBIC84nLsySn0XKOIyGlencO0d+9eaLVaw/dZWVno378/7rnnHi+2ioiIiMh+50qlw5Ij2xGRb/BqYKpXr57R94sWLUKLFi3Qp08fL7WIiIiIyDH1o8Ncuh0R+QafqZJXWVmJ1NRUPP7441AoLJfdrKioQEVFheH7kpISTzWPiIiIyKruSXFIUIchv7jc4jwmBQCNurrEOBH5D58p+rBmzRoUFRVhwoQJktssXLgQarXa8JWYmOi5BhIRERFZEaRUYM7QZADV4agm/fdzhiZzPSYiP6MQQvhEqZYBAwYgNDQU69evl9zGUg9TYmIiiouLERMT44lmEhEREVnFdZiIvKOkpARqtdrl2cAnhuSdOnUKW7Zswbfffmt1O5VKBZVK5aFWEREREVmm1QnsySnEudJy1I+uHman7zkamJKA/skayeeJyL/4RGBavnw56tevjyFDhni7KURERERWyelBClIq0LNFvLeaSEQu5PU5TDqdDsuXL8f48eMRHOwT+Y2IiIjIorSsPExJzTBbbym/uBxTUjOQlpXnpZYRkbt4PTBt2bIFp0+fxsSJE73dFCIiIiJJWp3AvPXZFivg6R+btz4bWp1PTA8nIhfxepfOrbfeCh+pO0FEREQkaU9OoVnPUk0CQF5xOfbkFHI4HlEt4vUeJiIiIiJ/cK5UOiw5sh0R+QcGJiIiIiIZ6keHuXQ7IvIPDExEREREMnRPikOCOsxsUVo9Baqr5XVPivNks4jIzRiYiIiIiGQIUiowZ2gyAJiFJv33c4Ymc70lolqGgYmIiIhIpoEpCVg6pgs0auNhdxp1GJaO6WJYh4mIag+vV8kjIiIi8icDUxLQP1mDPTmFOFdajvrR1cPw2LNEVDsxMBERERHZKUipYOlwogDBIXlEREREREQSGJiIiIiIiIgkMDARERERERFJYGAiIiIiIiKSwMBEREREREQkgYGJiIiIiIhIAgMTERERERGRBAYmIiIiIiIiCQxMREREREREEhiYiIiIiIiIJDAwERERERERSWBgIiIiIiIiksDAREREREREJIGBiYiIiIiISAIDExERERERkQQGJiIiIiIiIgkMTERERERERBIYmIiIiIiIiCQwMBEREREREUlgYCIiIiIiIpLAwERERERERCSBgYmIiIiIiEgCAxMREREREZEEBiYiIiIiIiIJDExEREREREQSGJiIiIiIiIgkMDARERERERFJYGAiIiIiIiKSwMBEREREREQkgYGJiIiIiIhIAgMTERERERGRBAYmIiIiIiIiCQxMREREREREEhiYiIiIiIiIJDAwERERERERSWBgIiIiIiIiksDAREREREREJMHrgenMmTMYM2YM4uPjER4ejvbt2+O3337zdrOIiIiIiIgQ7M0Xv3jxInr16oWbb74Z3333HerVq4djx46hTp063mwWERERERERAC8HpsWLFyMxMRHLly83PJaUlOTFFhEREREREf3Lq0Py1q1bh27duuGee+5B/fr10blzZyxbtkxy+4qKCpSUlBh9ERERERERuYtXA9PJkyexdOlStGrVCt9//z2mTJmCRx99FJ988onF7RcuXAi1Wm34SkxM9HCLiYiIiIgokCiEEMJbLx4aGopu3brhl19+MTz26KOPYu/evUhPTzfbvqKiAhUVFYbvS0pKkJiYiOLiYsTExHikzURERERE5HtKSkqgVqtdng282sOUkJCA5ORko8fatm2L06dPW9xepVIhJibG6IuIiIiIiMhdvBqYevXqhT/++MPosaNHj6Jp06ZeahEREREREdG/vBqYHnvsMezevRsvvvgijh8/jhUrVuD999/H1KlTvdksIiIiIiIiAF4OTNdeey1Wr16NlStXIiUlBfPnz8frr7+O0aNHe7NZREREREREALxc9MFZ7prYRURERERE/qVWFn0gIiIiIiLyZQxMREREREREEhiYiIiIiIiIJDAwERERERERSWBgIiIiIiIiksDAREREREREJIGBiYiIiIiISAIDExERERERkQQGJiIiIiIiIgkMTERERERERBIYmIiIiIiIiCQwMBEREREREUkI9nYDiIiIiKzR6gT25BTiXGk56keHoXtSHIKUCm83i4gCBAMTERER+ay0rDzMW5+NvOJyw2MJ6jDMGZqMgSkJXmwZEQUKDskjIiIin5SWlYcpqRlGYQkA8ovLMSU1A2lZeV5qGREFEgYmIiIi8jlancC89dkQFp7TPzZvfTa0OktbEBG5DgMTERER+Zw9OYVmPUs1CQB5xeXYk1PouUYRUUBiYCIiIiKfc65UOiw5sh0RkaMYmIiIiMjn1I8Oc+l2RESOYmAiIiIin9M9KQ4J6jBIFQ9XoLpaXvekOE82i4gCEAMTERER+ZwgpQJzhiYDgFlo0n8/Z2gy12MiIrdjYCIiIiKfNDAlAUvHdIFGbTzsTqMOw9IxXbgOExF5BBeuJSIiIp81MCUB/ZM12JNTiHOl5agfXT0Mjz1LROQpDExERETk04KUCvRsEe/tZhBRgGJgIiIi8nFanWAPCxGRlzAwERER+bC0rDzMW59ttIhrgjoMc4Ymcw4PEZEHsOgDERGRj0rLysOU1AyjsAQA+cXlmJKagbSsPC+1jIgocDAwERER2aDVCaSfKMDazDNIP1EArU545DXnrc+GpVfSPzZvfbZH2kJEFMg4JI+IiMgKbw2J25NTaNazVJMAkFdcjj05hSyIQETkRuxhIiIikuDNIXHnSqXDkiPbERGRYxiYiIiILPD2kLj60WG2N7JjOyIicgwDExERkQX2DIlzh+5JcUhQh0GqeLgC1UMDuyfFueX1iYioGgMTERGRBd4eEhekVGDO0GQAMAtN+u/nDE3mekxERG7GwERERGSBLwyJG5iSgKVjukCjNn4N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ctCenEIOwwtAMWFBABQIUQKdmtTBGyO7ICosGJVXdfgsPRc5BWVQAOicWAcN1GGAAM5dqkDhpQrERYZCow5H96Q4AGDvEBEREZEfYGBy0LlShqXapm+buph0Y0t0bVoH+05dxJmLl/H94XxcrtKied1IPDM4GeESlRBDg5UW5wZZw94hIiIiIt/HwOSg+tFh3m4COUkVpED3pDjc1Ka+2fC36jATj7u7JXqvgURERETkdQxMDuqeFIcEdRjyi8s5j8nL6oQHo21CNCJCg6FRh6NTYiwuXq5EwaVKZP1djLCQIFyXFIcxPZoh888iDoMjIiIiItkYmBwUpFRgztBkTEnNMFsM1NLioGS/HklxeG9sN7z8/e/I/LMIlyquollcGEoqtAgPCUbzetaHyVnCYXBEREREZA+fKCv+9ttv4+WXX0Z+fj46duyIt956C927d7e5n7fLigOW12FKUIdh5LVN8NqWo15pky9pGBOKrk3rAFBg3+ki/G2hUMagdg3wv3s7Y8Wvp2RXiCMiIiIiqsld2cDrgemLL77AuHHj8O677+K6667D66+/jq+++gp//PEH6tevb3VfXwhMgOX1cACg9+JtATNkT6kAWtaLQtemdRAUpEBSfKTF0KOvJsdgRERERESuVGsD03XXXYdrr70WS5YsAQDodDokJibikUcewdNPP211X18JTFL0C9sC/jtELz4yFPOGtkN8tArnSstRN0pVXSq7tByFZZWIi1JBE8P5QERERETkXbVy4drKykrs27cPs2bNMjymVCrRr18/pKenm21fUVGBiooKw/clJSUeaaejBqYkYOmYLmZD9mIjQgAARZerPNaWsBAllAAuV+kMj6nDgtCjRV1EhAShYZ1wXN+8Lq5NisO+UxdZGIGIiIiICF4OTBcuXIBWq0WDBg2MHm/QoAF+//13s+0XLlyIefPmeap5LjEwJQH9kzUWh+ztySnE3xcvI+PPizhXUokoVRDu7NIYpeVVmL/xiFHIUgUroBNAlfbfvqqIkCAkN4wGAGhiVLhSpUPFVR2axUfiljb1se/PiwAU6NkiHj2axxte01YYYmEEIiIiIqJqflUlb9asWXj88ccN35eUlCAx0ffXyQlSKiyGEP1aP3dZWOtnQEqCZMiS2/tzc3IDs8cYhoiIiIiI5PNqYKpbty6CgoJw9uxZo8fPnj0LjUZjtr1KpYJKpfJU87zKesgiIiIiIiJP8Gp5stDQUHTt2hVbt241PKbT6bB161b07NnTiy0jIiIiIiLygSF5jz/+OMaPH49u3bqhe/fueP3111FWVob777/f200jIiIiIqIA5/XAdO+99+L8+fN4/vnnkZ+fj06dOiEtLc2sEAQREREREZGneX0dJmf4+jpMRERERETkGe7KBl6dw0REREREROTLGJiIiIiIiIgkMDARERERERFJYGAiIiIiIiKSwMBEREREREQkgYGJiIiIiIhIAgMTERERERGRBAYmIiIiIiIiCQxMREREREREEoK93QBnCCEAVK/qS0REREREgUufCfQZwVX8OjCVlpYCABITE73cEiIiIiIi8gWlpaVQq9UuO55CuDqCeZBOp8Pff/+N6OhoKBQKp49XUlKCxMRE/Pnnn4iJiXFBC8kdeJ38B6+Vf+B18g+8Tv6D18o/8Dr5B3uukxACpaWlaNiwIZRK18088useJqVSicaNG7v8uDExMfzF8QO8Tv6D18o/8Dr5B14n/8Fr5R94nfyD3Ovkyp4lPRZ9ICIiIiIiksDAREREREREJIGBqQaVSoU5c+ZApVJ5uylkBa+T/+C18g+8Tv6B18l/8Fr5B14n/+AL18mviz4QERERERG5E3uYiIiIiIiIJDAwERERERERSWBgIiIiIiIiksDAREREREREJIGB6R9vv/02mjVrhrCwMFx33XXYs2ePt5tUqy1cuBDXXnstoqOjUb9+fdxxxx34448/jLYpLy/H1KlTER8fj6ioKNx11104e/as0TanT5/GkCFDEBERgfr16+PJJ5/E1atXjbb58ccf0aVLF6hUKrRs2RIff/yxu99erbVo0SIoFArMmDHD8Bivk284c+YMxowZg/j4eISHh6N9+/b47bffDM8LIfD8888jISEB4eHh6NevH44dO2Z0jMLCQowePRoxMTGIjY3F//3f/+HSpUtG2xw8eBA33HADwsLCkJiYiJdeeskj76+20Gq1mD17NpKSkhAeHo4WLVpg/vz5qFl/idfK83bs2IGhQ4eiYcOGUCgUWLNmjdHznrwmX331Fa655hqEhYWhffv22LRpk8vfrz+zdq2qqqowc+ZMtG/fHpGRkWjYsCHGjRuHv//+2+gYvFbuZ+t3qqbJkydDoVDg9ddfN3rcp66TILFq1SoRGhoqPvro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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# 2. Связь между площадью жилья и ценой\n", - "plt.figure(figsize=(10, 6))\n", - "plt.scatter(x='sqft_living', y='price', data=df)\n", - "plt.title('Связь между площадью жилья и ценой')\n", - "plt.xlabel('Площадь жилья (кв. футы)')\n", - "plt.ylabel('Цена')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Диаграмма №2 (Точечная диаграмма)\n", - "\n", - "Данная точечная диаграмма отображает связь между площадью жилья и ценой. Массовое скопление точек в нижней части графика сообщает о том, что большинство объектов недвижимости находятся в доступном ценовом сегменте с умеренной жилой площадью. Площадь влияет на цену недвижимости (с увеличением жилой площади возрастает и цена). Таким образом, наблюдается прямолинейная, положительная корреляция между ценой и площадью жилья." - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# 3. Круговая диаграмма, показыващая состояние домов\n", - "plt.figure(figsize=(8, 8))\n", - "df['condition'].value_counts().plot.pie(autopct='%1.1f%%', startangle=90, cmap='Accent', wedgeprops={'edgecolor' : 'black'})\n", - "plt.title('Доля домов по их техническому состоянию')\n", - "plt.ylabel('')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Диаграмма №3 (Круговая диаграмма)\n", - "\n", - "Данная круговая диаграмма позволяет отслеживать в каких состояниях объекты недвижимости находятся. Значения варьируются от 1 до 5, где 1-2 - это плохое и ужасное состояния, 3 - среднее, а 4-5 хорошее и отличное. Преобладающее большинство недвижимости находится в удовлетворительном состоянии (где потребовался бы небольшой ремонт). В плохом и ужасном состоянии доля недвижимости состовляет < 1%, что является очень хорошим показателем. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# Урааа, всё вроде получилось, теперь будем пушиться :)\n", - "P.S. Markdown и правда прикольная и нужная вещь. Однако, почему по началу работы проект не видел, две установленные библиотечки, а после того как пересоздали полностью весь проект, всё прошло без особых проблем..." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "mai", - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/mai/.flake8 b/mai/.flake8 deleted file mode 100644 index 79a16af..0000000 --- a/mai/.flake8 +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length = 120 \ No newline at end of file diff --git a/mai/.vscode/extensions.json b/mai/.vscode/extensions.json deleted file mode 100644 index 37c2cc0..0000000 --- a/mai/.vscode/extensions.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "recommendations": [ - "ms-python.black-formatter", - "ms-python.flake8", - "ms-python.isort", - "ms-toolsai.jupyter", - "ms-toolsai.datawrangler", - "ms-python.python", - "donjayamanne.python-environment-manager", - // optional - "usernamehw.errorlens" - ] -} \ No newline at end of file diff --git a/mai/.vscode/launch.json b/mai/.vscode/launch.json deleted file mode 100644 index a43b215..0000000 --- a/mai/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "mai-service", - "type": "debugpy", - "request": "launch", - "program": "run.py", - "console": "integratedTerminal", - "justMyCode": true - } - ] -} \ No newline at end of file diff --git a/mai/.vscode/settings.json b/mai/.vscode/settings.json deleted file mode 100644 index 06082f2..0000000 --- a/mai/.vscode/settings.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "files.autoSave": "onFocusChange", - "files.exclude": { - "**/__pycache__": true - }, - "editor.detectIndentation": false, - "editor.formatOnType": false, - "editor.formatOnPaste": true, - "editor.formatOnSave": true, - "editor.tabSize": 4, - "editor.insertSpaces": true, - "editor.codeActionsOnSave": { - "source.organizeImports": "explicit", - "source.sortImports": "explicit" - }, - "editor.stickyScroll.enabled": false, - "diffEditor.ignoreTrimWhitespace": false, - "debug.showVariableTypes": true, - "workbench.editor.highlightModifiedTabs": true, - "git.suggestSmartCommit": false, - "git.autofetch": true, - "git.openRepositoryInParentFolders": "always", - "git.confirmSync": false, - "errorLens.gutterIconsEnabled": true, - "errorLens.messageEnabled": false, - "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter", - }, - "python.languageServer": "Pylance", - "python.analysis.typeCheckingMode": "basic", - "python.analysis.autoImportCompletions": true, - "isort.args": [ - "--profile", - "black" - ], - "notebook.lineNumbers": "on", - "notebook.output.minimalErrorRendering": true, -} \ No newline at end of file diff --git a/mai/assets/quantile.png b/mai/assets/quantile.png deleted file mode 100644 index d44e6ff..0000000 Binary files a/mai/assets/quantile.png and /dev/null differ diff --git a/mai/backend/__init__.py b/mai/backend/__init__.py deleted file mode 100644 index 2ef306b..0000000 --- a/mai/backend/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -import importlib -import os -import traceback - -import matplotlib -from apiflask import APIBlueprint, APIFlask -from flask_cors import CORS - -matplotlib.use("agg") - -cors = CORS() -api_bp = APIBlueprint("api", __name__, url_prefix="/api/v1") -dataset_path: str | None = None - - -class Config: - SECRET_KEY = "secret!" - SEND_FILE_MAX_AGE_DEFAULT = -1 - - -def create_app(): - global dataset_path - - # Create and configure app - app = APIFlask( - "MAI Service", - title="MAI Service API", - docs_path="/", - version="1.0", - static_folder="", - template_folder="", - ) - app.config.from_object(Config) - - dataset_path = os.path.join(app.instance_path, "dataset") - os.makedirs(dataset_path, exist_ok=True) - - @app.errorhandler(Exception) - def my_error_processor(error): - traceback.print_exception(error) - return {"message": str(error), "detail": "No details"}, 500 - - # Import custom REST methods - importlib.import_module("backend.api") - - # Enable REST API - app.register_blueprint(api_bp) - - # Enable app extensions - cors.init_app(app) - - return app diff --git a/mai/backend/api.py b/mai/backend/api.py deleted file mode 100644 index 2f6d2be..0000000 --- a/mai/backend/api.py +++ /dev/null @@ -1,57 +0,0 @@ -from apiflask import FileSchema, Schema, fields -from flask import send_file - -from backend import api_bp, dataset_path -from backend.service import Service - - -class FileUpload(Schema): - file = fields.File(required=True) - - -class ColumnInfoDto(Schema): - datatype = fields.String() - items = fields.List(fields.String()) - - -class TableColumnDto(Schema): - name = fields.String() - datatype = fields.String() - items = fields.List(fields.String()) - - -service = Service(dataset_path) - - -@api_bp.post("/dataset") -@api_bp.input(FileUpload, location="files") -def upload_dataset(files_data): - uploaded_file = files_data["file"] - return service.upload_dataset(uploaded_file) - - -@api_bp.get("/dataset") -def get_all_datasets(): - return service.get_all_datasets() - - -@api_bp.get("/dataset/") -@api_bp.output(TableColumnDto(many=True)) -def get_dataset_info(name: str): - return service.get_dataset_info(name) - - -@api_bp.get("/dataset//") -@api_bp.output(ColumnInfoDto) -def get_column_info(name: str, column: str): - return service.get_column_info(name, column) - - -@api_bp.get("/dataset/draw/hist//") -@api_bp.output( - FileSchema(type="string", format="binary"), content_type="image/png", example="" -) -def get_dataset_hist(name: str, column: str): - data = service.get_hist(name, column) - data.seek(0) - return send_file(data, download_name=f"{name}.hist.png", mimetype="image/png") diff --git a/mai/backend/service.py b/mai/backend/service.py deleted file mode 100644 index c4a3935..0000000 --- a/mai/backend/service.py +++ /dev/null @@ -1,59 +0,0 @@ -import io -import os -import pathlib -from typing import BinaryIO, Dict, List - -import pandas as pd -from matplotlib.figure import Figure -from werkzeug.datastructures import FileStorage -from werkzeug.utils import secure_filename - - -class Service: - def __init__(self, dataset_path: str | None) -> None: - if dataset_path is None: - raise Exception("Dataset path is not defined") - self.__path: str = dataset_path - - def __get_dataset(self, filename: str) -> pd.DataFrame: - full_file_name = os.path.join(self.__path, secure_filename(filename)) - return pd.read_csv(full_file_name) - - def upload_dataset(self, file: FileStorage) -> str: - if file.filename is None: - raise Exception("Dataset upload error") - file_name: str = file.filename - full_file_name = os.path.join(self.__path, secure_filename(file_name)) - file.save(full_file_name) - return file_name - - def get_all_datasets(self) -> List[str]: - return [file.name for file in pathlib.Path(self.__path).glob("*.csv")] - - def get_dataset_info(self, filename) -> List[Dict]: - dataset = self.__get_dataset(filename) - dataset_info = [] - for column in dataset.columns: - items = dataset[column].astype(str) - column_info = { - "name": column, - "datatype": dataset.dtypes[column], - "items": items, - } - dataset_info.append(column_info) - return dataset_info - - def get_column_info(self, filename, column) -> Dict: - dataset = self.__get_dataset(filename) - datatype = dataset.dtypes[column] - items = sorted(dataset[column].astype(str).unique()) - return {"datatype": datatype, "items": items} - - def get_hist(self, filename, column) -> BinaryIO: - dataset = self.__get_dataset(filename) - bytes = io.BytesIO() - plot: Figure | None = dataset.plot.hist(column=[column], bins=80).get_figure() - if plot is None: - raise Exception("Can't create hist plot") - plot.savefig(bytes, dpi=300, format="png") - return bytes diff --git a/mai/docs/path1.png b/mai/docs/path1.png deleted file mode 100644 index a94aff4..0000000 Binary files a/mai/docs/path1.png and /dev/null differ diff --git a/mai/docs/path2.png b/mai/docs/path2.png deleted file mode 100644 index 3b22399..0000000 Binary files a/mai/docs/path2.png and /dev/null differ diff --git a/mai/docs/path3.png b/mai/docs/path3.png deleted file mode 100644 index 557256d..0000000 Binary files a/mai/docs/path3.png and /dev/null differ diff --git a/mai/docs/path4.png b/mai/docs/path4.png deleted file mode 100644 index 4f65865..0000000 Binary files a/mai/docs/path4.png and /dev/null differ diff --git a/mai/lab.ipynb b/mai/lab.ipynb deleted file mode 100644 index e69de29..0000000 diff --git a/mai/lab4.ipynb b/mai/lab4.ipynb new file mode 100644 index 0000000..fb3d496 --- /dev/null +++ b/mai/lab4.ipynb @@ -0,0 +1,2936 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Лабораторная работа 4\n", + "\n", + "Датасет - **Цены на бриллианты**\thttps://www.kaggle.com/datasets/nancyalaswad90/diamonds-prices\n", + "\n", + "1. **carat**: Вес бриллианта в каратах\n", + "2. **cut**: Качество огранки.\n", + "3. **color**: Цвет бриллианта\n", + "4. **clarity**: Чистота бриллианта\n", + "5. **depth**: Процент глубины бриллианта\n", + "6. **table**: Процент ширины бриллианта\n", + "7. **price**: Цена бриллианта в долларах США\n", + "8. **x**: Длина бриллианта в миллиметрах\n", + "9. **y**: Ширина бриллианта в миллиметрах\n", + "10. **z**: Глубина бриллианта в миллиметрах" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Бизнес-цели**: \n", + "1. Прогнозирование цены бриллиантов на основании характеристик.\n", + "2. Анализ частотности и сочетания характеристик бриллиантов, которые пользуются наибольшим спросом, чтобы лучше планировать запасы. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Загрузка набора данных" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Среднее значение поля 'карат': 0.7979346717831785\n" + ] + }, + { + "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", + " \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", + "
caratcutcolorclaritydepthtablepricexyzabove_average_carat
id
10.23IdealESI261.555.03263.953.982.430
20.21PremiumESI159.861.03263.893.842.310
30.23GoodEVS156.965.03274.054.072.310
40.29PremiumIVS262.458.03344.204.232.630
50.31GoodJSI263.358.03354.344.352.750
....................................
539390.86PremiumHSI261.058.027576.156.123.741
539400.75IdealDSI262.255.027575.835.873.640
539410.71PremiumESI160.555.027565.795.743.490
539420.71PremiumFSI159.862.027565.745.733.430
539430.70Very GoodEVS260.559.027575.715.763.470
\n", + "

53943 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " carat cut color clarity depth table price x y z \\\n", + "id \n", + "1 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n", + "2 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n", + "3 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n", + "4 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n", + "5 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n", + "... ... ... ... ... ... ... ... ... ... ... \n", + "53939 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74 \n", + "53940 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64 \n", + "53941 0.71 Premium E SI1 60.5 55.0 2756 5.79 5.74 3.49 \n", + "53942 0.71 Premium F SI1 59.8 62.0 2756 5.74 5.73 3.43 \n", + "53943 0.70 Very Good E VS2 60.5 59.0 2757 5.71 5.76 3.47 \n", + "\n", + " above_average_carat \n", + "id \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "5 0 \n", + "... ... \n", + "53939 1 \n", + "53940 0 \n", + "53941 0 \n", + "53942 0 \n", + "53943 0 \n", + "\n", + "[53943 rows x 11 columns]" + ] + }, + "execution_count": 190, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "from sklearn import set_config\n", + "\n", + "set_config(transform_output=\"pandas\")\n", + "\n", + "df = pd.read_csv(\"data/Diamonds.csv\", index_col=\"id\")\n", + "\n", + "random_state=42\n", + "\n", + "average_carat = df['carat'].mean()\n", + "\n", + "print(f\"Среднее значение поля 'карат': {average_carat}\")\n", + "\n", + "average_carat = df['carat'].mean()\n", + "df['above_average_carat'] = (df['carat'] > average_carat).astype(int)\n", + "\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи классификации\n", + "\n", + "Целевой признак -- Cut" + ] + }, + { + "cell_type": "code", + "execution_count": 191, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'X_train'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + " \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", + "
caratcutcolorclaritydepthtablepricexyzabove_average_carat
id
388360.40Very GoodFVVS262.056.010494.714.742.930
302600.40Very GoodESI163.057.07254.684.712.960
331690.36IdealEVS161.856.08174.554.582.820
10290.70Very GoodEVS158.459.029045.835.913.430
538090.81Very GoodGSI160.756.027336.066.093.691
....................................
29370.77GoodEVS263.457.032915.805.843.690
75140.90GoodFSI161.863.042416.216.183.831
483440.56IdealHVVS162.153.819615.275.333.290
32120.70PremiumFVVS161.860.033485.675.633.490
356540.31Very GoodGVVS263.157.09074.324.302.720
\n", + "

43154 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " carat cut color clarity depth table price x y z \\\n", + "id \n", + "38836 0.40 Very Good F VVS2 62.0 56.0 1049 4.71 4.74 2.93 \n", + "30260 0.40 Very Good E SI1 63.0 57.0 725 4.68 4.71 2.96 \n", + "33169 0.36 Ideal E VS1 61.8 56.0 817 4.55 4.58 2.82 \n", + "1029 0.70 Very Good E VS1 58.4 59.0 2904 5.83 5.91 3.43 \n", + "53809 0.81 Very Good G SI1 60.7 56.0 2733 6.06 6.09 3.69 \n", + "... ... ... ... ... ... ... ... ... ... ... \n", + "2937 0.77 Good E VS2 63.4 57.0 3291 5.80 5.84 3.69 \n", + "7514 0.90 Good F SI1 61.8 63.0 4241 6.21 6.18 3.83 \n", + "48344 0.56 Ideal H VVS1 62.1 53.8 1961 5.27 5.33 3.29 \n", + "3212 0.70 Premium F VVS1 61.8 60.0 3348 5.67 5.63 3.49 \n", + "35654 0.31 Very Good G VVS2 63.1 57.0 907 4.32 4.30 2.72 \n", + "\n", + " above_average_carat \n", + "id \n", + "38836 0 \n", + "30260 0 \n", + "33169 0 \n", + "1029 0 \n", + "53809 1 \n", + "... ... \n", + "2937 0 \n", + "7514 1 \n", + "48344 0 \n", + "3212 0 \n", + "35654 0 \n", + "\n", + "[43154 rows x 11 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'y_train'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
above_average_carat
id
388360
302600
331690
10290
538091
......
29370
75141
483440
32120
356540
\n", + "

43154 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_carat\n", + "id \n", + "38836 0\n", + "30260 0\n", + "33169 0\n", + "1029 0\n", + "53809 1\n", + "... ...\n", + "2937 0\n", + "7514 1\n", + "48344 0\n", + "3212 0\n", + "35654 0\n", + "\n", + "[43154 rows x 1 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'X_test'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + " \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", + "
caratcutcolorclaritydepthtablepricexyzabove_average_carat
id
324520.39Very GoodEVS260.958.07934.724.772.890
24320.72Very GoodESI163.356.031835.675.713.600
164561.21IdealHSI162.159.065736.816.754.211
460450.56IdealDSI162.556.017295.285.243.290
111151.00GoodESI162.459.049366.356.403.981
....................................
402500.50PremiumFSI159.661.011255.155.123.060
33080.73IdealEVS162.356.033705.755.803.600
78941.12Very GoodISI160.660.043126.736.774.091
213680.36IdealDSI162.253.06264.574.592.850
461440.50PremiumEVS261.359.017465.105.053.110
\n", + "

10789 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " carat cut color clarity depth table price x y z \\\n", + "id \n", + "32452 0.39 Very Good E VS2 60.9 58.0 793 4.72 4.77 2.89 \n", + "2432 0.72 Very Good E SI1 63.3 56.0 3183 5.67 5.71 3.60 \n", + "16456 1.21 Ideal H SI1 62.1 59.0 6573 6.81 6.75 4.21 \n", + "46045 0.56 Ideal D SI1 62.5 56.0 1729 5.28 5.24 3.29 \n", + "11115 1.00 Good E SI1 62.4 59.0 4936 6.35 6.40 3.98 \n", + "... ... ... ... ... ... ... ... ... ... ... \n", + "40250 0.50 Premium F SI1 59.6 61.0 1125 5.15 5.12 3.06 \n", + "3308 0.73 Ideal E VS1 62.3 56.0 3370 5.75 5.80 3.60 \n", + "7894 1.12 Very Good I SI1 60.6 60.0 4312 6.73 6.77 4.09 \n", + "21368 0.36 Ideal D SI1 62.2 53.0 626 4.57 4.59 2.85 \n", + "46144 0.50 Premium E VS2 61.3 59.0 1746 5.10 5.05 3.11 \n", + "\n", + " above_average_carat \n", + "id \n", + "32452 0 \n", + "2432 0 \n", + "16456 1 \n", + "46045 0 \n", + "11115 1 \n", + "... ... \n", + "40250 0 \n", + "3308 0 \n", + "7894 1 \n", + "21368 0 \n", + "46144 0 \n", + "\n", + "[10789 rows x 11 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'y_test'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
above_average_carat
id
324520
24320
164561
460450
111151
......
402500
33080
78941
213680
461440
\n", + "

10789 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_carat\n", + "id \n", + "32452 0\n", + "2432 0\n", + "16456 1\n", + "46045 0\n", + "11115 1\n", + "... ...\n", + "40250 0\n", + "3308 0\n", + "7894 1\n", + "21368 0\n", + "46144 0\n", + "\n", + "[10789 rows x 1 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from typing import Tuple\n", + "import pandas as pd\n", + "from pandas import DataFrame\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "def split_stratified_into_train_val_test(\n", + " df_input,\n", + " stratify_colname=\"y\",\n", + " frac_train=0.6,\n", + " frac_val=0.15,\n", + " frac_test=0.25,\n", + " random_state=None,\n", + ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame, DataFrame, DataFrame]:\n", + " \"\"\"\n", + " Splits a Pandas dataframe into three subsets (train, val, and test)\n", + " following fractional ratios provided by the user, where each subset is\n", + " stratified by the values in a specific column (that is, each subset has\n", + " the same relative frequency of the values in the column). It performs this\n", + " splitting by running train_test_split() twice.\n", + " Parameters\n", + " ----------\n", + " df_input : Pandas dataframe\n", + " Input dataframe to be split.\n", + " stratify_colname : str\n", + " The name of the column that will be used for stratification. Usually\n", + " this column would be for the label.\n", + " frac_train : float\n", + " frac_val : float\n", + " frac_test : float\n", + " The ratios with which the dataframe will be split into train, val, and\n", + " test data. The values should be expressed as float fractions and should\n", + " sum to 1.0.\n", + " random_state : int, None, or RandomStateInstance\n", + " Value to be passed to train_test_split().\n", + " Returns\n", + " -------\n", + " df_train, df_val, df_test :\n", + " Dataframes containing the three splits.\n", + " \"\"\"\n", + " if frac_train + frac_val + frac_test != 1.0:\n", + " raise ValueError(\n", + " \"fractions %f, %f, %f do not add up to 1.0\"\n", + " % (frac_train, frac_val, frac_test)\n", + " )\n", + " if stratify_colname not in df_input.columns:\n", + " raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n", + " X = df_input # Contains all columns.\n", + " y = df_input[\n", + " [stratify_colname]\n", + " ] # Dataframe of just the column on which to stratify.\n", + " # Split original dataframe into train and temp dataframes.\n", + " df_train, df_temp, y_train, y_temp = train_test_split(\n", + " X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n", + " )\n", + " if frac_val <= 0:\n", + " assert len(df_input) == len(df_train) + len(df_temp)\n", + " return df_train, pd.DataFrame(), df_temp, y_train, pd.DataFrame(), y_temp\n", + " # Split the temp dataframe into val and test dataframes.\n", + " relative_frac_test = frac_test / (frac_val + frac_test)\n", + " df_val, df_test, y_val, y_test = train_test_split(\n", + " df_temp,\n", + " y_temp,\n", + " stratify=y_temp,\n", + " test_size=relative_frac_test,\n", + " random_state=random_state,\n", + " )\n", + " assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n", + " return df_train, df_val, df_test, y_train, y_val, y_test\n", + "\n", + "X_train, X_val, X_test, y_train, y_val, y_test = split_stratified_into_train_val_test(\n", + " df, stratify_colname=\"above_average_carat\", frac_train=0.80, frac_val=0, frac_test=0.20, random_state=random_state\n", + ")\n", + "\n", + "display(\"X_train\", X_train)\n", + "display(\"y_train\", y_train)\n", + "\n", + "display(\"X_test\", X_test)\n", + "display(\"y_test\", y_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Формирование конвейера для классификации данных\n", + "\n", + "preprocessing_num -- конвейер для обработки числовых данных: заполнение пропущенных значений и стандартизация\n", + "\n", + "preprocessing_cat -- конвейер для обработки категориальных данных: заполнение пропущенных данных и унитарное кодирование\n", + "\n", + "features_preprocessing -- трансформер для предобработки признаков\n", + "\n", + "features_engineering -- трансформер для конструирования признаков\n", + "\n", + "drop_columns -- трансформер для удаления колонок\n", + "\n", + "pipeline_end -- основной конвейер предобработки данных и конструирования признако" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from sklearn.base import BaseEstimator, TransformerMixin\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.discriminant_analysis import StandardScaler\n", + "from sklearn.impute import SimpleImputer\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "class DaimondFeatures(BaseEstimator, TransformerMixin):\n", + " def __init__(self):\n", + " pass\n", + " def fit(self, X, y=None):\n", + " return self\n", + " def transform(self, X, y=None):\n", + " X[\"Length_to_Width_Ratio\"] = X[\"x\"] / X[\"y\"]\n", + " return X\n", + " def get_feature_names_out(self, features_in):\n", + " return np.append(features_in, [\"Length_to_Width_Ratio\"], axis=0)\n", + " \n", + "\n", + "columns_to_drop = []\n", + "num_columns = [\"carat\", \"depth\", \"table\", \"x\", \"y\", \"z\", \"above_average_carat\"]\n", + "cat_columns = [\"cut\", \"color\", \"clarity\"]\n", + "\n", + "num_imputer = SimpleImputer(strategy=\"median\")\n", + "num_scaler = StandardScaler()\n", + "preprocessing_num = Pipeline(\n", + " [\n", + " (\"imputer\", num_imputer),\n", + " (\"scaler\", num_scaler),\n", + " ]\n", + ")\n", + "\n", + "cat_imputer = SimpleImputer(strategy=\"constant\", fill_value=\"unknown\")\n", + "cat_encoder = OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False, drop=\"first\")\n", + "preprocessing_cat = Pipeline(\n", + " [\n", + " (\"imputer\", cat_imputer),\n", + " (\"encoder\", cat_encoder),\n", + " ]\n", + ")\n", + "\n", + "features_preprocessing = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"prepocessing_num\", preprocessing_num, num_columns),\n", + " (\"prepocessing_cat\", preprocessing_cat, cat_columns),\n", + " ],\n", + " remainder=\"passthrough\"\n", + ")\n", + "\n", + "features_engineering = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"add_features\", DaimondFeatures(), [\"x\", \"y\"]),\n", + " ],\n", + " remainder=\"passthrough\",\n", + ")\n", + "\n", + "drop_columns = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"drop_columns\", \"drop\", columns_to_drop),\n", + " ],\n", + " remainder=\"passthrough\",\n", + ")\n", + "\n", + "features_postprocessing = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"prepocessing_cat\", preprocessing_cat, [\"Cabin_type\"]),\n", + " ],\n", + " remainder=\"passthrough\",\n", + ")\n", + "\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " (\"features_engineering\", features_engineering),\n", + " (\"drop_columns\", drop_columns),\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Демонстрация работы конвейера для предобработки данных при классификации" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xyLength_to_Width_Ratiocaratdepthtablezabove_average_caratcut_Goodcut_Ideal...color_Icolor_Jclarity_IFclarity_SI1clarity_SI2clarity_VS1clarity_VS2clarity_VVS1clarity_VVS2price
id
38836-0.907744-0.8634761.051267-0.8374900.176170-0.648004-0.857040-0.8560460.00.0...0.00.00.00.00.00.00.00.01.01049
30260-0.934483-0.8895791.050478-0.8374900.876071-0.201125-0.814688-0.8560460.00.0...0.00.00.01.00.00.00.00.00.0725
33169-1.050350-1.0026911.047532-0.9218850.036190-0.648004-1.012333-0.8560460.01.0...0.00.00.00.00.01.00.00.00.0817
10290.0904960.1545300.585622-0.204531-2.3434710.692631-0.151165-0.8560460.00.0...0.00.00.00.00.01.00.00.00.02904
538090.2954920.3111470.9496880.027554-0.733700-0.6480040.2158901.1681620.00.0...0.00.00.01.00.00.00.00.00.02733
..................................................................
29370.0637580.0936240.680999-0.0568411.156031-0.2011250.215890-0.8560461.00.0...0.00.00.00.00.00.01.00.00.03291
75140.4291850.3894551.1020150.2174420.0361902.4801450.4135351.1681621.00.0...0.00.00.01.00.00.00.00.00.04241
48344-0.408624-0.3501231.167088-0.4999120.246160-1.631136-0.348810-0.8560460.01.0...0.00.00.00.00.00.00.01.00.01961
3212-0.052109-0.0890950.584874-0.2045310.0361901.139510-0.066460-0.8560460.00.0...0.00.00.00.00.00.00.01.00.03348
35654-1.255346-1.2463161.007245-1.0273780.946061-0.201125-1.153508-0.8560460.00.0...0.00.00.00.00.00.00.00.01.0907
\n", + "

43154 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " x y Length_to_Width_Ratio carat depth \\\n", + "id \n", + "38836 -0.907744 -0.863476 1.051267 -0.837490 0.176170 \n", + "30260 -0.934483 -0.889579 1.050478 -0.837490 0.876071 \n", + "33169 -1.050350 -1.002691 1.047532 -0.921885 0.036190 \n", + "1029 0.090496 0.154530 0.585622 -0.204531 -2.343471 \n", + "53809 0.295492 0.311147 0.949688 0.027554 -0.733700 \n", + "... ... ... ... ... ... \n", + "2937 0.063758 0.093624 0.680999 -0.056841 1.156031 \n", + "7514 0.429185 0.389455 1.102015 0.217442 0.036190 \n", + "48344 -0.408624 -0.350123 1.167088 -0.499912 0.246160 \n", + "3212 -0.052109 -0.089095 0.584874 -0.204531 0.036190 \n", + "35654 -1.255346 -1.246316 1.007245 -1.027378 0.946061 \n", + "\n", + " table z above_average_carat cut_Good cut_Ideal ... \\\n", + "id ... \n", + "38836 -0.648004 -0.857040 -0.856046 0.0 0.0 ... \n", + "30260 -0.201125 -0.814688 -0.856046 0.0 0.0 ... \n", + "33169 -0.648004 -1.012333 -0.856046 0.0 1.0 ... \n", + "1029 0.692631 -0.151165 -0.856046 0.0 0.0 ... \n", + "53809 -0.648004 0.215890 1.168162 0.0 0.0 ... \n", + "... ... ... ... ... ... ... \n", + "2937 -0.201125 0.215890 -0.856046 1.0 0.0 ... \n", + "7514 2.480145 0.413535 1.168162 1.0 0.0 ... \n", + "48344 -1.631136 -0.348810 -0.856046 0.0 1.0 ... \n", + "3212 1.139510 -0.066460 -0.856046 0.0 0.0 ... \n", + "35654 -0.201125 -1.153508 -0.856046 0.0 0.0 ... \n", + "\n", + " color_I color_J clarity_IF clarity_SI1 clarity_SI2 clarity_VS1 \\\n", + "id \n", + "38836 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "30260 0.0 0.0 0.0 1.0 0.0 0.0 \n", + "33169 0.0 0.0 0.0 0.0 0.0 1.0 \n", + "1029 0.0 0.0 0.0 0.0 0.0 1.0 \n", + "53809 0.0 0.0 0.0 1.0 0.0 0.0 \n", + "... ... ... ... ... ... ... \n", + "2937 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "7514 0.0 0.0 0.0 1.0 0.0 0.0 \n", + "48344 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3212 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "35654 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " clarity_VS2 clarity_VVS1 clarity_VVS2 price \n", + "id \n", + "38836 0.0 0.0 1.0 1049 \n", + "30260 0.0 0.0 0.0 725 \n", + "33169 0.0 0.0 0.0 817 \n", + "1029 0.0 0.0 0.0 2904 \n", + "53809 0.0 0.0 0.0 2733 \n", + "... ... ... ... ... \n", + "2937 1.0 0.0 0.0 3291 \n", + "7514 0.0 0.0 0.0 4241 \n", + "48344 0.0 1.0 0.0 1961 \n", + "3212 0.0 1.0 0.0 3348 \n", + "35654 0.0 0.0 1.0 907 \n", + "\n", + "[43154 rows x 26 columns]" + ] + }, + "execution_count": 193, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "preprocessing_result = pipeline_end.fit_transform(X_train)\n", + "preprocessed_df = pd.DataFrame(\n", + " preprocessing_result,\n", + " columns=pipeline_end.get_feature_names_out(),\n", + ")\n", + "\n", + "preprocessed_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Формирование набора моделей для классификации\n", + "\n", + "logistic -- логистическая регрессия\n", + "\n", + "ridge -- гребневая регрессия\n", + "\n", + "decision_tree -- дерево решений\n", + "\n", + "knn -- k-ближайших соседей\n", + "\n", + "naive_bayes -- наивный Байесовский классификатор\n", + "\n", + "gradient_boosting -- метод градиентного бустинга (набор деревьев решений)\n", + "\n", + "random_forest -- метод случайного леса (набор деревьев решений)\n", + "\n", + "mlp -- многослойный персептрон (нейронная сеть)" + ] + }, + { + "cell_type": "code", + "execution_count": 194, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn import ensemble, linear_model, naive_bayes, neighbors, neural_network, tree\n", + "\n", + "class_models = {\n", + " \"logistic\": {\"model\": linear_model.LogisticRegression()},\n", + " # \"ridge\": {\"model\": linear_model.RidgeClassifierCV(cv=5, class_weight=\"balanced\")},\n", + " \"ridge\": {\"model\": linear_model.LogisticRegression(penalty=\"l2\", class_weight=\"balanced\")},\n", + " \"decision_tree\": {\n", + " \"model\": tree.DecisionTreeClassifier(max_depth=7, random_state=random_state)\n", + " },\n", + " \"knn\": {\"model\": neighbors.KNeighborsClassifier(n_neighbors=7)},\n", + " \"naive_bayes\": {\"model\": naive_bayes.GaussianNB()},\n", + " \"gradient_boosting\": {\n", + " \"model\": ensemble.GradientBoostingClassifier(n_estimators=210)\n", + " },\n", + " \"random_forest\": {\n", + " \"model\": ensemble.RandomForestClassifier(\n", + " max_depth=11, class_weight=\"balanced\", random_state=random_state\n", + " )\n", + " },\n", + " \"mlp\": {\n", + " \"model\": neural_network.MLPClassifier(\n", + " hidden_layer_sizes=(7,),\n", + " max_iter=500,\n", + " early_stopping=True,\n", + " random_state=random_state,\n", + " )\n", + " },\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Обучение моделей на обучающем наборе данных и оценка на тестовом" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: logistic\n", + "Model: ridge\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_logistic.py:469: ConvergenceWarning: lbfgs failed to converge (status=1):\n", + "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", + "\n", + "Increase the number of iterations (max_iter) or scale the data as shown in:\n", + " https://scikit-learn.org/stable/modules/preprocessing.html\n", + "Please also refer to the documentation for alternative solver options:\n", + " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", + " n_iter_i = _check_optimize_result(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: decision_tree\n", + "Model: knn\n", + "Model: naive_bayes\n", + "Model: gradient_boosting\n", + "Model: random_forest\n", + "Model: mlp\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from sklearn import metrics\n", + "\n", + "for model_name in class_models.keys():\n", + " print(f\"Model: {model_name}\")\n", + " model = class_models[model_name][\"model\"]\n", + "\n", + " model_pipeline = Pipeline([(\"pipeline\", pipeline_end), (\"model\", model)])\n", + " model_pipeline = model_pipeline.fit(X_train, y_train.values.ravel())\n", + "\n", + " y_train_predict = model_pipeline.predict(X_train)\n", + " y_test_probs = model_pipeline.predict_proba(X_test)[:, 1]\n", + " y_test_predict = np.where(y_test_probs > 0.5, 1, 0)\n", + "\n", + " class_models[model_name][\"pipeline\"] = model_pipeline\n", + " class_models[model_name][\"probs\"] = y_test_probs\n", + " class_models[model_name][\"preds\"] = y_test_predict\n", + "\n", + " class_models[model_name][\"Precision_train\"] = metrics.precision_score(\n", + " y_train, y_train_predict\n", + " )\n", + " class_models[model_name][\"Precision_test\"] = metrics.precision_score(\n", + " y_test, y_test_predict\n", + " )\n", + " class_models[model_name][\"Recall_train\"] = metrics.recall_score(\n", + " y_train, y_train_predict\n", + " )\n", + " class_models[model_name][\"Recall_test\"] = metrics.recall_score(\n", + " y_test, y_test_predict\n", + " )\n", + " class_models[model_name][\"Accuracy_train\"] = metrics.accuracy_score(\n", + " y_train, y_train_predict\n", + " )\n", + " class_models[model_name][\"Accuracy_test\"] = metrics.accuracy_score(\n", + " y_test, y_test_predict\n", + " )\n", + " class_models[model_name][\"ROC_AUC_test\"] = metrics.roc_auc_score(\n", + " y_test, y_test_probs\n", + " )\n", + " class_models[model_name][\"F1_train\"] = metrics.f1_score(y_train, y_train_predict)\n", + " class_models[model_name][\"F1_test\"] = metrics.f1_score(y_test, y_test_predict)\n", + " class_models[model_name][\"MCC_test\"] = metrics.matthews_corrcoef(\n", + " y_test, y_test_predict\n", + " )\n", + " class_models[model_name][\"Cohen_kappa_test\"] = metrics.cohen_kappa_score(\n", + " y_test, y_test_predict\n", + " )\n", + " class_models[model_name][\"Confusion_matrix\"] = metrics.confusion_matrix(\n", + " y_test, y_test_predict\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Сводная таблица оценок качества для использованных моделей классификации" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Матрица неточностей" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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t956C2lpaViyZAl8fHxw/fr1Iq3j9ddfR8+ePTF//nxERETINyXINWrUKGzatAkvvfQSoqKi0KhRI9y/fx9//PEH1q9fjwsXLpidhleYgIAATJs2DRcuXED16tWxdu1aHD9+HIsXL5afcP3SSy9hw4YNePnll9G+fXskJCRg4cKFCAkJQVpaWp51tm/fHuXLl8e3336Ldu3awcfHx6y9V69eWLduHQYOHIhdu3YhNDQURqMRp0+fxrp16/DTTz+hcePGmDRpEvbu3Yv27dsjKCgIN2/exPz581GxYkU0a9asyNtIRETKmTBhArZv347Q0FAMGjQIRqMR8+bNQ+3atXH8+PFC39++fXvMnDkTbdu2Rffu3XHz5k188cUXCA4Oxu+//y4vV79+fXTr1g3z589HSkoKnnvuOezcubNIIw8GgwELFixAr1690LBhQ7zxxhvw9vbGpUuXsGXLFoSGhpo9b7AonJ2dERISgrVr16J69erw8vJC7dq1Ubt27SKvw8vLC82aNUOfPn2QmJiI2bNnIzg4WL5pgaOjI6ZNm4Y+ffqgZcuW6Natm3wr78qVK2P48OHyuj777DO0a9cOTZs2Rb9+/eRbebu7u8vPX7p37x4qVqyIV199FfXq1YOrqyt+/vlnHD58GDNmzJDX1ahRI6xduxYjRozA008/DVdXV3To0KFY38+/de7cGc888wzee+89xMfHo2bNmti0aZN8oLQkRquohCl7szwqabm38v73baX/fTvQTZs2ibp16wonJydRuXJlMW3aNLFs2TKzZYTIeyvvXKmpqcLZ2VkAEF9//XW+fbl3754YO3asCA4OFjqdTlSoUEE899xz4j//+Y98++2iaNmypXjqqafEkSNHRNOmTYWTk5MICgoS8+bNM1vOZDKJKVOmiKCgIKHX60WDBg3E5s2bRWRkZL638hRCiLffflsAEKtXr863PTMzU0ybNk089dRTQq/XC09PT9GoUSMxceJEkZKSIoQQYufOnaJTp04iICBA6HQ6ERAQILp165bnNuZERGTbdu7cKRo0aCB0Op2oVq2aWLp0qXjvvfeEk5OTvAyAAm8h/eWXX4onn3xS6PV6UbNmTRETEyPn8j89fPhQDB06VJQvX164uLiIDh06iMuXLxd6K+9cu3btEhEREcLd3V04OTmJatWqiaioKHHkyBF5mcjISOHi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HY25c+fizJkz+OOPPxATE4OZM2cWqz9ERET/xmxmNlMpUvqiJyo5/7zoszjt169fF7179xYVKlQQer1eVK1aVfTv31+kpKQIIXIu8hw2bJgwGAzCw8NDjBgxQvTu3bvAiz6FEOLhw4di+PDhwt/fX+h0OhEcHCyWLVsmt0+aNEn4+fkJSZJEZGSkECLnQtXZs2eLGjVqCEdHR+Ht7S0iIiLEnj175Pf98MMPIjg4WOj1etG8eXOxbNmyYl/0OWrUKFG+fHnh6uoqXn/9dTFr1izh7u4ut48fP17Uq1dPzJ8/XwQEBAgnJyfx6quviqSkJLP1rlq1StSvX1/odDrh6ekpWrRoITZs2CCE4EWfRESUg9mcP2Yz2QpJiAKu1CMiIiIiIlIRnlZHREREREQEFkdEREREREQAWBwREREREREBYHFEREREREQEgMURERERERERABZHREREREREAFgcERERERERAWBxREREREREBIDFEREREREREQAWR0RERERERABYHBEREREREQFgcURERERERASAxREREREREREAFkdEREREREQAWBzRY5IkCRMmTFC6GwX66quvULNmTTg6OsLDw0Pp7hAREdmVCxcuQJIkLF++XOmuEFkFiyOyW6dPn0ZUVBSqVauGJUuWYPHixUp3KY9r165hwoQJOH78uNJdISIiIlI9B6U7QFRSdu/eDZPJhDlz5iA4OFjp7uTr2rVrmDhxIipXroz69esr3R0iIiIiVePIkZ25f/++0l2wGTdv3gQAq55O9+DBA6uti4iIiIhsC4ujMmzChAmQJAl//fUXunfvDk9PTzRr1gy///47oqKiULVqVTg5OcHPzw99+/bFnTt38n1/fHw8oqKi4OHhAXd3d/Tp0ydPEZCRkYHhw4fD29sbbm5u6NixI65cuZJvv3777Te0a9cOBoMBrq6uaN26NX799VezZZYvXw5JkrB//34MHToU3t7e8PDwwFtvvYXMzEwkJyejd+/e8PT0hKenJ0aPHg0hRJG/m8qVK2P8+PEAAG9v7zzXRs2fPx9PPfUU9Ho9AgICMHjwYCQnJ5ut4/nnn0ft2rVx9OhRtGjRAuXKlcMHH3wgfx/jx49HcHAw9Ho9AgMDMXr0aGRkZJitY8eOHWjWrBk8PDzg6uqKGjVqyOvYvXs3nn76aQBAnz59IEkSz9smIqJSl/v3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kOy1t4va24iIiEh5Ws5mFkdEpC5ZAJI2j04RERF5JQ1ns5/aAyAijROi6tzlWhf3d8ArV67EfffdB6PRiIceegj/+te/PDBwIiIiH+WBbG4sWBwRkaqE3V7n4o533nkH06ZNw9y5c3H8+HF06dIFFosF169f99AnICIi8i1KZ3NjwuKIiFQlZFHn4o5XX30VTz31FMaMGYP4+HisWrUKQUFBWLdunYc+ARERkW9ROpsbE15zVA/iP1OHlbC5vHEHeY6txKr2EDSr+rsXHppCrxQVLm8JWgkbAKCoqMhpvcFggMFgcFpntVpx7NgxzJkzx7HOz88P/fr1w+HDhxUcNRGpjdmsPmazerwlm30Ri6N6uH37NgDgID5SeSQalqT2AOj27dswm82K9afX6xEVFYWD1+r+uwoJCUFMTIzTurlz52LevHlO677//nvY7XZERkY6rY+MjMSZM2fuecxE5D2YzV6A2aw6NbM5KioKer1esff2FiyO6iE6OhqXL19GaGgoJElSezhuKyoqQkxMDC5fvgyTyaT2cDSnsX//Qgjcvn0b0dHRivZrNBpx4cIFWK11H3kUQtT42/v5rBERaQuzme5FY//+vSGb9Xo9jEajou/vDVgc1YOfnx9atWql9jDumclkapQ7AF/RmL9/JY9K/ZTRaFR0x9qsWTPodDrk5+c7rc/Pz0dUVJRi70NE6mM2kxIa8/ffWLK5seENGYjIZ+j1enTv3h179uxxrJNlGXv27EFiYqKKIyMiIqLGgDNHRORTpk2bhpSUFPTo0QMPPvggli9fjpKSEowZM0btoREREZGXY3GkAQaDAXPnzuU1Girh99+wfve73+HGjRt46aWXcO3aNXTt2hW7du2qcZMGIiI1MRvUxe+faiMJT90DkIiIiIiIqBHhNUdERERERERgcURERERERASAxREREREREREAFkdEREREREQAWBw1OqmpqRg8eLDaw9Cc1NRUSJKECRMm1GhLS0uDJElITU1t+IEREZHqmM3qYDaTJ7A4IqqnmJgYbN26FWVlZY515eXl2LJlC1q3bn3X/QohUFlZqcQQiYiINIXZTEpjceRDvvzySwwcOBAhISGIjIzEqFGj8P333zvat2/fjk6dOiEwMBBNmzZFv379UFJSAgDIysrCgw8+iODgYDRp0gQ9e/bEpUuX1PooXikhIQExMTHY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He/j5+eH9u3bIzIyEtHR0Th//jxGjBjh1vsTEZH2MJtdYzaTmnhDBnIyYsQINGvWDIMGDcKBAwdw4cIFZGVlYfLkyfj2228BAFOmTMHixYvx/vvv48yZM/jDH/7g8jkI9913H1JSUjB27Fi8//77jj63bdsGAIiNjYUkSdi5cydu3LiB4uJihIaGYvr06UhPT8fGjRtx7tw5HD9+HK+//rrjQsoJEybgm2++wYwZM5Cbm4stW7Zgw4YNbn3eX/ziF8jLy8PWrVtx7tw5rFix4o4XsBqNRqSkpODUqVM4cOAAJk+ejGHDhiEqKgoAMH/+fGRkZGDFihX4+uuv8cUXX2D9+vV49dVX3RoPERHRzzGbmc3UgNS+6Ik856cXfbrTfvXqVTF69GjRrFkzYTAYRNu2bcVTTz0lCgsLhRBVF3lOmTJFmEwm0aRJEzFt2jQxevToWi/6FEKIsrIykZ6eLlq0aCH0er2Ii4sT69atc7QvWLBAREVFCUmSREpKihCi6kLV5cuXi/bt24uAgADRvHlzYbFYxP79+x2v+/DDD0VcXJwwGAzikUceEevWrXP7os8ZM2aIpk2bipCQEPG73/1OLFu2TJjNZkf73LlzRZcuXcQbb7whoqOjhdFoFEOHDhW3bt1y6nfz5s2ia9euQq/Xi7CwMNG7d2+xY8cOIQQv+iQioirM5jtjNpO3kISo5Uo9IiIiIiIiDeFpdURERERERGBxREREREREBIDFEREREREREQAWR0RERERERABYHBEREREREQFgcURERERERASAxREREREREREAFkdEREREREQAWBwREREREREBYHFEREREREQEgMURERERERERAOD/A0vqCVO4jtOSAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import ConfusionMatrixDisplay\n", + "import matplotlib.pyplot as plt\n", + "\n", + "_, ax = plt.subplots(int(len(class_models) / 2), 2, figsize=(12, 10), sharex=False, sharey=False)\n", + "for index, key in enumerate(class_models.keys()):\n", + " c_matrix = class_models[key][\"Confusion_matrix\"]\n", + " disp = ConfusionMatrixDisplay(\n", + " confusion_matrix=c_matrix, display_labels=[\"Less\", \"More\"]\n", + " ).plot(ax=ax.flat[index])\n", + " disp.ax_.set_title(key)\n", + "\n", + "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Точность, полнота, верность (аккуратность), F-мера" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "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", + " \n", + " \n", + "
 Precision_trainPrecision_testRecall_trainRecall_testAccuracy_trainAccuracy_testF1_trainF1_test
logistic1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
ridge0.9999451.0000000.9999451.0000000.9999541.0000000.9999451.000000
decision_tree1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
naive_bayes0.9998901.0000000.9998901.0000000.9999071.0000000.9998901.000000
random_forest1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
mlp0.9995070.9995620.9998360.9995620.9997220.9996290.9996710.999562
knn0.9839700.9793000.9787400.9745780.9842660.9805360.9813480.976933
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 198, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class_metrics = pd.DataFrame.from_dict(class_models, \"index\")[\n", + " [\n", + " \"Precision_train\",\n", + " \"Precision_test\",\n", + " \"Recall_train\",\n", + " \"Recall_test\",\n", + " \"Accuracy_train\",\n", + " \"Accuracy_test\",\n", + " \"F1_train\",\n", + " \"F1_test\",\n", + " ]\n", + "]\n", + "class_metrics.sort_values(\n", + " by=\"Accuracy_test\", ascending=False\n", + ").style.background_gradient(\n", + " cmap=\"plasma\",\n", + " low=0.3,\n", + " high=1,\n", + " subset=[\"Accuracy_train\", \"Accuracy_test\", \"F1_train\", \"F1_test\"],\n", + ").background_gradient(\n", + " cmap=\"viridis\",\n", + " low=1,\n", + " high=0.3,\n", + " subset=[\n", + " \"Precision_train\",\n", + " \"Precision_test\",\n", + " \"Recall_train\",\n", + " \"Recall_test\",\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ROC-кривая, каппа Коэна, коэффициент корреляции Мэтьюса" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "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", + "
 Accuracy_testF1_testROC_AUC_testCohen_kappa_testMCC_test
logistic1.0000001.0000001.0000001.0000001.000000
ridge1.0000001.0000001.0000001.0000001.000000
decision_tree1.0000001.0000001.0000001.0000001.000000
naive_bayes1.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.000000
mlp0.9996290.9995620.9997540.9992400.999240
knn0.9805360.9769330.9959600.9600980.960107
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 199, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class_metrics = pd.DataFrame.from_dict(class_models, \"index\")[\n", + " [\n", + " \"Accuracy_test\",\n", + " \"F1_test\",\n", + " \"ROC_AUC_test\",\n", + " \"Cohen_kappa_test\",\n", + " \"MCC_test\",\n", + " ]\n", + "]\n", + "class_metrics.sort_values(by=\"ROC_AUC_test\", ascending=False).style.background_gradient(\n", + " cmap=\"plasma\",\n", + " low=0.3,\n", + " high=1,\n", + " subset=[\n", + " \"ROC_AUC_test\",\n", + " \"MCC_test\",\n", + " \"Cohen_kappa_test\",\n", + " ],\n", + ").background_gradient(\n", + " cmap=\"viridis\",\n", + " low=1,\n", + " high=0.3,\n", + " subset=[\n", + " \"Accuracy_test\",\n", + " \"F1_test\",\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'logistic'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "best_model = str(class_metrics.sort_values(by=\"MCC_test\", ascending=False).iloc[0].name)\n", + "\n", + "display(best_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Вывод данных с ошибкой предсказания для оценки" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Error items count: 0'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
caratPredictedcutcolorclaritydepthtablepricexyzabove_average_carat
id
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [carat, Predicted, cut, color, clarity, depth, table, price, x, y, z, above_average_carat]\n", + "Index: []" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "preprocessing_result = pipeline_end.transform(X_test)\n", + "preprocessed_df = pd.DataFrame(\n", + " preprocessing_result,\n", + " columns=pipeline_end.get_feature_names_out(),\n", + ")\n", + "\n", + "y_pred = class_models[best_model][\"preds\"]\n", + "\n", + "error_index = y_test[y_test[\"above_average_carat\"] != y_pred].index.tolist()\n", + "display(f\"Error items count: {len(error_index)}\")\n", + "\n", + "error_predicted = pd.Series(y_pred, index=y_test.index).loc[error_index]\n", + "error_df = X_test.loc[error_index].copy()\n", + "error_df.insert(loc=1, column=\"Predicted\", value=error_predicted)\n", + "error_df.sort_index()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Пример использования обученной модели (конвейера) для предсказания" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "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", + "
caratcutcolorclaritydepthtablepricexyzabove_average_carat
45000.9PremiumHSI161.958.036296.26.153.821
\n", + "
" + ], + "text/plain": [ + " carat cut color clarity depth table price x y z \\\n", + "4500 0.9 Premium H SI1 61.9 58.0 3629 6.2 6.15 3.82 \n", + "\n", + " above_average_carat \n", + "4500 1 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
xyLength_to_Width_Ratiocaratdepthtablezabove_average_caratcut_Goodcut_Ideal...color_Icolor_Jclarity_IFclarity_SI1clarity_SI2clarity_VS1clarity_VS2clarity_VVS1clarity_VVS2price
45000.4202720.3633521.1566530.2174420.106180.2457530.3994171.1681620.00.0...0.00.00.01.00.00.00.00.00.03629.0
\n", + "

1 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " x y Length_to_Width_Ratio carat depth table \\\n", + "4500 0.420272 0.363352 1.156653 0.217442 0.10618 0.245753 \n", + "\n", + " z above_average_carat cut_Good cut_Ideal ... color_I \\\n", + "4500 0.399417 1.168162 0.0 0.0 ... 0.0 \n", + "\n", + " color_J clarity_IF clarity_SI1 clarity_SI2 clarity_VS1 clarity_VS2 \\\n", + "4500 0.0 0.0 1.0 0.0 0.0 0.0 \n", + "\n", + " clarity_VVS1 clarity_VVS2 price \n", + "4500 0.0 0.0 3629.0 \n", + "\n", + "[1 rows x 26 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'predicted: 1 (proba: [4.76016150e-04 9.99523984e-01])'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'real: 1'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model = class_models[best_model][\"pipeline\"]\n", + "\n", + "example_id = 4500\n", + "test = pd.DataFrame(X_test.loc[example_id, :]).T\n", + "test_preprocessed = pd.DataFrame(preprocessed_df.loc[example_id, :]).T\n", + "display(test)\n", + "display(test_preprocessed)\n", + "result_proba = model.predict_proba(test)[0]\n", + "result = model.predict(test)[0]\n", + "real = int(y_test.loc[example_id].values[0])\n", + "display(f\"predicted: {result} (proba: {result_proba})\")\n", + "display(f\"real: {real}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Подбор гиперпараметров методом поиска по сетке" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'model__criterion': 'gini',\n", + " 'model__max_depth': 2,\n", + " 'model__max_features': 'sqrt',\n", + " 'model__n_estimators': 20}" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "optimized_model_type = \"random_forest\"\n", + "\n", + "random_forest_model = class_models[optimized_model_type][\"pipeline\"]\n", + "\n", + "param_grid = {\n", + " \"model__n_estimators\": [10, 20, 30, 40, 50, 100, 150, 200, 250, 500],\n", + " \"model__max_features\": [\"sqrt\", \"log2\", 2],\n", + " \"model__max_depth\": [2, 3, 4, 5, 6, 7, 8, 9 ,10],\n", + " \"model__criterion\": [\"gini\", \"entropy\", \"log_loss\"],\n", + "}\n", + "\n", + "gs_optomizer = GridSearchCV(\n", + " estimator=random_forest_model, param_grid=param_grid, n_jobs=-1\n", + ")\n", + "gs_optomizer.fit(X_train, y_train.values.ravel())\n", + "gs_optomizer.best_params_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Обучение модели с новыми гиперпараметрами" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [], + "source": [ + "optimized_model = ensemble.RandomForestClassifier(\n", + " random_state=random_state,\n", + " criterion=\"gini\",\n", + " max_depth=7,\n", + " max_features=\"sqrt\",\n", + " n_estimators=30,\n", + ")\n", + "\n", + "result = {}\n", + "\n", + "result[\"pipeline\"] = Pipeline([(\"pipeline\", pipeline_end), (\"model\", optimized_model)]).fit(X_train, y_train.values.ravel())\n", + "result[\"train_preds\"] = result[\"pipeline\"].predict(X_train)\n", + "result[\"probs\"] = result[\"pipeline\"].predict_proba(X_test)[:, 1]\n", + "result[\"preds\"] = np.where(result[\"probs\"] > 0.5, 1, 0)\n", + "\n", + "result[\"Precision_train\"] = metrics.precision_score(y_train, result[\"train_preds\"])\n", + "result[\"Precision_test\"] = metrics.precision_score(y_test, result[\"preds\"])\n", + "result[\"Recall_train\"] = metrics.recall_score(y_train, result[\"train_preds\"])\n", + "result[\"Recall_test\"] = metrics.recall_score(y_test, result[\"preds\"])\n", + "result[\"Accuracy_train\"] = metrics.accuracy_score(y_train, result[\"train_preds\"])\n", + "result[\"Accuracy_test\"] = metrics.accuracy_score(y_test, result[\"preds\"])\n", + "result[\"ROC_AUC_test\"] = metrics.roc_auc_score(y_test, result[\"probs\"])\n", + "result[\"F1_train\"] = metrics.f1_score(y_train, result[\"train_preds\"])\n", + "result[\"F1_test\"] = metrics.f1_score(y_test, result[\"preds\"])\n", + "result[\"MCC_test\"] = metrics.matthews_corrcoef(y_test, result[\"preds\"])\n", + "result[\"Cohen_kappa_test\"] = metrics.cohen_kappa_score(y_test, result[\"preds\"])\n", + "result[\"Confusion_matrix\"] = metrics.confusion_matrix(y_test, result[\"preds\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Формирование данных для оценки старой и новой версии модели" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": {}, + "outputs": [], + "source": [ + "optimized_metrics = pd.DataFrame(columns=list(result.keys()))\n", + "optimized_metrics.loc[len(optimized_metrics)] = pd.Series(\n", + " data=class_models[optimized_model_type]\n", + ")\n", + "optimized_metrics.loc[len(optimized_metrics)] = pd.Series(\n", + " data=result\n", + ")\n", + "optimized_metrics.insert(loc=0, column=\"Name\", value=[\"Old\", \"New\"])\n", + "optimized_metrics = optimized_metrics.set_index(\"Name\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Оценка параметров старой и новой модели" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "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", + "
 Precision_trainPrecision_testRecall_trainRecall_testAccuracy_trainAccuracy_testF1_trainF1_test
Name        
Old1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
New1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 212, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "optimized_metrics[\n", + " [\n", + " \"Precision_train\",\n", + " \"Precision_test\",\n", + " \"Recall_train\",\n", + " \"Recall_test\",\n", + " \"Accuracy_train\",\n", + " \"Accuracy_test\",\n", + " \"F1_train\",\n", + " \"F1_test\",\n", + " ]\n", + "].style.background_gradient(\n", + " cmap=\"plasma\",\n", + " low=0.3,\n", + " high=1,\n", + " subset=[\"Accuracy_train\", \"Accuracy_test\", \"F1_train\", \"F1_test\"],\n", + ").background_gradient(\n", + " cmap=\"viridis\",\n", + " low=1,\n", + " high=0.3,\n", + " subset=[\n", + " \"Precision_train\",\n", + " \"Precision_test\",\n", + " \"Recall_train\",\n", + " \"Recall_test\",\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "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", + "
 Accuracy_testF1_testROC_AUC_testCohen_kappa_testMCC_test
Name     
Old1.0000001.0000001.0000001.0000001.000000
New1.0000001.0000001.0000001.0000001.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 213, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "optimized_metrics[\n", + " [\n", + " \"Accuracy_test\",\n", + " \"F1_test\",\n", + " \"ROC_AUC_test\",\n", + " \"Cohen_kappa_test\",\n", + " \"MCC_test\",\n", + " ]\n", + "].style.background_gradient(\n", + " cmap=\"plasma\",\n", + " low=0.3,\n", + " high=1,\n", + " subset=[\n", + " \"ROC_AUC_test\",\n", + " \"MCC_test\",\n", + " \"Cohen_kappa_test\",\n", + " ],\n", + ").background_gradient(\n", + " cmap=\"viridis\",\n", + " low=1,\n", + " high=0.3,\n", + " subset=[\n", + " \"Accuracy_test\",\n", + " \"F1_test\",\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AAAAAGAhzKQBgJU5XTJlSYfTt684AgBqCHLNEGbSAAAAAMBCKNLg8wYOHKhevXq5v77uuus0cuTIah/H2rVrZbPZlJube942NptNb731luE+J0+erNatW1dqXF9//bVsNpu2b99eqX5QRVxO8zYAPoFcuzByzeLINUMo0uAVAwcOlM1mk81mk91uV2JioqZOnarS0tIq/+w33nhDjzzyiKG2RgIIqFLlN1ibsQGoMuQaYBC5Zgj3pMFrunfvrgULFqioqEjvvPOO0tPTVatWLU2YMOGstsXFxbLb7aZ8bmRkpCn9AADwa+QaALMwkwavCQwMVExMjOLj4zV8+HClpKTo7bfflvTLUo7HHntMsbGxatq0qSTp0KFDuv322xUREaHIyEjdcsst+vrrr919lpWVafTo0YqIiFDdunU1btw4uc640nLmspCioiKNHz9ecXFxCgwMVGJiol5++WV9/fXX6tq1qySpTp06stlsGjhwoCTJ6XRq+vTpSkhIUHBwsFq1aqXXXnvN43PeeecdNWnSRMHBweratavHOI0aP368mjRpotq1a6tx48Z6+OGHVVJScla7F154QXFxcapdu7Zuv/125eXleRyfN2+emjdvrqCgIDVr1kzPP/98hccCL3G6zNsAVCly7beRayDXjGEmDZYRHBysH3/80f31mjVr5HA4tHr1aklSSUmJ0tLSlJycrA8//FABAQF69NFH1b17d33++eey2+2aOXOmMjIyNH/+fDVv3lwzZ87Um2++qeuvv/68n3vXXXcpMzNTs2fPVqtWrXTw4EH98MMPiouL0+uvv64+ffpoz549cjgcCg4OliRNnz5d//nPfzR37lxdeeWVWr9+vfr166f69eurS5cuOnTokHr37q309HQNHTpUW7du1QMPPFDhn0lYWJgyMjIUGxurHTt2aMiQIQoLC9O4cePcbfbt26elS5dq2bJlys/P1+DBg/W3v/1Nr7zyiiTplVde0cSJE/Xss8+qTZs2+vTTTzVkyBCFhIRowIABFR4TqhnvkwFqLHLtbOQayDVjKNLgdS6XS2vWrNGqVat07733uveHhIRo3rx57uUg//nPf+R0OjVv3jzZbDZJ0oIFCxQREaG1a9cqNTVVTz31lCZMmKDevXtLkubOnatVq1ad97O/+uorLV26VKtXr1ZKSookqXHjxu7j5UtIoqKi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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "_, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=False, sharey=False\n", + ")\n", + "\n", + "for index in range(0, len(optimized_metrics)):\n", + " c_matrix = optimized_metrics.iloc[index][\"Confusion_matrix\"]\n", + " disp = ConfusionMatrixDisplay(\n", + " confusion_matrix=c_matrix, display_labels=[\"Less\", \"More\"]\n", + " ).plot(ax=ax.flat[index])\n", + "\n", + "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.3)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/mai/readme.md b/mai/readme.md deleted file mode 100644 index fba5c63..0000000 --- a/mai/readme.md +++ /dev/null @@ -1,55 +0,0 @@ -## Окружение и примеры для выполнения лабораторных работ по дисциплине "Методы ИИ" - -### Python - -Используется Python версии 3.12 - -Установщик https://www.python.org/ftp/python/3.12.5/python-3.12.5-amd64.exe - -### Poetry - -Для создания и настройки окружения проекта необходимо установить poetry - -**Для Windows (Powershell)** - -``` -(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - -``` - -**Linux, macOS, Windows (WSL)** - -``` -curl -sSL https://install.python-poetry.org | python3 - -``` - -**Добавление poetry в PATH** - -1. Открыть настройки переменных среды \ - \ - \ - \ - \ -2. Изменить переменную Path текущего пользователя \ - \ - \ -3. Добавление пути `%APPDATA%\Python\Scripts` до исполняемого файла poetry \ - \ - - -### Создание окружения - -``` -poetry install -``` - -### Запуск тестового сервиса - -Запустить тестовый сервис можно с помощью VSCode (см. launch.json в каталоге .vscode). - -Также запустить тестовый сервис можно с помощью командной строки: - -1. Активация виртуального окружения -- `poetry shell` - -2. Запуск сервиса -- `python run.py` - -Для выходы из виртуального окружения используется команду `exit` diff --git a/mai/run.py b/mai/run.py deleted file mode 100644 index 39333c8..0000000 --- a/mai/run.py +++ /dev/null @@ -1,16 +0,0 @@ -from backend import create_app - -app = create_app() - - -def __main(): - app.run( - host="127.0.0.1", - port=8080, - debug=True, - use_reloader=False, - ) - - -if __name__ == "__main__": - __main() diff --git a/mai/utils.py b/mai/utils.py new file mode 100644 index 0000000..7190903 --- /dev/null +++ b/mai/utils.py @@ -0,0 +1,79 @@ +from typing import Tuple + +import pandas as pd +from pandas import DataFrame +from sklearn.model_selection import train_test_split + + +def split_stratified_into_train_val_test( + df_input, + stratify_colname="y", + frac_train=0.6, + frac_val=0.15, + frac_test=0.25, + random_state=None, +) -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame, DataFrame, DataFrame]: + """ + Splits a Pandas dataframe into three subsets (train, val, and test) + following fractional ratios provided by the user, where each subset is + stratified by the values in a specific column (that is, each subset has + the same relative frequency of the values in the column). It performs this + splitting by running train_test_split() twice. + + Parameters + ---------- + df_input : Pandas dataframe + Input dataframe to be split. + stratify_colname : str + The name of the column that will be used for stratification. Usually + this column would be for the label. + frac_train : float + frac_val : float + frac_test : float + The ratios with which the dataframe will be split into train, val, and + test data. The values should be expressed as float fractions and should + sum to 1.0. + random_state : int, None, or RandomStateInstance + Value to be passed to train_test_split(). + + Returns + ------- + df_train, df_val, df_test : + Dataframes containing the three splits. + """ + + if frac_train + frac_val + frac_test != 1.0: + raise ValueError( + "fractions %f, %f, %f do not add up to 1.0" + % (frac_train, frac_val, frac_test) + ) + + if stratify_colname not in df_input.columns: + raise ValueError("%s is not a column in the dataframe" % (stratify_colname)) + + X = df_input # Contains all columns. + y = df_input[ + [stratify_colname] + ] # Dataframe of just the column on which to stratify. + + # Split original dataframe into train and temp dataframes. + df_train, df_temp, y_train, y_temp = train_test_split( + X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state + ) + + if frac_val <= 0: + assert len(df_input) == len(df_train) + len(df_temp) + return df_train, pd.DataFrame(), df_temp, y_train, pd.DataFrame(), y_temp + + # Split the temp dataframe into val and test dataframes. + relative_frac_test = frac_test / (frac_val + frac_test) + df_val, df_test, y_val, y_test = train_test_split( + df_temp, + y_temp, + stratify=y_temp, + test_size=relative_frac_test, + random_state=random_state, + ) + + assert len(df_input) == len(df_train) + len(df_val) + len(df_test) + return df_train, df_val, df_test, y_train, y_val, y_test \ No newline at end of file