task/module B.ipynb

634 lines
355 KiB
Plaintext
Raw Permalink Normal View History

2025-02-23 18:54:44 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "e44db5d2-08ee-4982-bcc8-fe2bd435900a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Rank</th>\n",
" <th>Image Link</th>\n",
" <th>Title</th>\n",
" <th>Current</th>\n",
" <th>24h Peak</th>\n",
" <th>All-Time Peak</th>\n",
" <th>Genre</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>counter-strike 2</td>\n",
" <td>1015721</td>\n",
" <td>1276702</td>\n",
" <td>1818773</td>\n",
" <td>first-person shooter</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>dota 2</td>\n",
" <td>702487</td>\n",
" <td>805624</td>\n",
" <td>1295114</td>\n",
" <td>moba (multiplayer online battle arena)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>banana</td>\n",
" <td>409758</td>\n",
" <td>428540</td>\n",
" <td>917272</td>\n",
" <td>unknown</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>pubg: battlegrounds</td>\n",
" <td>371000</td>\n",
" <td>688475</td>\n",
" <td>3257248</td>\n",
" <td>battle royale</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>elden ring</td>\n",
" <td>294359</td>\n",
" <td>319707</td>\n",
" <td>953426</td>\n",
" <td>action rpg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>96.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>soundpad</td>\n",
" <td>16028</td>\n",
" <td>17064</td>\n",
" <td>21920</td>\n",
" <td>simulation / tycoon</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>97.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>supermarket simulator</td>\n",
" <td>15817</td>\n",
" <td>15875</td>\n",
" <td>51363</td>\n",
" <td>vampire / open world</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>98.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>v rising</td>\n",
" <td>15803</td>\n",
" <td>16275</td>\n",
" <td>150645</td>\n",
" <td>tactical shooter</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>99.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>squad</td>\n",
" <td>15729</td>\n",
" <td>19288</td>\n",
" <td>35151</td>\n",
" <td>grand strategy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>100.0</td>\n",
" <td>https://shared.cloudflare.steamstatic.com/stor...</td>\n",
" <td>victoria 3</td>\n",
" <td>15609</td>\n",
" <td>17598</td>\n",
" <td>70100</td>\n",
" <td>unknown</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Rank Image Link \\\n",
"0 1.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"1 2.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"2 3.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"3 4.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"4 5.0 https://shared.cloudflare.steamstatic.com/stor... \n",
".. ... ... \n",
"95 96.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"96 97.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"97 98.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"98 99.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"99 100.0 https://shared.cloudflare.steamstatic.com/stor... \n",
"\n",
" Title Current 24h Peak All-Time Peak \\\n",
"0 counter-strike 2 1015721 1276702 1818773 \n",
"1 dota 2 702487 805624 1295114 \n",
"2 banana 409758 428540 917272 \n",
"3 pubg: battlegrounds 371000 688475 3257248 \n",
"4 elden ring 294359 319707 953426 \n",
".. ... ... ... ... \n",
"95 soundpad 16028 17064 21920 \n",
"96 supermarket simulator 15817 15875 51363 \n",
"97 v rising 15803 16275 150645 \n",
"98 squad 15729 19288 35151 \n",
"99 victoria 3 15609 17598 70100 \n",
"\n",
" Genre \n",
"0 first-person shooter \n",
"1 moba (multiplayer online battle arena) \n",
"2 unknown \n",
"3 battle royale \n",
"4 action rpg \n",
".. ... \n",
"95 simulation / tycoon \n",
"96 vampire / open world \n",
"97 tactical shooter \n",
"98 grand strategy \n",
"99 unknown \n",
"\n",
"[100 rows x 7 columns]"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.linear_model import LinearRegression\n",
"import numpy as np\n",
"from scipy import stats\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"\n",
"df = pd.read_csv('module_a.csv')\n",
"\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a7a25c54-121f-4614-ba10-dccdec0f24f1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 100 entries, 0 to 99\n",
"Data columns (total 7 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Rank 100 non-null float64\n",
" 1 Image Link 100 non-null object \n",
" 2 Title 100 non-null object \n",
" 3 Current 100 non-null int64 \n",
" 4 24h Peak 100 non-null int64 \n",
" 5 All-Time Peak 100 non-null int64 \n",
" 6 Genre 100 non-null object \n",
"dtypes: float64(1), int64(3), object(3)\n",
"memory usage: 5.6+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "22efb72d-de48-45fe-8e7e-329b518acb90",
"metadata": {},
"outputs": [],
"source": [
"# Создание численной переменной для дальнейших работ\n",
"nums = df.select_dtypes('int64')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4dc11b15-0d86-41d1-8c8f-8b6eddf9ec9c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Средние значения \n",
" Current 70578.93\n",
"24h Peak 85990.56\n",
"All-Time Peak 276282.68\n",
"dtype: float64\n",
"\n",
" Медиана (центральные значения) \n",
" Current 30677.0\n",
"24h Peak 37379.5\n",
"All-Time Peak 104201.0\n",
"dtype: float64\n",
"\n",
" Минимальные значения \n",
" Current 15609\n",
"24h Peak 15875\n",
"All-Time Peak 21920\n",
"dtype: int64\n",
"\n",
" Максимальные значения \n",
" Current 1015721\n",
"24h Peak 1276702\n",
"All-Time Peak 3257248\n",
"dtype: int64\n",
"\n",
" Квантили (25%, 50% и 75%) \n",
" Current 24h Peak All-Time Peak\n",
"0.25 20386.25 22942.75 69868.00\n",
"0.50 30677.00 37379.50 104201.00\n",
"0.75 62550.50 65821.50 248263.25\n"
]
}
],
"source": [
"# Расчет основных статистических характеристик данных\n",
"mean = nums.mean() # Средние значения\n",
"median = nums.median() # Медиана (центральные значения)\n",
"min_values = nums.min() # Минимальные значения\n",
"max_values = nums.max() # Максимальные значения\n",
"quantiles = nums.quantile([0.25, 0.5, 0.75]) # Квантили (25%, 50% и 75%)\n",
"\n",
"print('\\n Средние значения \\n', mean)\n",
"print('\\n Медиана (центральные значения) \\n', median)\n",
"print('\\n Минимальные значения \\n', min_values)\n",
"print('\\n Максимальные значения \\n', max_values)\n",
"print('\\n Квантили (25%, 50% и 75%) \\n', quantiles)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "faa8a3ef-09d4-4009-9758-620bf46a6028",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x1000 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Построены графики распределения данных\n",
"plt.figure(figsize=(15, 10))\n",
"for i, col in enumerate(nums, 1):\n",
" plt.subplot(2, 2, i)\n",
" sns.scatterplot(df[col], color=\"r\")\n",
" plt.title(f\"KDE для {col}\")\n",
" plt.xlabel(\"Значение\")\n",
" plt.ylabel(\"Плотность\")\n",
"plt.tight_layout()\n",
"plt.show()\n",
"# закомментить каждую строку желательно"
]
},
{
"cell_type": "markdown",
"id": "155bb054-8770-498e-be3a-a9f15503b153",
"metadata": {},
"source": [
"На этих графиках можно увидеть, что данные распределены более-менее нормально"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7949b4e5-1634-487e-98b4-3afc733fdd57",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Корреляционный анализ\n",
"corr_matr = nums.corr() # создание переменной для построения матрицы из чисел\n",
"\n",
"sns.heatmap(corr_matr, annot=True) # ввод данных\n",
"plt.title('Корреляционная матрица \\n', fontsize=14)\n",
"plt.tight_layout()\n",
"plt.show() # вывод матрицы"
]
},
{
"cell_type": "markdown",
"id": "e370fad0-d937-4e72-9e71-a423327490ab",
"metadata": {},
"source": [
"Был выполнен корреляционный анализ между параметрами Current (текущее количество пользователей), 24h Peak (количество пользователей за последние 24 часа) и All-Time Peak (количество пользователей за все время)\n",
"\n",
"на данной матрице можно увидеть, что у параметров Current и 24h Peak хорошая взаимосвязь\n"
]
},
{
"cell_type": "markdown",
"id": "c5ae17f3-ffd8-4c4a-ba96-44b901c55f9d",
"metadata": {},
"source": [
"Тенденции по жанрам:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "463217e5-d96c-4f05-8d40-0a79640b86a1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWwAAASfCAYAAACZeLQrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeViU9f7/8dcAskgyUSqKue9GtuCSWmIumLlmacqJRHMpLCMtUzulkLnnkqanxcTSojLRzNxzydxNS7Q0txQRsQ6CGoHC/fvDH/NtZFHLmfs++Xxc11wH7s975n7PAp3r5Yf3bTMMwxAAAAAAAAAAwHQeZjcAAAAAAAAAALiEwBYAAAAAAAAALILAFgAAAAAAAAAsgsAWAAAAAAAAACyCwBYAAAAAAAAALILAFgAAAAAAAAAsgsAWAAAAAAAAACyCwBYAAAAAAAAALILAFgAAAIClnT9/XqNGjdL58+cdx37//fcCxwAAAP4JCGwBAMBVsdls13SrUqWK2S0X8OWXX2rEiBFq3bq17Ha7bDabHnzwwSve748//tDIkSNVq1Yt+fr6Kjg4WH369FFycrIbugbg6+urMWPG6NNPP3Uc++STTzRmzBj5+vqa2BkAAMD152V2AwAA4H9Dr169ChzbuHGjDh06pDvvvFN33XWX01rp0qXd1NnVe/zxx5WRkXFN9/njjz/UqlUrbdq0SeXLl1fnzp119OhRzZkzR19++aU2b96s6tWru6hjAJLk6emprl27ql+/flqwYIEkacWKFXr00Ufl6elpcncAAADXF4EtAAC4KvHx8QWORUVF6dChQ+rSpYtGjRrl9p6u1SOPPKK6deuqYcOGOnv2rDp27HjF+4wZM0abNm1SkyZNtHLlSt10002SpMmTJ2vIkCHq06eP1q9f7+rWgRveW2+9JS8vL61YsUKS1KNHD02bNs3krgAAAK4/AlsAAHDDmD17tuPrdevWXbH+woULmj59uqRLYVF+WCtJgwcP1ty5c7Vhwwbt3LlToaGh171fAP/n1ltv1bx588xuAwAAwOWYYQsAANziq6++Ups2bRQYGChfX1/Vrl1bw4YN05kzZwrUjho16qrm5Ba26/d62rhxo86cOaPq1avr7rvvLrD+6KOPSpKWLFlyVY+XkJAgDw8PNWjQoMCFkqKiomSz2QoEyevXr5ePj4+qVaumU6dOOY7/8ccfmj17tjp37qxq1arJz89PN998s5o3b66EhIRCz1/UOa60nj+TOCcnRyNHjlT16tXl6+uratWq6dVXX9Uff/xR6OP99ttvevHFF1WzZk35+vrqlltu0YMPPqiVK1cWWn/5+1uiRAlVrlxZ3bp1086dOwu9T2GOHj16VZ+fFi1aFLjvxYsXNX36dIWGhuqmm27STTfdpEaNGmnWrFnKzc29qvPHx8df9azny3emnz59Wi+88IJq164tX19fBQYGql27dtqwYUOB86xbt042m01RUVEF1mJiYmSz2fTQQw/pwoULkqT27dvLZrNp1apVhfZ9/vx5BQQEyG63Oz6fxZ0j/+e0sJ/DKlWqyGazFXoewzA0d+5cNW/eXDfffLP8/PxUv359TZo0ydHr1TxWXl6e7rzzzmuemd2iRYurem+OHj1a4L6bN29W586dVaZMGfn4+KhKlSqKjo5WSkpKgdqr/Rz8+TMQEhIim82mAwcOFNr70aNH5eHhoZo1a8owjGs6X2Hv04cffqj77rtPdrtdHh4exc4h//P7vXXrVrVt21Y333yzAgIC1KZNG23ZsqXA4xf3+bnS+u+//67XXntNISEh8vPzk91uL/b3m3TpMzx27Fjdc889KlWqlG666SbVq1dPMTEx+uWXXyRd/fv/589A/mtb2F+SfPbZZ277bxIA4MbBDlsAAOByY8eO1YgRI+Tl5aWwsDCVLl1a3377rcaPH6/ExERt2LBBQUFBBe7XrFkz1ahRo8Dx3bt36/vvv3d53/nnuOeeewpdzz9+tb306NFDycnJevHFF9W9e3ctXrxYXl5F/9+xffv2qUuXLipVqpSWLVvm9BodPXpUffv2VVBQkOrUqaNGjRopNTVVmzZt0jfffKOffvrpuo6pMAxDjz76qFavXq1WrVrprrvu0po1a/Taa69p06ZNWrFihdMs0RMnTqh58+Y6fPiwKlWqpC5duuj06dNavXq1VqxYocmTJ+v5558vcB5/f39HEJ6Tk6MffvhBCxYs0BdffKHNmzcX+V4UJigoqNCLyp07d06ff/55geO5ubnq3LmzvvrqKwUEBKh169aSpK+//lrR0dFatWqVFixYIA+P4vc81KhRo8DM5wULFuj8+fMFjv959vNPP/2k1q1b68SJE6pevboeeugh/fbbb/r666+1cuVKffjhh4qIiLji8x41apSmTZum5s2b6/PPP1eJEiUkSU899ZS++uorvfvuu2rTpk2B+yUkJOjs2bN66qmn5O/vf8Xz/BV5eXnq0aOHPvvsMwUEBKhhw4a66aabtHXrVr344otau3atlixZcsXXWJLee+89/fDDD3+5l0ceecRp13y+5cuXO/3jSL558+YpKipKeXl5atq0qSpWrKjvvvtOs2bN0sKFC7Vu3TrVqVOnwP0Km/EtSQcPHtS3337rdGzAgAEaNGiQ3nvvPU2YMKHAfWbPni3DMNS3b98iA/HLz1fU78tp06Y5gv1mzZqpSpUqjp/huXPnFvrYkrRp0yYNGDBANWrUULt27XTw4EGtXr1aGzZs0JdfflnoZ+tanT17Vg888IB27typMmXKqEOHDjp//ry+/vprffPNN9qyZYumTp3qdJ+TJ0+qdevW2rdvn2655Ra1bNlSJUqU0MGDB/Xmm2/qrrvuUlRUlB588EGnMDo1NVUrVqxQ9erVdd999zk9ZmGfjz/Lzs7WSy+99LefLwAABRgAAAB/Ua9evQxJxsiRI4us2bZtm+Hh4WGUKlXK2Lp1q+P4H3/8YXTr1s2QZHTr1s3pPiNHjjQkGXPmzCn0Ma+0fjXWrl1rSDLatm1bZM3zzz9vSDKef/75Qtd3795tSDLuueeeazr3s88+a0gy+vbt6ziW/1quXbvWMAzDOHHihFGpUiXD19fX+Pbbbws8xq+//mqsWLHCyM3NdTp++PBho0qVKoaHh4dx5MgRp7XLz3G5otYlGZKM2267zTh06JDjeFpamhESEmJIMqZNm+Z0nw4dOhiSjMjISCMnJ8dx/JtvvjFKlixpeHp6Gt9//32B81SuXLlAXzExMcW+D5c7cuSIIckICwu7pvVJkyYZkow77rjDOHXqlON4SkqKUbt2bUOS8dZbb11VD5erXLmyUdz/9b548aLTa5mXl+dY++6774xbb73V8Pf3d+or/zPcq1cvx7GpU6cakozQ0FAjIyOjwDkqVqxoeHt7G2lpaQV6aNy4sSHJ2LlzZ7HnyFfcz2FRz3f8+PGGJKNNmzZOPZw7d87o2LGjIcmYMWPGFR8rIyPDKFu2rHHbbbcV+bkpSlhYmCGpwM9HcevHjh0z/Pz8DC8vL2PJkiWO47m5uY7PZ8OGDZ0eZ86cOcX+fixs/cyZM0bJkiWNsmXLOv3cGMal969ChQqGl5eXkZqaWuDx3nvvPUOSMWrUKKfjRb1PVapUMSQZCxYsKPBYhb2m+Y8jyRgxYoTTZ3TmzJmGJCM4ONjIyspyHC/u81Pc+jPPPGNIMlq3bm2cPXvWcfzHH380ypYta0gyli5d6nSfVq1aGZKMnj17GufOnXNaO3DggPHjjz9eUw9/VtR7OW7cOMfvxr/73yQAAP6MkQgAAMClZsyYoby8PMXExKhRo0aO4z4+PpoxY4b8/Pz0+eef68SJEyZ2Wbhz585JkkqWLFnoev4uxPy6qzV16lR17dpV7733nl577bUC62fPnlX79u2VnJysjz76SE2bNi1Qc+uttyo8PLzATsSqVavq5ZdfVl5e3lWParhar776qqpVq+b4vkyZMpo4caKkSzN+8x0+fFhffvmlAgIC9Oabbzp2eErSfffdp6eeekq5ubmaOXPmVZ23efPmklTgT8CvtzfffFPSpfenbNm
"text/plain": [
"<Figure size 1600x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Среднее отношение текущей популярности к историческому пику: 37.14%\n",
"Среднее отношение текущей популярности к пику за 24 часа: 87.06%\n"
]
}
],
"source": [
"# Группируем данные по жанрам и анализируем средние показатели:\n",
"genre_stats = df.groupby('Genre').agg({\n",
" 'Current': 'mean',\n",
" '24h Peak': 'mean',\n",
" 'All-Time Peak': 'mean'\n",
"}).sort_values(by='Current', ascending=False)\n",
"\n",
"# Визуализация\n",
"plt.figure(figsize=(16, 10))\n",
"sns.barplot(x=genre_stats.head(10).index, y=genre_stats.head(10)['Current'], color='gray')\n",
"plt.title('Топ-10 жанров по текущей популярности \\n ', fontsize = 15)\n",
"plt.xlabel('\\n Жанр игры \\n', fontsize=13)\n",
"plt.ylabel('\\n Количество пользователей на текущий момент \\n', fontsize=13)\n",
"plt.xticks(rotation=90)\n",
"plt.show()\n",
"\n",
"df['Current/All-Time Ratio'] = df['Current'] / df['All-Time Peak']\n",
"df['Current/24h Peak Ratio'] = df['Current'] / df['24h Peak']\n",
"\n",
"# Средние значения\n",
"mean_all_time_ratio = df['Current/All-Time Ratio'].mean()\n",
"mean_24h_ratio = df['Current/24h Peak Ratio'].mean()\n",
"print(f\"Среднее отношение текущей популярности к историческому пику: {mean_all_time_ratio:.2%}\")\n",
"print(f\"Среднее отношение текущей популярности к пику за 24 часа: {mean_24h_ratio:.2%}\")"
]
},
{
"cell_type": "markdown",
"id": "a4039d35-1408-44ce-a607-add957d22449",
"metadata": {},
"source": [
"\n",
"Прогнозирование текущей популярности:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b9a929e1-0897-4ff8-90a7-6028a029639a",
"metadata": {},
"outputs": [],
"source": [
"# Построение модели линейной регрессии для предсказания текущей популярности на основе пиковых значений\n",
"X = df[['24h Peak', 'All-Time Peak']]\n",
"y = df['Current']\n",
"\n",
"model = LinearRegression()\n",
"model.fit(X, y)\n",
"y_pred = model.predict(X)\n",
"\n",
"# Оценка точности\n",
"r_squared = model.score(X, y)\n",
"print(f\"R² (точность модели): {r_squared:.2%}\")\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"sns.scatterplot(x=y, y=y_pred)\n",
"sns.lineplot(x=[y.min(), y.max()], y=[y.min(), y.max()], color='red', linestyle='--')\n",
"plt.xlabel('Фактическая популярность')\n",
"plt.ylabel('Прогнозируемая популярность')\n",
"plt.title('Точность прогноза текущей популярности')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "269ecea0-99da-4b75-a50a-a08e9e283a92",
"metadata": {},
"source": [
"Проверка на нормальность распределения для числовых переменных\n",
"\n",
"Для выполнения этой задачи я решил использовать тест Шапиро-Уилка, а также Q-Q графики и Гистограммы"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "e5943c9a-05de-4831-ab28-cfe747a27e9a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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r1691KpVK6sERaNGjSSZb9ReffVVPfbYYwoLC9PZs2cVGhqqdu3aaceOHapbt67lGE9PT61fv94qlowf3nFxcXr00Uc1ZswYTZo0Sd99953eeOMNnT9/XjNmzLD0O3r0qJ555hlVr15dknk+iOeff14xMTE2lT0VKlTQwoULFRYWprJly0qS9u3bpy1btli2M6pQoYJmzJihhQsXWtpmzZql8uXL6+zZs1Z9jx49qvr16+vRRx9VhQoVFBsbq9mzZ6t169bav3+/KlWqlOlzZCb9MM2XX35Z0dHRWfYdPHiwhgwZIkmW65TewIEDtWXLFk2ZMkXNmzeXi4uLFi9erPfffz/bGCIjI3Xu3Dk99dRTBZKsSUxM1IMPPqhnnnlGY8aMsbox/+qrr7R582aNHz9evr6+qlKlivbv36/27durevXqevfdd+Xr66u1a9fqhRde0JkzZzRhwgSr87/66qvq0KGD5s2bp/j4eP3f//2fevTooQMHDsjZ2VmzZs3S008/rSNHjhTZUnoAwO1JSUnRhg0bFBwcLH9//0z7BAQEKCgoSD/88INSU1Pl5JT9394jIiLk7OysHj16ZLrfZDLpwQcf1NSpU7Vr165bVl/16dNHL730klVbxlhnzJihGjVqKDw8XKmpqZo6daq6deumTZs2qV27dpKkkydPqmLFinrrrbdUuXJlnTt3Tp988onatm2rXbt2qX79+pKkmJgY3X///WrRooWWLVumPXv26K233pIkjRs3Tm+++aYuXryo0aNHq2/fvtq0aVOWsR87dkxhYWFydnbO9jUeOXJEnTp1Us2aNfX999+rdOnS2fZP7/nnn1e/fv0k6Zb3Ny1btrQkGWNjY9W7d2+r/VOnTtXEiRM1atQoPfDAA/L09NTBgwf15JNPZhtDSkqK1q9fr6CgIAUEBOQ49twYNGiQ7r//fn366ae6cuWKXF1dLa/jP//5j0aPHq3JkyfLyclJV69eVceOHRUdHa1XX31VzZo10759+zR+/Hjt2bNHP/zwg9W93XfffacdO3Zo0qRJKl26tKZOnapevXrp0KFDqlWrloYMGaJz587p/fff14oVKyzThqT9HgAUWgaAfDN//nxDkrFjx44c9YuKijIMwzCio6ON0qVLGy+88IIhyZg/f76lb+3atY3atWsb165dy1EMNWrUMAYOHGjTfv78ecPT09Po3r27Vfvx48cNd3d3o1+/fpa2gQMHGqVKlcr2eTp27GhIMr7++mur9qeeespwcnIyjh07lulxKSkpRlJSkjFp0iSjYsWKRmpqqlXs999/v9GoUSNj+vTplvahQ4caffv2texPs2HDBkOSMXr0aMPd3d04ffq0YRiGcfXqVaNChQrG6NGjDUnGsmXLsnwdycnJxuXLl41SpUpZPWd25syZY0gyfvvtN0vb/fffb9SoUcOmb0JCgiHJeP311y1tGd9/wzCMUqVKGf3797c69u2337bpl9Hnn39uSDLmzJmTo9jTrtmGDRus2qOiomx+9gYOHGhIMj7++GOb80gyvL29jXPnzlm133vvvYa/v79x8eJFq/bhw4cbHh4elv5pcWT8efziiy8MSca2bdssbVldWwBAyRAXF2dIMh599NFs+z3yyCOGJOOff/655TkbNGhg+Pr6Zttn9uzZt7yPMAzzZ+J
"text/plain": [
"<Figure size 1200x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAGGCAYAAACqvTJ0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAACQWUlEQVR4nOzdeVxU9f7H8fewgyLuiIJLLrnvglqkVm6Vmda1sqtWWpmamnVNsxJb9GZleHMpWzTLzJuplT83bi5Zmgtq5pqZiiDkDrixDOf3x8jIOIOyzrC8no/HPHC+53vOfOaAcHjzPd+vyTAMQwAAAAAAAIATubm6AAAAAAAAAJQ+hFIAAAAAAABwOkIpAAAAAAAAOB2hFAAAAAAAAJyOUAoAAAAAAABORygFAAAAAAAApyOUAgAAAAAAgNMRSgEAAAAAAMDpCKUAAAAAAADgdIRSQA7MmzdPJpMp28fRo0ddXSJKoE8++UQPPPCAateuLV9fX9WrV0/PPvus4uPjb7jf33//rUqVKslkMmnx4sU22yIiImQymXT69Ok81fT444/bfO17e3vr1ltv1cSJE3XlypU8HTMnOnfurKZNmxba8QEARc+vv/6qf/zjHwoKCpKXl5eCgoLUr18/bdu2LU/HO378uEaMGKG6devKx8dHFSpU0J133qlFixYVcOWF79133+Ua9CbWrl2rJ598Ug0bNlSZMmVUo0YN9e7dW9HR0TfczzAM3XHHHTKZTBoxYoTNtvXr1zu8vsqp63+n8PDwUHBwsJ544gnFxcXl6Zg5kd/rP6Awebi6AKA4mTt3rho2bGjXHhQU5IJqUNJNnDhRXbp00eTJk1WjRg0dPHhQb7zxhr777jvt3LlTgYGBDvcbPny4fHx8Cq0uX19frV27VpJ07tw5LVy4UK+//roOHDhQLC/sAQBFzwcffKDRo0crNDRUU6dOVa1atRQTE6OZM2eqffv2mj17tp5++ukcH++XX37Rfffdp7Jly+pf//qXmjdvrsTERP33v//VI488ohUrVlgDA5QMs2fP1pkzZzRq1Cg1btxYp06d0nvvvaf27dtr9erVuvPOOx3uN3PmTP3555+FWlvm7xSXL1/WTz/9pClTpmjDhg36/fffVaZMmUJ9baCoIZQCcqFp06Zq27atq8tAKbFz505VrVrV+rxTp05q3bq12rVrp48//livvPKK3T7ffvutVq9erZkzZ2rQoEGFUpebm5vat29vfd6zZ08dPXpU//3vfzVt2jTVqFGjUF4XAFA6/PLLLxo9erTuueceLV26VB4e135leeSRR9SnTx8NGzZMrVq1Urt27W56vPPnz6tv374KCAjQli1bbP6o07t3bzVv3lzjxo1Ty5Yt9fzzzxfKe4LzzZw50+Y6SpJ69OihevXqafLkyQ5DqaNHj2r8+PGaP3+++vbtW2i1Zf2dokuXLjKbzXrjjTe0bNkyPfbYY4X2ukBRxO17QAHK/Atb1qHUaWlpatSokUwmk+bNm2fTf8uWLerVq5cqVaokHx8f1a1bV6NHj5Z0bZjtjR7r16+3Huuzzz5TixYt5OPjo4oVK6pPnz7av3+/zetdf+tV5qN27drWPpm3SW3cuFHt27eXr6+vatSooVdffVVms9nmeJMmTVJYWJgqVqyocuXKqXXr1vr0009lGIZNv9q1a8tkMmn48OF256xLly4ymUy67777rG2ZQ6NNJpO2bt1q0//IkSNyd3e3Gzq9fft2PfLII9Zb3WrXrq1HH31Ux44ds3vN7GR3m2bW85NVTm7nTEhI0JNPPqmQkBB5eHjk6rbP6y+kJKlNmzZyd3fX8ePH7badPXtWw4cP11tvvaWaNWve8Nh///23Hn30UQUEBCgwMFBPPvmkEhMTb7jPjWSGVJnnOykpSS+++KLq1KkjLy8v1ahRQ6NHj9bFixdt9ps5c6buuOMOVa1aVWXKlFGzZs00depUpaWl3fQ1ly5dKj8/Pw0ZMkTp6el5rh0AULRMmTJFJpNJs2fPtgmkJMnDw0OzZs2y9suJTz75RCdPntS///1vh6OMx44dq4YNG2rKlCk3/XmS3c/+iIgISZZQw2QyaerUqdafxz4+Pmrbtq1+/PFHm2P9+eefeuKJJ1S/fn35+fmpRo0a6tWrl37//Xe7112/fr2aNm0qX19fPfjgg0pOTpYkRUdHq1mzZvL19dX999+vv//+267ezNoyvfHGGzKZTOrcubPN8a+/tjx8+LBCQkIUHh6uCxcu3PC8ZH3vOZ3qonPnzg77Zr1eNpvNioiIUIMGDeTr65ttP0ccXUeVLVtWjRs3dngdJUlPP/20unbtqj59+tzw2GlpaZowYYKqV6+ucuXK6e6779bBgwdvuM+NXH8dZRiGZs2apZYtW8rX11cVKlTQQw89pL/++stmv6ioKPXu3VvBwcHy8fFRvXr19Mwzz+ToNr0DBw7olltuUVhYmE6ePJnn2oH8IpQCCtn777+vQ4cO2bWvXr1a4eHhiomJ0bRp07Ry5Uq98sor1ouJIUOGaPPmzdZHtWrVdM8999i0tW7dWpLlomzw4MFq0qSJlixZounTp2v37t3q0KGD3Wv7+vraHGPz5s1aunSpTZ+EhAQ98sgjeuyxx/Tdd9/poYce0ptvvqlRo0bZ9Dt69KieeeYZ/fe//9WSJUvUt29fPffcc3rjjTfs3m/FihU1f/58JSUlWdv27t2rX375ReXKlXN47ipWrKgZM2bYtM2aNUsVKlSw63v06FHdeuutioyM1OrVq/X2228rPj5e7dq1y/X983PnzrWem9tuu+2GfQcPHmzt62jk0qBBg/Tf//5X48aN0/r167V582Y999xzuaonqw0bNshsNqtJkyZ220aOHKk6derYzX/gyIMPPqgGDRro22+/1bhx4/TVV1/l66/DmcPcq1SpokuXLqlTp076/PPPNXLkSK1cuVIvvfSS5s2bp/vvv98mtDx8+LD69++vL774QsuXL9fgwYP1zjvv6Jlnnrnh673//vv6xz/+oZdfflmffPKJ3S8tAIDiyWw2a926dWrbtq2Cg4Md9gkJCVGbNm30v//9TxkZGTc9ZlRUlNzd3dWrVy+H200mk+6//36dOnVKO3fuvOnxHnroIbtrqSFDhtj0mTFjhlatWqXIyEh9+eWXcnNzU8+ePbV582ZrnxMnTqhSpUr697//rVWrVmnmzJny8PBQWFiYTcARFxene++9VwEBAfrmm2/Utm1bRUZGSpImTJigiIgIzZw5U5s2bVK/fv1uWPuxY8c0ZcoUubu737Df4cOH1blzZ9WuXVsrV65U2bJlb3peMj333HPW83Kza55WrVpZ+y5ZssRu+9SpUzVp0iT16tVLK1as0ObNmzV37twc13K9xMRE7dixw+F11CeffKKtW7faXXs68vLLL+vYsWP65JNPNGfOHB06dEi9evWy+wNuTmW9jpKkZ555RqNHj9bdd9+tZcuWadasWdq7d686duxoEzwePnxYHTp00OzZs7VmzRq99tpr2rJli26//fYb/oFvw4YN6tixo5o3b65169Y5DPAApzEA3NTcuXMNSca2bdty1O/IkSOGYRhGbGysUbZsWWPkyJGGJGPu3LnWvnXr1jXq1q1rXL58OUc11KpVyxg0aJBd+7lz5wxfX1/jnnvusWmPiYkxvL29jf79+1vbBg0aZJQpU+aGr9OpUydDkvHdd9/ZtD/11FOGm5ubcezYMYf7mc1mIy0tzXj99deNSpUqGRkZGTa133vvvUbjxo2N6dOnW9uHDh1q9OvXz7o907p16wxJxtixYw1vb2/j5MmThmEYxqVLl4yKFSsaY8eONSQZ33zzTbbvIz093bhw4YJRpkwZm9e8kQ8//NCQZOzYscPadu+99xq1atWy65uSkmJIMt544w1r2/Wff8MwjDJlyhgDBgyw2fedd96x65cTSUlJRqNGjYyQkBAjOTnZZtvy5csNT09P4/fffzcM49o5vP4cTZw40ZBkTJ061aZ92LBhho+Pj83nzZHMr6G0tDQjLS3NOHXqlDF9+nTDZDIZ7dq1MwzDMKZMmWK4ubn
"text/plain": [
"<Figure size 1200x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1200x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for col in nums:\n",
" plt.figure(figsize=(12, 4))\n",
" \n",
" # Гистограмма с ядерной оценкой плотности (KDE)\n",
" plt.subplot(1, 2, 1)\n",
" sns.histplot(df[col], kde=True)\n",
" plt.title(f'Гистограмма для {col}')\n",
" \n",
" # Q-Q график\n",
" plt.subplot(1, 2, 2)\n",
" stats.probplot(df[col], dist=\"norm\", plot=plt)\n",
" plt.title(f'Q-Q график для {col}')\n",
" \n",
" plt.tight_layout()\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "180d3756-cba2-4d72-aae1-d8c8e5cadf68",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Переменная: Current\n",
"Статистика: 0.407, p-value: 2.994e-18\n",
"Вывод: Распределение отличается от нормального (p < 0.05)\n",
"---\n",
"Переменная: 24h Peak\n",
"Статистика: 0.404, p-value: 2.751e-18\n",
"Вывод: Распределение отличается от нормального (p < 0.05)\n",
"---\n",
"Переменная: All-Time Peak\n",
"Статистика: 0.518, p-value: 1.507e-16\n",
"Вывод: Распределение отличается от нормального (p < 0.05)\n",
"---\n"
]
}
],
"source": [
"for col in nums:\n",
" stat, p = stats.shapiro(df[col])\n",
" print(f'Переменная: {col}')\n",
" print(f'Статистика: {stat:.3f}, p-value: {p:.3e}')\n",
" if p > 0.05:\n",
" print('Вывод: Распределение не отличается от нормального (p > 0.05)')\n",
" else:\n",
" print('Вывод: Распределение отличается от нормального (p < 0.05)')\n",
" print('---')"
]
},
{
"cell_type": "markdown",
"id": "f0cd67d0-12f7-4bd4-87fe-1d69038fe66d",
"metadata": {},
"source": [
"Можно увидеть, что данные распределены неправильно и необходимо провести работы с нормальностью распределения"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c177a231-0510-4da1-883d-cf159d4a20e9",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv('')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}