{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from skimage import transform" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] } ], "source": [ "from keras.datasets import boston_housing\n", "\n", "(X_train, y_train), (X_test, y_test) = boston_housing.load_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Данные:\n", "Будем работать с датасетом [Boston Housing Prices](https://medium.com/@haydar_ai/learning-data-science-day-9-linear-regression-on-boston-housing-dataset-cd62a80775ef)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,0,'Price')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFvdJREFUeJzt3X+0J3V93/HnywXjL36zcAgLLlr0QKMi2VANVn5ILRYEJEJjrUVLS2y1kmobUVs9akzwtGhIok23oO5JVSQogoIiWVnUegrsggiIBqRoPWzZRSWAiRjg3T9mrtxd7t47d3dnvnvvPB/nfM93Zr4z833fOefe9/38TlUhSRqvJ006AEnSZJkIJGnkTASSNHImAkkaOROBJI2ciUCSRs5EIEkjZyKQpJEzEUjSyO006QC62HvvvWv58uWTDkOSFpR169bdV1VL5zpvQSSC5cuXs3bt2kmHIUkLSpIfdDnPqiFJGjkTgSSNnIlAkkbORCBJI2cikKSRMxFI0siZCCRp5EwEkjRyJgJJGrkFMbJYC9vyc66Y9zV3n3tCD5FImoklAkkaOROBJI2ciUCSRs5EIEkjZyKQpJEzEUjSyJkIJGnkeh1HkORu4EHgUeCRqlqRZE/gM8By4G7g9Kr6aZ9xSJK2bIgSwTFVdVhVrWj3zwFWV9XBwOp2X5I0IZOoGjoZWNVurwJOmUAMkqRW34mggK8kWZfkrPbYvlW1HqB932emC5OclWRtkrUbN27sOUxJGq++5xo6sqruSbIPcHWS73a9sKpWAisBVqxYUX0FKElj12uJoKruad83AJcCRwD3JtkPoH3f0GcMkqTZ9ZYIkjw9yS5T28DLgVuBy4Ez2tPOAC7rKwZJ0tz6rBraF7g0ydT3fKqqvpzkBuDiJGcCPwRO6zEGSdIc5pUIkuwBHFBV357r3Kq6C3jBDMd/DLxsPt8rSerPnFVDSdYk2bUdCHYz8PEkH+o/NEnSELq0EexWVQ8ApwIfr6pfB47rNyxJ0lC6JIKd2t49pwNf7DkeSdLAuiSC9wJXAXdW1Q1JngXc0W9YkqShzNpYnGQJTePw86eOtY3Av9V3YJKkYcxaIqiqR4GTBopFkjQBXbqPfjPJn9JMHf2zqYNVdWNvUUmSBtMlEfxm+/6+accKOHb7hyNJGtqciaCqjhkiEEnSZHQZULZvkguTfKndP7SdHkKStAh0qRr6BPBx4F3t/l/RtBdc2FNMEsvPuaLX+9997gm93l9aSLqMI9i7qi4GHgOoqkdo1iCWJC0CXRLBz5LsRdNATJIXAX/da1SSpMF0qRp6K80aAs9O8r+ApcCre41KkjSYLr2GbkxyFPBcIMD3qurveo9MkjSILSaCJKdu4aPnJKGqPtdTTJKkAc1WInhl+74PzaCyr7b7xwBrABOBJC0CW0wEVfUGgCRfBA6tqvXt/n7AR4YJT5LUty69hpZPJYHWvcBzeopHkjSwLr2G1iS5Cvg0TRfS3wau6TUqSdJguvQaenOSVwEvbQ+trKpL+w1LkjSULgvTXFVVxwH+8ZekRajLwjR/k2S3geKRJA2sSxvBz4FbklzNpgvTvKW3qCRJg+mSCK5oX5KkRahLY/GqJE/m8S6jTjEhSYvInIkgydHAKuBumrmGDkhyRlV9rd/QJElD6FI1dB7w8qr6HkCS59CMKfj1PgOTJA2jy8jinaeSAEBV/RWwc38hSZKG1KVEsDbJhcCft/uvBdb1F5IkaUhdSgT/BrgNeAtwNvAd4I1dvyDJkiQ3tZPXkeSgJNcluSPJZ9qGaEnShMyZCKrqYeBPgfcC7wY+0h7r6mzg9mn7HwQ+XFUHAz8FzpzHvSRJ29mciSDJCcD3gfNpEsKdSV7R5eZJlgEnABe0+wGOBS5pT1kFnDL/sCVJ20vXXkPHVNWdAEmeTTPA7Esdrv0j4PeAXdr9vYD7q+qRdv9HwP7ziliStF11aSPYMJUEWncBG+a6KMmJ7bXTG5Yzw6m1hevPSrI2ydqNGzd2CFOStDW6rFl8W5IrgYtp/mifBtzQ4d5HAicl+SfAU4BdaUoIuyfZqS0VLAPumeniqloJrARYsWLFjMlCkrTtZisRvLJ9PYVmVbKjgKOBjcAec924qt5RVcuqajnNYjZfrarX0ixq8+r2tDOAy7Y2eEnStptzzeIevB24KMnvAzcBF/b0PZKkDro0Fm+zqloDrGm37wKOGOJ7JUlz69JYLElaxEwEkjRyXaah/hXgt4Dl08+vqvf1F5YkaShd2gguA/6aZqK5+UwtIUlaALokgmVVdXzvkUiSJqJLG8E3kzyv90gkSRPRpUTwEuD1Sf4PTdVQgKqq5/camXZYy8+5YtIhSNqOuiSCTjONSpIWptnmGtq1qh4AHhwwHknSwGYrEXwKOJGmt1Cx6cyhBTyrx7gkSQOZba6hE9v3g4YLR5I0tE5zDSXZH3gmmw4o+1pfQUmShtNlZPEHgX9Ks2j9o+3hAkwEkrQIdCkRnAI8d54L1kuSFoguA8ruAnbuOxBJ0mTM1n30T2iqgP4G+FaS1Uyba6iq3tJ/eJKkvs1WNbS2fV8HXL7ZZ64hLEmLxGzdR1cBJDm7qs6f/lmSs/sOTJI0jC5tBGfMcOz12zkOSdKEzNZG8BrgnwEHJZleNbQL8OO+A5MkDWO2NoJvAuuBvYHzph1/EPh2n0FJkoYzWxvBD4AfAC8eLhxJ0tBmqxr6RlW9JMmDbNpLaGo9gl17j06S1LvZSgQvad93GS4cSdLQ5uw1lOR9SY5L8vQhApIkDatL99G7aXoPrU1yfZLzkpzcb1iSpKHMmQiq6mNV9S+BY4D/CZzWvkuSFoEu01BfABwK3At8HXg1cGPPcUmSBtKlamgvYAlwP/AT4L6qeqTXqCRJg5mzRFBVrwJIcgjwj4FrkiypqmV9BydJ6l+XqqETgX8IvBTYA/gqTRXRXNc9hWYVs19pv+eSqnpPkoOAi4A9aaqYXldVv9jqn0CStE26rFD2Cpo/6OdX1T3zuPfDwLFV9VCSnYFvJPkS8Fbgw1V1UZI/A84E/tt8A5ckbR9deg29qao+M88kQDUeand3bl8FHAtc0h5fRbMUpiRpQro0Fm+1JEuSfAvYAFwNfB+4f1pj84+A/fuMQZI0u14TQVU9WlWHAcuAI4BDZjptpmuTnJVkbZK1Gzdu7DNMSRq1eSWCJHskef58v6Sq7gfWAC8Cdk8y1TaxDJixyqmqVlbViqpasXTp0vl+pSSpoy5zDa1JsmuSPYGbgY8n+VCH65Ym2b3dfipwHHA7cA3NoDRoVj+7bGuDlyRtuy69hnarqgeS/Cvg420X0C4L0+wHrEqyhCbhXFxVX0zyHeCiJL8P3ARcuNXRj8Tyc66Y1/l3n3tCT5FIWoy6JIKdkuwHnA68q+uNq+rbwAtnOH4XTXuBJGkH0KWN4L3AVcCdVXVDkmcBd/QbliRpKF1KBOur6pcNxFV1V5c2AknSwtAlEfwJcHiHY9pBzLdNQdK4zbZm8YuB3wSWJnnrtI92pZmNVJK0CMxWIngy8Iz2nOnrFj/A490/JUkL3GyL118LXJvkE1X1gwFjkiQNqEuvoQumBobBL0cXX9VjTJKkAXVJBHu3U0QAUFU/BfbpLyRJ0pC6JILHkhw4tZPkmWxhojhJ0sLTpfvou2gWlbm23X8pcFZ/IUmShtRlzeIvJzmcZubQAP++qu7rPTJJ0iC6zD4a4Hjg8Kr6AvC0JM4VJEmLRJc2go8CLwZe0+4/CHykt4gkSYPq0kbwD6rq8CQ3QdNrKMmTe45LkjSQLiWCv2vXFChoFpwBHus1KknSYLokgj8GLgX2SfIB4BvAH/QalSRpMF16DX0yyTrgZTS9hk6pqtt7j0ySNIjZZh/dtV2ick9gA/DpaZ/tATxQVY8OEKMkqUezlQg+BZwIrKNpH8hmnz8jyf+oqnf2FZwkqX+zzT56Yvt+0Eyftw3ItwImAklawLp0HyXJqcBLaEoGX6+qz7fVQof0GZwkqX9dRhZ/FHgjcAtNCeCNSRxQJkmLRJcSwVHAr1XV1DiCVTRJQZK0CHQZR/A94MBp+wcA3+4nHEnS0GbrPvoFmjaB3YDbk1zffnQE8M0BYpMkDWC2qqH/OlgUkqSJmWvxegCS7Av8Rrt7fVVt6DswSdIwuvQaOh24HjgNOB24Lsmr+w5MkjSMrktV/sZUKaCdffQvgUv6DEySNIwuvYaetFlV0I87XidJWgC6/EH/cpKrkrw+yeuBK4Ar57ooyQFJrklye5LbkpzdHt8zydVJ7mjf99i2H0GStC3mTARV9R+B/w48H3gBsLKq3t7h3o8Ab6uqQ2gWvn9TkkOBc4DVVXUwsLrdlyRNSKe5hqrqc8Dn5nPjqloPrG+3H0xyO7A/cDJwdHvaKmAN0CWxSJJ6MEhdf5LlwAuB64B92yQxlSz2GSIGSdLMek8ESZ4BfBb43ap6YB7XnZVkbZK1Gzdu7C9ASRq5LSaCJKvb9w9u7c2T7EyTBD7ZVi8B3Jtkv/bz/WhWP3uCqlpZVSuqasXSpUu3NgRJ0hxmKxHsl+Qo4KQkL0xy+PTXXDdOEuBC4Paq+tC0jy4Hzmi3zwAu29rgJUnbbrbG4nfT9OhZBnxos88KOHaOex8JvA64Jcm32mPvBM4FLk5yJvBDmhHLkqQJmW2uoUuAS5L856p6/3xvXFXf4InrHE952XzvJ0nqx5zdR6vq/UlOAl7aHlpTVV/sNyxJ0lC6TDr3h8DZwHfa19ntMUnSItBlQNkJwGFV9Rj8cqnKm4B39BmYJGkYXccR7D5te7c+ApEkTUaXEsEfAjcluYam8felWBqQpEWjS2Pxp5OsoVmhLMDbq+r/9R2YJGkYXSedW08zEEzbwfJzrph0CJL0Sy4wI0kjZyKQpJGbNREkeVKSW4cKRpI0vFnbCKrqsSQ3Jzmwqn44VFCStBjNt33w7nNP6CmSTXVpLN4PuC3J9cDPpg5W1Um9RSVJGkyXRPDe3qOQJE1Ml3EE1yZ5JnBwVf1lkqcBS/oPTZI0hDkTQZJ/DZwF7Ak8m2YB+j/DqaS1gO2odbXSJHTpPvommkVmHgCoqjtwwXlJWjS6JIKHq+oXUztJdqJZoUyStAh0SQTXJnkn8NQk/wj4C+AL/YYlSRpKl15D5wBnArcAvwNcCVzQZ1DSQmcbhBaSLr2GHmsXo7mOpkroe1Vl1ZAkLRJdeg2dQNNL6Ps001AflOR3qupLfQcnSepfl6qh84BjqupOgCTPBq4ATASStAh0aSzeMJUEWncBG3qKR5I0sC2WCJKc2m7eluRK4GKaNoLTgBsGiE2SNIDZqoZeOW37XuCodnsjsEdvEUmSBrXFRFBVbxgyEEnSZHTpNXQQ8O+A5dPPdxpqSVocuvQa+jxwIc1o4sf6DUeSNLQuieDnVfXHvUciSZqILong/CTvAb4CPDx1sKpu7C0qSdJguiSC5wGvA47l8aqhave3KMnHgBNpxiH8WntsT+AzNO0NdwOnV9VPtyZwaTGZ79xEW8P5jLQlXQaUvQp4VlUdVVXHtK9Zk0DrE8Dxmx07B1hdVQcDq9t9SdIEdUkENwO7z/fGVfU14CebHT4ZWNVurwJOme99JUnbV5eqoX2B7ya5gU3bCLam++i+VbW+vX59Elc6k6QJ65II3tN7FDNIchbNWskceOCBkwhBkkahy3oE127H77s3yX5taWA/Zpm8rqpWAisBVqxY4foHktSTOdsIkjyY5IH29fMkjyZ5YCu/73LgjHb7DOCyrbyPJGk76VIi2GX6fpJTgCPmui7Jp4Gjgb2T/Iimiulc4OIkZwI/pJnJVJI0QV3aCDZRVZ9PMme3z6p6zRY+etl8v3NIrjWrmQzRz1+alC6Tzp06bfdJwAqaAWWSpEWgS4lg+roEj9CMCD65l2gkSYPr0kbgugSStIjNtlTlu2e5rqrq/T3EI2kHYXvZeMxWIvjZDMeeDpwJ7AWYCCRpEZhtqcrzpraT7AKcDbwBuAg4b0vXSZIWllnbCNppo98KvJZmkrjDnTZakhaX2doI/gtwKs00D8+rqocGi0qSNJjZpph4G/CrwH8C7pk2zcSD2zDFhCRpBzNbG0GXtQokSQvcvKeYkLQwOU2GtsT/+iVp5EwEkjRyJgJJGjnbCLaR9a6SFjpLBJI0ciYCSRo5E4EkjZyJQJJGzkQgSSNnIpCkkTMRSNLILfpxBPbzl4YxxNKWO9rv82JZntMSgSSNnIlAkkbORCBJI2cikKSRMxFI0siZCCRp5EwEkjRyExlHkOR44HxgCXBBVZ07iTgkTc6ONiZgzAYvESRZAnwEeAVwKPCaJIcOHYckqTGJqqEjgDur6q6q+gVwEXDyBOKQJDGZRLA/8H+n7f+oPSZJmoBJtBFkhmP1hJOSs4Cz2t2Hknyv16j6tzdw36SD2EH4LDbl89jUgnke+WDv99/WZ/HMLidNIhH8CDhg2v4y4J7NT6qqlcDKoYLqW5K1VbVi0nHsCHwWm/J5bMrn8bihnsUkqoZuAA5OclCSJwO/DVw+gTgkSUygRFBVjyR5M3AVTffRj1XVbUPHIUlqTGQcQVVdCVw5ie+eoEVTzbUd+Cw25fPYlM/jcYM8i1Q9oZ1WkjQiTjEhSSNnIuhBko8l2ZDk1mnH9kxydZI72vc9JhnjUJIckOSaJLcnuS3J2e3xsT6PpyS5PsnN7fN4b3v8oCTXtc/jM21HilFIsiTJTUm+2O6P+VncneSWJN9KsrY91vvviomgH58Ajt/s2DnA6qo6GFjd7o/BI8DbquoQ4EXAm9opRcb6PB4Gjq2qFwCHAccneRHwQeDD7fP4KXDmBGMc2tnA7dP2x/wsAI6pqsOmdRvt/XfFRNCDqvoa8JPNDp8MrGq3VwGnDBrUhFTV+qq6sd1+kOYXfn/G+zyqqh5qd3duXwUcC1zSHh/N80iyDDgBuKDdDyN9FrPo/XfFRDCcfatqPTR/HIF9JhzP4JIsB14IXMeIn0dbFfItYANwNfB94P6qeqQ9ZUzTrvwR8HvAY+3+Xoz3WUDzT8FXkqxrZ1eAAX5XJtJ9VOOT5BnAZ4HfraoHmn/8xqmqHgUOS7I7cClwyEynDRvV8JKcCGyoqnVJjp46PMOpi/5ZTHNkVd2TZB/g6iTfHeJLLREM594k+wG07xsmHM9gkuxMkwQ+WVWfaw+P9nlMqar7gTU0bSe7J5n6x2zGaVcWoSOBk5LcTTML8bE0JYQxPgsAquqe9n0DzT8JRzDA74qJYDiXA2e022cAl00wlsG0db4XArdX1YemfTTW57G0LQmQ5KnAcTTtJtcAr25PG8XzqKp3VNWyqlpOM9XMV6vqtYzwWQAkeXqSXaa2gZcDtzLA74oDynqQ5NPA0TSzKN4LvAf4PHAxcCDwQ+C0qtq8QXnRSfIS4OvALTxeD/xOmnaCMT6P59M0+C2h+Ufs4qp6X5Jn0fxXvCdwE/DPq+rhyUU6rLZq6D9U1YljfRbtz31pu7sT8Kmq+kCSvej5d8VEIEkjZ9WQJI2ciUCSRs5EIEkjZyKQpJEzEUjSyJkIpM0kebSd/fHWJH+R5GlbOO/KqTEB0kJm91FpM0keqqpntNufBNZNHwzXDpJLVT22pXtIC4klAml2Xwf+XpLl7ZoKHwVuBA5o547fGyDJv0jy7XadgT9vjy1N8tkkN7SvIyf4c0hb5KRz0ha08928Avhye+i5wBuq6t+2n0+d9/eBd9FMGHZfkj3b88+nmVf/G0kOBK5i5gnmpIkyEUhP9NR2mmhoSgQXAr8K/KCq/vcM5x8LXFJV9wFMG/5/HHDotJlWd02yS7sug7TDMBFIT/S3VXXY9APtH/OfbeH8MPNUyU8CXlxVf7t9w5O2L9sIpG23Gji9nRyMaVVDXwHePHVSksNmuFaaOBOBtI2q6jbgA8C1SW4GpnoYvQVY0TYifwd446RilGZj91FJGjlLBJI0ciYCSRo5E4EkjZyJQJJGzkQgSSNnIpCkkTMRSNLImQgkaeT+P/VAj7nM3woCAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(y_train, bins=25)\n", "plt.ylabel('Number of objects within borders')\n", "plt.xlabel('Price')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задание.\n", "Будем решать задачу регрессии. Целевая переменная -- цена дома, признаки - различная информация о домохозяйстве. Для решения будем использовать линейную регрессию. Ваша задача - оценить качество решения в зависимости от количества объектов в обучающей выборке. Качество решения будем оценивать с помощью среднеквадратичной и среднеабсолютной ошибки, а так же [коэффициента детерминации $r^2$](http://scikit-learn.org/stable/modules/model_evaluation.html#r2-score-the-coefficient-of-determination). Также требуется оценить дисперсию данных функционалов в зависимости от числа объектов в обучающей выборке. \n", "\n", "*Обращаем ваше внимание, что для качественной оценки данных зависимостей эксперименты для каждого размера выборки стоит повторять многократно на различных случайных подвыборках.*" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Prices vs Predicted prices: $Y_i$ vs $\\\\hat{Y}_i$')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lm = LinearRegression()\n", "lm.fit(X_train, y_train)\n", "\n", "y_pred = lm.predict(X_test)\n", "\n", "plt.scatter(y_test, y_pred)\n", "plt.xlabel(\"Prices: $Y_i$\")\n", "plt.ylabel(\"Predicted prices: $\\hat{Y}_i$\")\n", "plt.title(\"Prices vs Predicted prices: $Y_i$ vs $\\hat{Y}_i$\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mae = 3.464185812406724\n", "mse = 23.195599256422998\n", "prediction variance = 45.78048685033721\n" ] } ], "source": [ "print('mae = {}'.format(mean_absolute_error(y_test, y_pred)))\n", "print('mse = {}'.format(mean_squared_error(y_test, y_pred)))\n", "print('prediction variance = {}'.format(np.std((y_test - y_pred)**2)))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "samples_amount = len(X_train)\n", "rep_amount = 100\n", "\n", "mae = np.zeros(samples_amount)\n", "mse = np.zeros(samples_amount)\n", "r2 = np.zeros(samples_amount)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "for i in range(1, samples_amount):\n", " for j in range(rep_amount):\n", " sub_data = np.random.choice(np.arange(len(X_train)), i + 1, replace = False)\n", " sub_x = X_train[sub_data]\n", " sub_y = y_train[sub_data]\n", " lm.fit(sub_x, sub_y)\n", " y_pred = lm.predict(X_test)\n", " mae[i] += mean_absolute_error(y_test, y_pred)\n", " mse[i] += mean_squared_error(y_test, y_pred)\n", " r2[i] += r2_score(y_test, y_pred)\n", " mae[i] = mae[i] / rep_amount\n", " mse[i] = mse[i] / rep_amount\n", " r2[i] = r2[i] / rep_amount" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "plt.rcParams['font.family'] = 'serif'\n", "plt.rcParams['font.serif'] = 'FreeSerif'\n", "plt.rcParams['lines.linewidth'] = 2\n", "plt.rcParams['lines.markersize'] = 12\n", "plt.rcParams['xtick.labelsize'] = 18\n", "plt.rcParams['ytick.labelsize'] = 18\n", "plt.rcParams['legend.fontsize'] = 18\n", "plt.rcParams['axes.titlesize'] = 18\n", "plt.rcParams['axes.labelsize'] = 18" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'MAE(Train set size)')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\matplotlib\\font_manager.py:1328: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans\n", " (prop.get_family(), self.defaultFamily[fontext]))\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.arange(1, len(X_train) + 1)\n", "plt.figure(figsize=(10, 8))\n", "plt.grid(True)\n", "plt.plot(x, mae)\n", "plt.ylabel('Mean absolute error')\n", "plt.xlabel('Train set size')\n", "plt.title('MAE(Train set size)')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'plt' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Mean squared error'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Sample size'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'mse(N)'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined" ] } ], "source": [ "plt.plot(x, mse)\n", "plt.ylabel('Mean squared error')\n", "plt.xlabel('Sample size')\n", "plt.title('mse(N)')" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'R2(N)')" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\matplotlib\\font_manager.py:1328: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans\n", " (prop.get_family(), self.defaultFamily[fontext]))\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x, r2)\n", "plt.ylabel('R2')\n", "plt.xlabel('Sample size')\n", "plt.title('R2(N)')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# # Plot code example from ODS Open Machine Course notebook from lesson 9\n", "# # Source: https://github.com/Yorko/mlcourse_open/blob/master/jupyter_russian/topic09_time_series/topic9_part1_time_series_python.ipynb\n", "# plt.figure(figsize=(15, 5))\n", "# plt.plot(prediction_test, label=\"prediction\")\n", "# plt.plot(lower, \"r--\", label=\"upper bond / lower bond\")\n", "# plt.plot(upper, \"r--\")\n", "# plt.plot(list(y_test), label=\"y_test\")\n", "# plt.plot(Anomalies, \"ro\", markersize=10)\n", "# plt.legend(loc=\"best\")\n", "# plt.axis('tight')\n", "# plt.title(\"XGBoost Mean absolute error {} users\".format(round(mean_absolute_error(prediction_test, y_test))))\n", "# plt.grid(True)\n", "# plt.legend()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### Your code here" ] } ], "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }