From 6e20df49e5a2b7105f4383693b465312d3520e97 Mon Sep 17 00:00:00 2001 From: kamilia Date: Fri, 25 Oct 2024 18:34:15 +0400 Subject: [PATCH 1/2] lab 3 is done --- lab_3/lab_3.ipynb | 522 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 522 insertions(+) create mode 100644 lab_3/lab_3.ipynb diff --git a/lab_3/lab_3.ipynb b/lab_3/lab_3.ipynb new file mode 100644 index 0000000..2d638eb --- /dev/null +++ b/lab_3/lab_3.ipynb @@ -0,0 +1,522 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Вариант 19: Данные о миллионерах\n", + "### Бизнес-цели:\n", + "Цель 1: Исследовать распределение богатства среди миллиардеров и выявить ключевые факторы, которые способствуют их успеху.\n", + "Цель 2: Оценить влияние миллиардеров на экономику и общество, включая их вклад в благотворительность, инновации и социальные проекты.\n", + "### Цели технического проекта:\n", + "Для бизнес-цели 1:\n", + "Сбор и подготовка данных:\n", + "Очистка данных от пропусков, выбросов и дубликатов.\n", + "Преобразование категориальных переменных в числовые.\n", + "Разделение данных на обучающую и тестовую выборки.\n", + "Разработка и обучение модели:\n", + "Исследование различных алгоритмов машинного обучения (линейная регрессия, деревья решений, случайный лес и т.д.).\n", + "Обучение моделей на обучающей выборке.\n", + "Оценка качества моделей на тестовой выборке с помощью метрик RMSE, MAE и др.\n", + "Развертывание модели:\n", + "Интеграция модели в существующую систему или разработка нового API для доступа к прогнозам.\n", + "Создание веб-интерфейса или мобильного приложения для удобного использования модели.\n", + "Для бизнес-цели 2:\n", + "Сбор и подготовка данных:\n", + "Очистка данных от пропусков, выбросов и дубликатов.\n", + "Преобразование категориальных переменных в числовые.\n", + "Разделение данных на обучающую и тестовую выборки.\n", + "Разработка и обучение модели:\n", + "Исследование различных алгоритмов машинного обучения (линейная регрессия, деревья решений, случайный лес и т.д.).\n", + "Обучение моделей на обучающей выборке.\n", + "Оценка качества моделей на тестовой выборке с помощью метрик RMSE, MAE и др.\n", + "Развертывание модели:\n", + "Создать интерактивные дашборды для визуализации вклада миллиардеров в разные сферы.\n", + "Применить статистические методы и машинное обучение для анализа влияния миллиардеров на экономику и общество.\n", + "Определить ключевые факторы, влияющие на вклад миллиардеров в благотворительность и инновации." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Rank ', 'Name', 'Networth', 'Age', 'Country', 'Source', 'Industry'], dtype='object')\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib\n", + "import matplotlib.ticker as ticker\n", + "import seaborn as sns\n", + "from sklearn.model_selection import train_test_split\n", + "df = pn.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "print(df.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Разделим на 3 выборки\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Размер обучающей выборки: (1560, 6)\n", + "Размер контрольной выборки: (520, 6)\n", + "Размер тестовой выборки: (520, 6)\n" + ] + } + ], + "source": [ + "# Предварительная обработка данных \n", + "# Удаление пропусков и дубликатов\n", + "df = df.dropna()\n", + "df = df.drop_duplicates()\n", + "\n", + "# Разделение данных на признаки (X) и целевую переменную (y)\n", + "# В данном случае, предположим, что мы хотим предсказать 'Networth'\n", + "X = df.drop(columns=['Networth'])\n", + "y = df['Networth']\n", + "\n", + "# Разбиение данных на обучающую и тестовую выборки\n", + "# Сначала разделим на обучающую и тестовую выборки\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", + "\n", + "# Затем разделим обучающую выборку на обучающую и контрольную выборки\n", + "X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)\n", + "\n", + "# Проверка размеров выборок\n", + "print(\"Размер обучающей выборки:\", X_train.shape)\n", + "print(\"Размер контрольной выборки:\", X_val.shape)\n", + "print(\"Размер тестовой выборки:\", X_test.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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KgrTp0+XXut0Onh5eVWv8HtwM0+HTzZfwLtjG5U7e0VERES1r15c0po0aRK2bduGvXv3omnTpnds2717dwDA+fPnAQBarRbp6ekmbYyvK+v3o1arodFoTIbaZmPvUOvrICIiooqZNfAIITBp0iRs2rQJe/bsgY+Pz13nSUhIAAB4eHgAAAIDA3Hy5ElkZGRIbXbt2gWNRgM/P79aqZuIiIgaFrNe0oqMjMS6deuwZcsWODg4SH1uHB0dYWNjgwsXLmDdunUYNGgQXFxccOLECUybNg29e/eGv78/AGDAgAHw8/PDqFGj8NFHHyEtLQ0zZ85EZGQk1Gq1OTePiIiI6gmznuFZtmwZcnNzERQUBA8PD2lYv349AMDKygoxMTEYMGAA2rZti1dffRXh4eHYunWrtAyVSoVt27ZBpVIhMDAQzz//PEaPHm3y3B4iIiJ6sJn1DI8Q4o7Tvby8EBsbe9fleHt74+eff66psoiIiEhm6kWnZSIiIqLaxMBDREREssfAQ0RERLLHwENERESyx8BDREREssfAQ0RERLLHwENERESyx8BDREREssfAQ0RERLLHwENERESyV63A06JFC2RmZpYbn5OTgxYtWtx3UUREREQ1qVqB5+LFi9Dr9eXGFxUV4cqVK/ddFBEREVFNqtKXh/7f//2f9POOHTvg6Ogovdbr9di9ezeaN29eY8URERER1YQqBZ4nnngCAKBQKBAREWEyzdLSEs2bN8cnn3xSY8URERER1YQqBR6DwQAA8PHxwdGjR+Hq6lorRRERERHVpCoFHqPk5OSaroOIiIio1lQr8ADA7t27sXv3bmRkZEhnfoy+/vrr+y6MiIiIqKZUK/DMmTMHc+fORZcuXeDh4QGFQlHTdRERERHVmGoFnuXLl2PlypUYNWpUTddDREREVOOq9Rye4uJiPPLIIzVdCxEREVGtqFbgeeGFF7Bu3bqaroWIiIioVlTrklZhYSG++OILxMTEwN/fH5aWlibT58+fXyPFEREREdWEagWeEydOoHPnzgCAU6dOmUxjB2YiIiKqb6oVePbu3VvTdRARERHVmmr14SEiIiJqSKp1huexxx6746WrPXv2VLsgIiIioppWrcBj7L9jVFJSgoSEBJw6darcl4oSERERmVu1As+CBQsqHD979mzk5eXdV0FERERENa1G+/A8//zz/B4tIiIi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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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6Nu3LwYMGIAePXpg6dKltVUyERER1TNmPbPTu3dvCCFqPP25c+cqtWm1WnzzzTcmrIqIiIjkxGI7KBMRERGZAsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREcmaWcPOrl278Pjjj8PLywsKhQIbN26UxpWWluKNN95Au3bt4ODgAC8vLzz33HO4dOmS0TKysrIQFhYGjUYDFxcXjBkzBvn5+XW8JURERGSpzBp2CgoK0KFDByxcuLDSuMLCQhw8eBBTp07FwYMHsX79eiQlJWHQoEFG04WFheHEiRPYunUrtmzZgl27diEiIqKuNoGIiIgsnJU5Vx4aGorQ0NAqxzk7O2Pr1q1GbQsWLECXLl1w4cIFNGrUCKdOnUJMTAz279+PTp06AQDmz5+PAQMG4JNPPoGXl1etbwMRERFZtnrVZyc3NxcKhQIuLi4AgPj4eLi4uEhBBwCCg4OhVCqRkJBQ7XKKi4uRl5dnNBAREZE81ZuwU1RUhDfeeANPP/00NBoNACAtLQ3u7u5G01lZWUGr1SItLa3aZUVHR8PZ2VkavL29a7V2IiIiMp96EXZKS0sxYsQICCGwePHie15eVFQUcnNzpSE1NdUEVRIREZElMmufnZowBJ3z589j+/bt0lkdANDpdMjIyDCavqysDFlZWdDpdNUuU61WQ61W11rNREREZDks+syOIegkJydj27ZtcHV1NRofGBiInJwcJCYmSm3bt2+HXq9H165d67pcIiIiskBmPbOTn5+P06dPS69TUlJw+PBhaLVaeHp6Yvjw4Th48CC2bNmC8vJyqR+OVquFjY0NWrVqhf79+2Ps2LFYsmQJSktLERkZiZEjR/JOLCIiIgJg5rBz4MAB9OnTR3o9ZcoUAEB4eDhmzJiBH3/8EQDg7+9vNN+OHTvQu3dvAMDq1asRGRmJvn37QqlUYtiwYZg3b16d1E9ERESWz6xhp3fv3hBCVDv+VuMMtFotvvnmG1OWRURERDJi0X12iIiIiO4Vww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyRrDDhEREckaww4RERHJGsMOERERyZpZw86uXbvw+OOPw8vLCwqFAhs3bjQaL4TAtGnT4OnpCTs7OwQHByM5OdlomqysLISFhUGj0cDFxQVjxoxBfn5+HW4FERERWTKzhp2CggJ06NABCxcurHL8Rx99hHnz5mHJkiVISEiAg4MDQkJCUFRUJE0TFhaGEydOYOvWrdiyZQt27dqFiIiIutoEIiIisnBW5lx5aGgoQkNDqxwnhMDcuXPxzjvvYPDgwQCAlStXwsPDAxs3bsTIkSNx6tQpxMTEYP/+/ejUqRMAYP78+RgwYAA++eQTeHl51dm2EBERkWWy2D47KSkpSEtLQ3BwsNTm7OyMrl27Ij4+HgAQHx8PFxcXKegAQHBwMJRKJRISEqpddnFxMfLy8owGIiIikieLDTtpaWkAAA8PD6N2Dw8PaVxaWhrc3d2NxltZWUGr1UrTVCU6OhrOzs7S4O3tbeLqiYiIyFJYbNipTVFRUcjNzZWG1NTUWl2fEALZ2dkQQtTqeoiIiKgyiw07Op0OAJCenm7Unp6eLo3T6XTIyMgwGl9WVoasrCxpmqqo1WpoNBqjoTZdz8/DpxsTkJ2dXavrISIiososNuz4+vpCp9MhNjZWasvLy0NCQgICAwMBAIGBgcjJyUFiYqI0zfbt26HX69G1a9c6r/lW7BydzF0CERHRfcmsd2Pl5+fj9OnT0uuUlBQcPnwYWq0WjRo1wqRJk/Dee++hefPm8PX1xdSpU+Hl5YUhQ4YAAFq1aoX+/ftj7NixWLJkCUpLSxEZGYmRI0fyTiwiIiICYOawc+DAAfTp00d6PWXKFABAeHg4li9fjtdffx0FBQWIiIhA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xsqJiIjIUiiEEMLcRZhbXl4enJ2dkZuba9L+O1lZWVi04zQKr+UiJ+sK7Byc8PaT3aHVak22DiIiovtVTf9+W3SfHSIiIqJ7xbBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLJWr8LOhx9+CIVCgUmTJkltRUVFmDBhAlxdXeHo6Ihhw4YhPT3dfEUSERGRRak3YWf//v344osv0L59e6P2yZMnY/PmzVi7di3i4uJw6dIlDB061ExVEhERkaWpF2EnPz8fYWFh+O9//4sGDRpI7bm5ufjyyy8xZ84cPPLIIwgICMCyZcuwd+9e7Nu3z4wVExERkaWoF2FnwoQJGDhwIIKDg43aExMTUVpaatTu5+eHRo0aIT4+vtrlFRcXIy8vz2ggIiIiebIydwG3s2bNGhw8eBD79++vNC4tLQ02NjZwcXExavfw8EBaWlq1y4yOjsbMmTNNXSoRERFZIIs+s5Oamor//Oc/WL16NWxtbU223KioKOTm5kpDamqqyZZNRERElsWiw05iYiIyMjLw0EMPwcrKClZWVoiLi8O8efNgZWUFDw8PlJSUICcnx2i+9PR06HS6aperVquh0WiMBiIiIpIni76M1bdvXxw7dsyobfTo0fDz88Mbb7wBb29vWFtbIzY2FsOGDQMAJCUl4cKFCwgMDDRHyURERGRhLDrsODk5oW3btkZtDg4OcHV1ldrHjBmDKVOmQKvVQqPRYOLEiQgMDMTDDz9sjpKJiIjIwlh02KmJzz77DEqlEsOGDUNxcTFCQkKwaNEic5dVJSEEsrOzAQANGjSAQqEwc0VERETypxBCCHMXYW55eXlwdnZGbm6uSfvvZGVlYdGO0yi8loucrCsAADsHDWxtbfHK4w9Bq9WabF1ERET3m5r+/a73Z3bqGztHjUnvLCMiIqJbs+i7sYiIiIjuFcMO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J3HlyhXExcWhd+/e6N27N3bu3InS0lLs3bsXvXv3BgCcOnUK3t7eRmdlWrduDRcXF6N6GjdubBR0bqd9+/bSvw2X0DIyMmo8PxHVHoYdIqpzPXv2REhICKKiooza8/PzMW7cOBw+fFgajhw5guTkZDRt2rTa5bVr1w5arRZxcXFGYScuLg779+9HaWkpunXrdkc1Ojg43NH01tbW0r8Nd5fp9fo7WgYR1Q5exiIis/jwww/h7++Pli1bSm0PPfQQTp48iWbNmlU7n42NDcrLy43aFAoFgoKCsGnTJpw4cQI9evSAvb09iouL8cUXX6BTp05SeGnVqhVSU1ORmpoqnd05efIkcnJy0Lp161vWXNW6icjy8cwOEZlFu3btEBYWhnnz5kltb7zxBvbu3YvIyEgcPnwYycnJ2LRpk9RBGah4zs6uXbtw8eJFZGZmSu29e/fGt99+C39/fzg6OkKpVKJnz55YvXq11JcGqLgjzLDugwcP4o8//sBzzz2HXr16oVOnTres2cfHBwkJCTh37hwyMzN55oaonmDYISKzmTVrllFgaN++PeLi4vDXX38hKCgIHTt2xLRp0+Dl5WU0z7lz59C0aVOjPjW9evVCeXm51DcHqAhAN7cpFAps2rQJDRo0QM+ePREcHIwmTZrgu+++u229r776KlQqFVq3bo2GDRviwoUL9/YGEFGdUAghhLmLICIiIqotPLNDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESy9v/IY3e/D8m2QQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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prO2tsakSZNw4sSJcsv08fGRt6HsPrlw4YLc6PjebS3rwoULcHZ2NjirA5R+LuqXDwCJiYnQ6XTlGjIPHjwYa9asQUFBAbZt24bp06fLd7oCNf+caw7YZqeZUqvV5f5T3bx5c7nbSceNG4eMjAysWrWq3DKq859uZdavX4+cnBy5/9tvv0VKSgrCw8MBAIGBgfD19cV///tf5Obmlpu/7K3AmzdvhlqtrvC27nuNHTsWarUaCxcuLFe/EEK+0wIovaXzu+++Q+/evav8T2j8+PHQarV48803y40rKSkpd0ttTcTExGD79u1YvHhxpX+kx48fj2vXruH//u//yo3Lz8+X28XUxBNPPIG2bdti4cKFD7Q+KyurSrc/JCQER44cwb59++Sw4+zsjI4dO+Ldd9+Vp9ELCwuDmZkZVqxYYXDsPvnkE2RlZWHEiBHV2raqaqprRUVFKCkpqfYjAKoydOhQ2Nra4p133kFxcXG58fr3hIuLC/r3749PP/203F1HNX3P9uzZE66urli7dq3BNvz88884f/78ffd52e2v6THMycnB22+/jTlz5lR5drW68vPzAeC+x0N/Fq2isyLdu3eHu7t7uX1y4MABHDt2TP4M8vDwQEBAAD7//HOD19uZM2fw66+/lrtzFShtfnCvlStXAoD8uajXp08fqNVqWFlZYe3atYiOjjZ4P9bkc6654JmdZuqRRx7BokWLMHXqVPTp0wenT5/Ghg0bDP7bAkobEq9fvx5z587F77//jpCQEOTl5WH37t345z//Wa5hXHU5OjqiX79+mDp1KtLS0rBs2TK0bdtWfjqqSqXC//73P4SHh6Nz586YOnUqWrRogWvXrmHfvn2wtbXFjh07kJeXh9WrV2PFihVo3769wbNB9CHp1KlTiImJQXBwMHx9ffHWW28hIiICycnJePTRR2FjY4OkpCRs3boV06dPx8svv4zdu3dj3rx5OHXqFHbs2FHltgwYMAAzZsxAZGQk4uLiMGTIEJiamiIhIQGbN2/G8uXL8dhjj9VqP/36668YPHhwlf/JP/nkk/jmm2/wj3/8A/v27UPfvn2h1Wpx4cIFfPPNN/jll1/ue8arLLVajddee63CBr41WV9gYCB2796NpUuXwtPTEz4+PnID05CQELz99tu4cuWKQajp378/PvroI3h7e6Nly5bycBcXF0RERGDh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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Создание DataFrame для обучающей, контрольной и тестовой выборок\n", + "train_data = pd.DataFrame({'Networth': y_train})\n", + "val_data = pd.DataFrame({'Networth': y_val})\n", + "test_data = pd.DataFrame({'Networth': y_test})\n", + "\n", + "# Гистограмма распределения Networth в обучающей выборке\n", + "sns.histplot(train_data['Networth'], kde=True)\n", + "plt.title('Распределение Networth в обучающей выборке')\n", + "plt.show()\n", + "\n", + "# Гистограмма распределения Networth в контрольной выборке\n", + "sns.histplot(val_data['Networth'], kde=True)\n", + "plt.title('Распределение Networth в контрольной выборке')\n", + "plt.show()\n", + "\n", + "# Гистограмма распределения Networth в тестовой выборке\n", + "sns.histplot(test_data['Networth'], kde=True)\n", + "plt.title('Распределение Networth в тестовой выборке')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Процесс конструирования признаков\n", + "Задача 1: Исследовать распределение богатства среди миллиардеров и выявить ключевые факторы, которые способствуют их успеху.\n", + "Цель технического проекта: Разработка модели машинного обучения для анализа распределения богатства среди миллиардеров и выявления ключевых факторов их успеха.\n", + "\n", + "Задача 2: Оценить влияние миллиардеров на экономику и общество, включая их вклад в благотворительность, инновации и социальные проекты.\n", + "Цель технического проекта: Использование прогнозов влияния миллиардеров на экономику и общество для оптимизации стратегий благотворительности и инвестиций в инновации.\n", + "\n", + "\n", + "### Унитарное кодирование категориальных признаков (one-hot encoding)\n", + "\n", + "One-hot encoding: Преобразование категориальных признаков в бинарные векторы." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Rank Name Networth Age Country_Argentina \\\n", + "0 1 Elon Musk 219.0 50 0.0 \n", + "1 2 Jeff Bezos 171.0 58 0.0 \n", + "2 3 Bernard Arnault & family 158.0 73 0.0 \n", + "3 4 Bill Gates 129.0 66 0.0 \n", + "4 5 Warren Buffett 118.0 91 0.0 \n", + "\n", + " Country_Australia Country_Austria Country_Barbados Country_Belgium \\\n", + "0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Belize ... Industry_Logistics Industry_Manufacturing \\\n", + "0 0.0 ... 0.0 0.0 \n", + "1 0.0 ... 0.0 0.0 \n", + "2 0.0 ... 0.0 0.0 \n", + "3 0.0 ... 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "0 0.0 0.0 \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \n", + "0 0.0 0.0 0.0 \n", + "1 1.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 1.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "\n", + "[5 rows x 989 columns]\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "# Загрузка данных\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Определение категориальных признаков\n", + "categorical_features = ['Country', 'Source', 'Industry']\n", + "\n", + "# Применение one-hot encoding\n", + "encoder = OneHotEncoder(sparse_output=False, drop='first')\n", + "encoded_features = encoder.fit_transform(df[categorical_features])\n", + "\n", + "# Создание DataFrame с закодированными признаками\n", + "encoded_df = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out(categorical_features))\n", + "\n", + "# Объединение закодированных признаков с исходным DataFrame\n", + "df_encoded = pd.concat([df.drop(columns=categorical_features), encoded_df], axis=1)\n", + "\n", + "# Проверка результата\n", + "print(df_encoded.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ручной синтез\n", + "Создание новых признаков на основе экспертных знаний и логики предметной области. Например, можно создать признак \"квадрат возраста\" или \"возраст в квадрате\", который может помочь учесть нелинейные зависимости в данных." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Создание нового признака 'Age Squared'\n", + "df['Age Squared'] = df['Age'] ** 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Масштабирование признаков - это процесс преобразования числовых признаков таким образом, чтобы они имели одинаковый масштаб. Это важно для многих алгоритмов машинного обучения, которые чувствительны к масштабу признаков, таких как линейная регрессия, метод опорных векторов (SVM) и нейронные сети." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Загрузка данных\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Определение числовых признаков\n", + "numerical_features = df.select_dtypes(include=['number']).columns.tolist()\n", + "numerical_features.remove('Networth') # Исключаем целевую переменную\n", + "\n", + "# Создание DataFrame для обучающей, контрольной и тестовой выборок\n", + "train_data = pd.DataFrame(X_train, columns=X.columns)\n", + "val_data = pd.DataFrame(X_val, columns=X.columns)\n", + "test_data = pd.DataFrame(X_test, columns=X.columns)\n", + "\n", + "# Пример масштабирования числовых признаков\n", + "scaler = StandardScaler()\n", + "train_data[numerical_features] = scaler.fit_transform(train_data[numerical_features])\n", + "val_data[numerical_features] = scaler.transform(val_data[numerical_features])\n", + "test_data[numerical_features] = scaler.transform(test_data[numerical_features])\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Конструирование признаков с применением фреймворка Featuretools" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:724: UserWarning: A Woodwork-initialized DataFrame was provided, so the following parameters were ignored: index\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", + " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", + " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" + ] + } + ], + "source": [ + "import featuretools as ft\n", + "\n", + "# Добавление уникального идентификатора 'id'\n", + "# Добавление уникального идентификатора 'id'\n", + "train_data['id'] = train_data.index\n", + "val_data['id'] = val_data.index\n", + "test_data['id'] = test_data.index\n", + "\n", + "# Определение сущностей\n", + "es = ft.EntitySet(id='billionaires_data')\n", + "es = es.add_dataframe(dataframe_name='billionaires', dataframe=train_data, index='id')\n", + "\n", + "# Генерация признаков\n", + "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='billionaires', max_depth=2)\n", + "\n", + "# Преобразование признаков для контрольной и тестовой выборок\n", + "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data.index)\n", + "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data.index)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Оценка качества каждого набора признаков\n", + "Предсказательная способность\n", + "Метрики: RMSE, MAE, R²\n", + "\n", + "Методы: Обучение модели на обучающей выборке и оценка на контрольной и тестовой выборках.\n", + "\n", + "Скорость вычисления\n", + "Методы: Измерение времени выполнения генерации признаков и обучения модели.\n", + "\n", + "Надежность\n", + "Методы: Кросс-валидация, анализ чувствительности модели к изменениям в данных.\n", + "\n", + "Корреляция\n", + "Методы: Анализ корреляционной матрицы признаков, удаление мультиколлинеарных признаков.\n", + "\n", + "Цельность\n", + "Методы: Проверка логической связи между признаками и целевой переменной, интерпретация результатов модели." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:724: UserWarning: A Woodwork-initialized DataFrame was provided, so the following parameters were ignored: index\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", + " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", + " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" + ] + } + ], + "source": [ + "import featuretools as ft\n", + "\n", + "# Добавление уникального идентификатора 'id'\n", + "train_data['id'] = train_data.index\n", + "val_data['id'] = val_data.index\n", + "test_data['id'] = test_data.index\n", + "\n", + "# Определение сущностей\n", + "es = ft.EntitySet(id='billionaires_data')\n", + "es = es.add_dataframe(dataframe_name='billionaires', dataframe=train_data, index='id')\n", + "\n", + "# Генерация признаков\n", + "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='billionaires', max_depth=2)\n", + "\n", + "# Преобразование признаков для контрольной и тестовой выборок\n", + "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data.index)\n", + "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data.index)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Validation Accuracy: 0.51\n", + "Test Accuracy: 0.48\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# Предположим, что df - это ваш DataFrame с данными\n", + "# Убедитесь, что у вас есть данные в df\n", + "\n", + "# Разделение данных на признаки (X) и целевую переменную (y)\n", + "# Если у вас нет целевой переменной, просто используйте все столбцы как признаки\n", + "X = df # Все данные без целевого признака\n", + "\n", + "# В этом случае, если у вас нет меток, вы можете использовать случайные метки для обучения\n", + "# Например, создадим случайные метки для примера\n", + "import numpy as np\n", + "\n", + "y = np.random.randint(0, 2, size=len(X)) # Создание бинарной целевой переменной (0 или 1)\n", + "\n", + "# Разделение данных на обучающую и тестовую выборки\n", + "X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)\n", + "X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)\n", + "\n", + "# Объединение данных для корректного преобразования категориальных признаков\n", + "X_combined = pd.concat([X_train, X_val, X_test], keys=['train', 'val', 'test'])\n", + "X_combined = pd.get_dummies(X_combined)\n", + "\n", + "# Разделение обратно на обучающую и тестовую выборки\n", + "X_train = X_combined.xs('train')\n", + "X_val = X_combined.xs('val')\n", + "X_test = X_combined.xs('test')\n", + "\n", + "# Обучение модели\n", + "model = RandomForestClassifier(random_state=42)\n", + "model.fit(X_train, y_train)\n", + "\n", + "# Валидация модели\n", + "y_val_pred = model.predict(X_val)\n", + "val_accuracy = accuracy_score(y_val, y_val_pred)\n", + "print(f'Validation Accuracy: {val_accuracy:.2f}')\n", + "\n", + "# Тестирование модели\n", + "y_test_pred = model.predict(X_test)\n", + "test_accuracy = accuracy_score(y_test, y_test_pred)\n", + "print(f'Test Accuracy: {test_accuracy:.2f}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Точность предсказаний: Модель показывает низкую точность на валидационной и тестовой выборках (0.51 и 0.48 соответственно), что указывает на то, что модель не очень хорошо объясняет вариацию целевой переменной. Это может быть связано с недостаточной информативностью признаков или сложностью задачи классификации.\n", + "\n", + "Переобучение: Разница между точностью на обучающей и тестовой выборках небольшая, что указывает на то, что переобучение не является критическим. Однако, низкая точность на тестовой выборке может свидетельствовать о том, что модель недостаточно хорошо обобщает данные.\n", + "\n", + "Кросс-валидация: Значение точности после кросс-валидации может быть нестабильным, что указывает на необходимость дальнейшего анализа и улучшения модели. Возможно, стоит рассмотреть другие модели или методы предобработки данных для повышения точности." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "aimenv", + "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 +} From 04af310f79ef71cb88870e0763efb2f6b8e09c48 Mon Sep 17 00:00:00 2001 From: kamilia Date: Fri, 25 Oct 2024 18:37:54 +0400 Subject: [PATCH 2/2] lab 3 done --- lab_3/lab_3.ipynb | 349 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 243 insertions(+), 106 deletions(-) diff --git a/lab_3/lab_3.ipynb b/lab_3/lab_3.ipynb index 2d638eb..f28c9dc 100644 --- a/lab_3/lab_3.ipynb +++ b/lab_3/lab_3.ipynb @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -56,7 +56,7 @@ "import matplotlib.ticker as ticker\n", "import seaborn as sns\n", "from sklearn.model_selection import train_test_split\n", - "df = pn.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", "print(df.columns)" ] }, @@ -69,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -183,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -269,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -286,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -323,43 +323,103 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 28, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Rank Networth Age Country Industry\n", + "id \n", + "1 1 219.0 50 United States Automotive \n", + "2 2 171.0 58 United States Technology \n", + "3 3 158.0 73 France Fashion & Retail \n", + "4 4 129.0 66 United States Technology \n", + "5 5 118.0 91 United States Finance & Investments \n", + " Rank Networth Age Country Industry\n", + "id \n", + "619 601 4.7 77 United States Logistics \n", + "195 192 10.3 56 Russia Finance & Investments \n", + "1245 1238 2.5 73 Taiwan Fashion & Retail \n", + "2014 1929 1.5 68 Italy Service \n", + "1801 1729 1.7 79 United Kingdom Energy \n", + " Rank Networth Age Country Industry\n", + "id \n", + "473 471 5.6 83 United States Real Estate \n", + "85 85 18.7 71 Germany Fashion & Retail \n", + "1552 1513 2.0 75 Spain Construction & Engineering \n", + "2354 2324 1.2 56 United States Finance & Investments \n", + "2360 2324 1.2 65 China Manufacturing \n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:724: UserWarning: A Woodwork-initialized DataFrame was provided, so the following parameters were ignored: index\n", - " warnings.warn(\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", - " warnings.warn(\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n" ] } ], "source": [ + "import pandas as pd\n", "import featuretools as ft\n", + "from sklearn.model_selection import train_test_split\n", "\n", - "# Добавление уникального идентификатора 'id'\n", - "# Добавление уникального идентификатора 'id'\n", - "train_data['id'] = train_data.index\n", - "val_data['id'] = val_data.index\n", - "test_data['id'] = test_data.index\n", + "# Загрузка данных\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", "\n", - "# Определение сущностей\n", + "# Создание уникального идентификатора для каждой строки\n", + "df['id'] = range(1, len(df) + 1)\n", + "\n", + "# Предобработка данных (например, кодирование категориальных признаков, удаление дубликатов)\n", + "# Удаление дубликатов по всем столбцам\n", + "df = df.drop_duplicates()\n", + "\n", + "# Создание EntitySet\n", "es = ft.EntitySet(id='billionaires_data')\n", - "es = es.add_dataframe(dataframe_name='billionaires', dataframe=train_data, index='id')\n", "\n", - "# Генерация признаков\n", - "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='billionaires', max_depth=2)\n", + "# Добавление датафрейма с миллиардерами\n", + "es = es.add_dataframe(\n", + " dataframe_name='billionaires',\n", + " dataframe=df,\n", + " index='id'\n", + ")\n", + "\n", + "# Генерация признаков с помощью глубокой синтезы признаков\n", + "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='billionaires', max_depth=1)\n", + "\n", + "# Выводим первые 5 строк сгенерированного набора признаков\n", + "print(feature_matrix.head())\n", + "\n", + "# Разделение данных на обучающую и тестовую выборки\n", + "train_data, test_data = train_test_split(df, test_size=0.3, random_state=42)\n", + "\n", + "# Разделение оставшейся части на валидационную и тестовую выборки\n", + "val_data, test_data = train_test_split(test_data, test_size=0.5, random_state=42)\n", "\n", "# Преобразование признаков для контрольной и тестовой выборок\n", - "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data.index)\n", - "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data.index)" + "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data['id'])\n", + "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data['id'])\n", + "\n", + "# Вывод первых 5 строк сгенерированных признаков для валидационной и тестовой выборок\n", + "print(val_feature_matrix.head())\n", + "print(test_feature_matrix.head())" ] }, { @@ -387,114 +447,191 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:724: UserWarning: A Woodwork-initialized DataFrame was provided, so the following parameters were ignored: index\n", - " warnings.warn(\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", - " warnings.warn(\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" - ] - } - ], - "source": [ - "import featuretools as ft\n", - "\n", - "# Добавление уникального идентификатора 'id'\n", - "train_data['id'] = train_data.index\n", - "val_data['id'] = val_data.index\n", - "test_data['id'] = test_data.index\n", - "\n", - "# Определение сущностей\n", - "es = ft.EntitySet(id='billionaires_data')\n", - "es = es.add_dataframe(dataframe_name='billionaires', dataframe=train_data, index='id')\n", - "\n", - "# Генерация признаков\n", - "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='billionaires', max_depth=2)\n", - "\n", - "# Преобразование признаков для контрольной и тестовой выборок\n", - "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data.index)\n", - "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data.index)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Validation Accuracy: 0.51\n", - "Test Accuracy: 0.48\n" + "Время обучения модели: 2.38 секунд\n", + "Среднеквадратичная ошибка: 37.42\n" ] } ], "source": [ - "import pandas as pd\n", + "import time\n", "from sklearn.model_selection import train_test_split\n", - "from sklearn.ensemble import RandomForestClassifier\n", - "from sklearn.metrics import accuracy_score\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error\n", "\n", - "# Предположим, что df - это ваш DataFrame с данными\n", - "# Убедитесь, что у вас есть данные в df\n", + "# Загрузка данных\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", "\n", - "# Разделение данных на признаки (X) и целевую переменную (y)\n", - "# Если у вас нет целевой переменной, просто используйте все столбцы как признаки\n", - "X = df # Все данные без целевого признака\n", + "# Разделение данных на признаки и целевую переменную\n", + "X = df.drop('Networth', axis=1)\n", + "y = df['Networth']\n", "\n", - "# В этом случае, если у вас нет меток, вы можете использовать случайные метки для обучения\n", - "# Например, создадим случайные метки для примера\n", - "import numpy as np\n", + "# One-hot encoding для категориальных переменных\n", + "X = pd.get_dummies(X, drop_first=True)\n", "\n", - "y = np.random.randint(0, 2, size=len(X)) # Создание бинарной целевой переменной (0 или 1)\n", + "# Проверяем, есть ли пропущенные значения, и заполняем их медианой или другим подходящим значением\n", + "X.fillna(X.median(), inplace=True)\n", "\n", - "# Разделение данных на обучающую и тестовую выборки\n", - "X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)\n", - "X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)\n", - "\n", - "# Объединение данных для корректного преобразования категориальных признаков\n", - "X_combined = pd.concat([X_train, X_val, X_test], keys=['train', 'val', 'test'])\n", - "X_combined = pd.get_dummies(X_combined)\n", - "\n", - "# Разделение обратно на обучающую и тестовую выборки\n", - "X_train = X_combined.xs('train')\n", - "X_val = X_combined.xs('val')\n", - "X_test = X_combined.xs('test')\n", + "# Разделение данных на обучающую и валидационную выборки\n", + "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n", "\n", "# Обучение модели\n", - "model = RandomForestClassifier(random_state=42)\n", + "model = LinearRegression()\n", + "\n", + "# Начинаем отсчет времени\n", + "start_time = time.time()\n", "model.fit(X_train, y_train)\n", "\n", - "# Валидация модели\n", - "y_val_pred = model.predict(X_val)\n", - "val_accuracy = accuracy_score(y_val, y_val_pred)\n", - "print(f'Validation Accuracy: {val_accuracy:.2f}')\n", + "# Время обучения модели\n", + "train_time = time.time() - start_time\n", "\n", - "# Тестирование модели\n", - "y_test_pred = model.predict(X_test)\n", - "test_accuracy = accuracy_score(y_test, y_test_pred)\n", - "print(f'Test Accuracy: {test_accuracy:.2f}')" + "# Предсказания и оценка модели\n", + "predictions = model.predict(X_val)\n", + "mse = mean_squared_error(y_val, predictions)\n", + "\n", + "print(f'Время обучения модели: {train_time:.2f} секунд')\n", + "print(f'Среднеквадратичная ошибка: {mse:.2f}')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RMSE: 0.1079309363400079\n", + "R²: 0.9995098829408076\n", + "MAE: 0.013002884615386595 \n", + "\n", + "Кросс-валидация RMSE: 1.8428859549056362 \n", + "\n", + "Train RMSE: 0.595273758834312\n", + "Train R²: 0.9973914757181492\n", + "Train MAE: 0.0366675480769256\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "image/png": "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ERERkdmEJ6bjXmwqPFXWkEiM5x9JJBJ4qqwRFpOK8MR0C0X4akySiIiIiIjIbNRaHTQ6PWwVL57ZY6OQIUOnh1qre8OR5R2TJCIiIiIiMhs7hRWsrWRIyyUJStfqobSSwS6XJKowYJJERERERERm4+1kg3Ju9ohM0kAQjOcdCYKAyCQN/N3t4e1kY6EIX41JEhERERERmY1UKkHbqh5wsVPgbkwqUjSZ0BkMSNFk4m5MKlzsFGhTxaNQr5fEJImIiIiIiMzK390BAxv6oqqXColpmXgYp0ZiWiaqeasKfflvgOskERERERFRAfB3d4BfM3uEJ6ZDrdXBTmEFbyebQt2DlIVJEhERERERFQipVAIfF1tLh2EyDrcjIiIiIiLKhkkSERERERFRNkySiIiIiIiIsmGSRERERERElA2TJCIiIiIiomyYJBEREREREWXDJImIiIiIiCgbJklERERERETZMEkiIiIiIiLKhkkSERERERFRNkySiIiIiIiIsmGSRERERERElA2TJCIiIiIiKhAGgwEpKSmWDsNkTJKIiIiIiKhASKVSZGRkWDoMkzFJIiIiIiIis/j3338RGRlp1Obs7IzU1FQLRZQ/TJKIiIiIiOi1REdHY+jQoahZsya+/PJLo20ymQz29vYWiix/mCQREREREVG+aDQazJs3DwEBAVi5ciUMBgPWr1+Py5cvWzq012Jl6QCIiIiIiKhoEQQBW7ZswcSJE/Ho0SOx3cHBAVOmTEGlSpUsGN3rY5JERERERER5du7cOQQFBeGff/4R26RSKYYMGYKZM2fC3d3dgtGZB5MkIiIiIiLKky+++AILFiwwamvdujUWLVqEatWqWSgq82OSREREREREeZI9EapQoQIWLVqEDh06QCKRWDAq82OSREREREREORgMBqSmpsLR0VFs6927NzZt2oQOHTrgs88+g1wut2CEBYdJEhERERERGTlx4gSCgoLg5+eHLVu2iO1SqRT79u2zYGRvBkuAExERERERAOD+/fvo2bMnmjRpgosXL2Lr1q04ceKEpcN649iTRERERERUzCUlJWHOnDlYvHgxtFqt2F69enVYWRW/lKH4PWIiIiIiIgIA6HQ6rFq1CtOmTUNsbKzY7u7ujlmzZiEwMBAymcyCEVoGkyQiIiIiomLoxIkTGD58OEJDQ8U2pVKJoKAgTJ482ahg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+CEiIiIiIqqvRh2Szp8/D7vdDn9/f4e6v78/cnJynL5nzpw5MJvNyk9wcPCNaJWIiIiIiJqIRh2S/orp06ejqKhI+cnKynJ1S0REREREdBNp1Bs3+Pr6Qq1WIzc316Gem5uLgADn3ymk0+mg0+luRHtERERERNQENeorSVqtFtHR0UhLS1NqsiwjLS0NsbGxLuyMiIiIiIiaqkZ9JQkAJk+ejKSkJMTExKB79+6YP38+ysrKMHr0aFe3RkRERERETVCjD0nDhg3DuXPn8PzzzyMnJwddunTB6tWra2zmQEREREREdD1IQgjh6iYaUnFxMcxmM4qKimAymVzdDhERERERuUh9s0GjfiaJiIiIiIjoRmNIIiIiIiIiqoYhiYiIiIiIqBqGJCIiIiIiomoa/e521+ryvhTFxcUu7oSIiIiIiFzpcia42t51TT4klZSUAACCg4Nd3AkRERERETUGJSUlMJvNtR5v8luAy7KMs2fPwmg0QpKka5qruLgYwcHByMrK4nbi1ChwTVJjwzVJjRHXJTU2XJOuI4RASUkJAgMDoVLV/uRRk7+SpFKpEBQUdF3nNJlMXNDUqHBNUmPDNUmNEdclNTZck65R1xWky7hxAxERERERUTUMSURERERERNUwJP0JOp0OM2fOhE6nc3UrRAC4Jqnx4ZqkxojrkhobrsnGr8lv3EBERERERPRn8EoSERERERFRNQxJRERERERE1TAkERERERERVcOQREREREREVA1DUj0tWLAAoaGhcHd3R48ePbB7925Xt0TNyJYtWzBw4EAEBgZCkiR89dVXDseFEHj++efRsmVL6PV6JCQk4Pjx465plpqFOXPmoFu3bjAajfDz88P999+Po0ePOoypqKhAcnIyfHx8YDAYMGTIEOTm5rqoY2rq3nnnHXTu3Fn5cs7Y2Fh8//33ynGuR3K1uXPnQpIkTJw4UalxXTZeDEn1sGzZMkyePBkzZ87Evn37EBUVhcTEROTl5bm6NWomysrKEBUVhQULFjg9/sorr+DNN9/Eu+++i127dsHT0xOJiYmoqKi4wZ1Sc7F582YkJydj586dWLduHaxWK/r164eysjJlzKRJk7By5UosX74cmzdvxtmzZ/HAAw+4sGtqyoKCgjB37lzs3bsXP/zwA/r27YtBgwbh0KFDALgeybX27NmDhQsXonPnzg51rstG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bb37OnHiBM6cOYMTJ07UOc7f39/hgfvLhg8fjnnz5mHQoEF48cUXERQUpFw5mDp1KoKCgjBr1iw89thj8PPzQ//+/VFSUoL09HQ8+eST9TqPiIgIrFixAgMHDoQkSUhJSYEsyw597Ny5E//85z+xceNGdOjQAefOnavX+ZtMJphMJgDOr1gsWLAAQ4YMwW233VbjmLu7O6ZNm4apU6dCq9WiV69eOHfuHA4dOoSxY8de9bMjIiJw5swZLF26FN26dcOqVauQmprqMKayshJDhgzBmDFjMHLkSABwuOXvevc0fPhwzJw5E0lJSZg1axbOnTuHJ598EiNGjHD4809LS0PLli2RnJx81TkfffRR6HQ6pf/qEhIS0KlTJwwfPhzz58+HzWbD448/jt69eyuhdebMmYiPj8ett96Kv//977DZbPjuu+8wbdq0q372ZTabDRUVFSgrK8OHH34Is9nscIsfEVFD4JUkIqJ60Ol0eOyxx/DJJ59gwIAB6N27N1auXImpU6c6BCQA+OCDD1BQUICuXbtixIgRmDBhAvz8/Oqc/+2338aPP/6oPANSH2VlZZgxY4YSUv4sDw8PbNmyBSEhIXjggQcQGRmJsWPHoqKiQgkfSUlJmD9/Pv7zn/+gQ4cO+Nvf/objx4/X+zxee+01WCwW9OzZEwMHDkRiYiK6du2qjD937hweeughvPbaaw7160GWZWX7bGdSUlIwZcoUPP/884iMjMSwYcOQl5dXr7nvu+8+TJo0CU888QS6dOmC7du3IyUlxWHMhAkTYDAYMHv27Hr3fC09eXh4YM2aNcjPz0e3bt3w4IMPIj4+Hm+//bbDuLKyMsydOxdubm5XnTMgIADPPvus0ytgkiTh66+/hsViwV133YWEhASEhYVh2bJlypi4uDgsX74c33zzDbp06YK+ffti9+7d9Tqfyy7/T4bg4GBs3boVqamp0Ol0f2oOIqI/SxJCCFc3QURERERE1FjwShIREREREVE1DElERERERETVMCQRERERERFVw5BERERERERUDUMSERERERFRNQxJRERERERE1TAkERERERERVcOQREREREREVA1DEhERERERUTUMSURERERERNUwJBEREREREVXz/wF04/Uv7bRu+QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error\n", + "from sklearn.model_selection import train_test_split, cross_val_score\n", + "\n", + "# Загрузка данных\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Удаление строк с NaN\n", + "df = df.dropna()\n", + "\n", + "# Разделение данных на признаки и целевую переменную\n", + "X = df.drop('Networth', axis=1)\n", + "y = df['Networth']\n", + "\n", + "# One-hot encoding для категориальных переменных\n", + "X = pd.get_dummies(X, drop_first=True)\n", + "\n", + "# Разделение данных на обучающую и тестовую выборки\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", + "\n", + "# Выбор модели\n", + "model = RandomForestRegressor(random_state=42)\n", + "\n", + "# Обучение модели\n", + "model.fit(X_train, y_train)\n", + "\n", + "# Предсказание и оценка\n", + "y_pred = model.predict(X_test)\n", + "\n", + "rmse = mean_squared_error(y_test, y_pred, squared=False)\n", + "r2 = r2_score(y_test, y_pred)\n", + "mae = mean_absolute_error(y_test, y_pred)\n", + "\n", + "print(f\"RMSE: {rmse}\")\n", + "print(f\"R²: {r2}\")\n", + "print(f\"MAE: {mae} \\n\")\n", + "\n", + "# Кросс-валидация\n", + "scores = cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')\n", + "rmse_cv = (-scores.mean())**0.5\n", + "print(f\"Кросс-валидация RMSE: {rmse_cv} \\n\")\n", + "\n", + "# Анализ важности признаков\n", + "feature_importances = model.feature_importances_\n", + "feature_names = X_train.columns\n", + "\n", + "# Проверка на переобучение\n", + "y_train_pred = model.predict(X_train)\n", + "\n", + "rmse_train = mean_squared_error(y_train, y_train_pred, squared=False)\n", + "r2_train = r2_score(y_train, y_train_pred)\n", + "mae_train = mean_absolute_error(y_train, y_train_pred)\n", + "\n", + "print(f\"Train RMSE: {rmse_train}\")\n", + "print(f\"Train R²: {r2_train}\")\n", + "print(f\"Train MAE: {mae_train}\")\n", + "print()\n", + "\n", + "# Визуализация результатов\n", + "plt.figure(figsize=(10, 6))\n", + "plt.scatter(y_test, y_pred, alpha=0.5)\n", + "plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=2)\n", + "plt.xlabel('Фактическая чистая стоимость')\n", + "plt.ylabel('Прогнозируемая чистая стоимость')\n", + "plt.title('Фактическая чистая стоимость по сравнению с прогнозируемой')\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Точность предсказаний: Модель показывает низкую точность на валидационной и тестовой выборках (0.51 и 0.48 соответственно), что указывает на то, что модель не очень хорошо объясняет вариацию целевой переменной. Это может быть связано с недостаточной информативностью признаков или сложностью задачи классификации.\n", + "## Вывод\n", + "Модель случайного леса (RandomForestRegressor) показала удовлетворительные результаты при прогнозировании чистой стоимости миллиардеров. Метрики качества и кросс-валидация позволяют предположить, что модель не сильно переобучена и может быть использована для практических целей.\n", "\n", - "Переобучение: Разница между точностью на обучающей и тестовой выборках небольшая, что указывает на то, что переобучение не является критическим. Однако, низкая точность на тестовой выборке может свидетельствовать о том, что модель недостаточно хорошо обобщает данные.\n", + "Точность предсказаний: Модель демонстрирует довольно высокий R² (0.9995), что указывает на большую часть вариации целевого признака (чистой стоимости). Однако, значения RMSE и MAE остаются высоки (0.1079 и 0.0130), что свидетельствует о том, что модель не всегда точно предсказывает значения, особенно для миллиардеров с высокими или низкими чистыми стоимостями.\n", "\n", - "Кросс-валидация: Значение точности после кросс-валидации может быть нестабильным, что указывает на необходимость дальнейшего анализа и улучшения модели. Возможно, стоит рассмотреть другие модели или методы предобработки данных для повышения точности." + "Переобучение: Разница между RMSE на обучающей и тестовой выборках незначительна, что указывает на то, что модель не склонна к переобучению. Однако в будущем стоит следить за этой метрикой при добавлении новых признаков или усложнении модели, чтобы избежать излишней подгонки под тренировочные данные. Также стоит быть осторожным и продолжать мониторинг этого показателя.\n", + "\n", + "Кросс-валидация: При кросс-валидации наблюдается небольшое увеличение ошибки RMSE по сравнению с тестовой выборкой (рост на 2-3%). Это может указывать на небольшую нестабильность модели при использовании разных подвыборок данных. Для повышения устойчивости модели возможно стоит провести дальнейшую настройку гиперпараметров.\n", + "\n", + "Рекомендации: Следует уделить внимание дополнительной обработке категориальных признаков, улучшению метода feature engineering, а также возможной оптимизации модели (например, через подбор гиперпараметров) для повышения точности предсказаний на экстремальных значениях.\n", + "\n", + "Заключение: Модель случайного леса показала хорошие результаты, но есть потенциал для улучшения, особенно в части точности предсказаний для экстремальных значений чистой стоимости." ] } ],