573 lines
162 KiB
Plaintext
573 lines
162 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"1. Цены на мобильные телефоны https://www.kaggle.com/datasets/dewangmoghe/mobile-phone-price-prediction\n",
|
|||
|
"2. Цены на акции Starbucks https://www.kaggle.com/datasets/mayankanand2701/starbucks-stock-price-dataset\n",
|
|||
|
"3. Цены на золото https://www.kaggle.com/datasets/sid321axn/gold-price-prediction-dataset"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"**Датасет 1. Цены мобильных телефонов**\n",
|
|||
|
"1. **Name**: Название модели мобильного телефона.\n",
|
|||
|
"2. **Rating**: Рейтинг мобильного телефона (по отзывам пользователей).\n",
|
|||
|
"3. **Spec_score**: Оценка спецификаций телефона (возможно, по различным характеристикам).\n",
|
|||
|
"4. **No_of_sim**: Количество SIM-карт, поддерживаемых телефоном.\n",
|
|||
|
"5. **Ram**: Объем оперативной памяти (RAM) в гигабайтах.\n",
|
|||
|
"6. **Battery**: Емкость батареи в мАч.\n",
|
|||
|
"7. **Display**: Размер дисплея в дюймах.\n",
|
|||
|
"8. **Camera**: Разрешение камеры (в мегапикселях).\n",
|
|||
|
"9. **External_Memory**: Поддержка внешней памяти (да/нет).\n",
|
|||
|
"10. **Android_version**: Версия операционной системы Android.\n",
|
|||
|
"11. **Price**: Цена мобильного телефона в долларах США.\n",
|
|||
|
"12. **Company**: Производитель телефона.\n",
|
|||
|
"13. **Inbuilt_memory**: Объем встроенной памяти (в гигабайтах).\n",
|
|||
|
"14. **Fast_charging**: Наличие быстрой зарядки (да/нет).\n",
|
|||
|
"15. **Screen_resolution**: Разрешение экрана (в пикселях).\n",
|
|||
|
"16. **Processor**: Тип процессора.\n",
|
|||
|
"17. **Processor_name**: Наименование процессора.\n",
|
|||
|
"\n",
|
|||
|
"**Объект наблюдения**: Каждый объект представляет собой отдельный мобильный телефон.\\\n",
|
|||
|
"**Связи между объектами**: Внутри одного объекта есть взаимосвязь между характеристиками и его ценой. Например, объем оперативной памяти, емкость батареи, качество камеры и поддержка быстрой зарядки могут влиять на цену.\\\n",
|
|||
|
"**Бизнес-цель**: Оптимизация продаж мобильных телефонов, оценка цен в зависимости от характеристик.\\\n",
|
|||
|
"**Эффект для бизнеса**: Более точная оценка стоимости мобильных телефонов может помочь производителям предлагать конкурентоспособные цены и максимизировать прибыль.\\\n",
|
|||
|
"**Техническая цель**: Построение модели машинного обучения для прогнозирования цены мобильного телефона на основе его характеристик.\\\n",
|
|||
|
"* **Вход**: Характеристики мобильного телефона (объем RAM, емкость батареи, качество камеры и т.д.).\\\n",
|
|||
|
"* **Целевой признак**: Цена мобильного телефона. "
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 3,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Index(['id', 'Name', 'Rating', 'Spec_score', 'No_of_sim', 'Ram', 'Battery',\n",
|
|||
|
" 'Display', 'Camera', 'External_Memory', 'Android_version', 'Price',\n",
|
|||
|
" 'company', 'Inbuilt_memory', 'fast_charging', 'Screen_resolution',\n",
|
|||
|
" 'Processor', 'Processor_name'],\n",
|
|||
|
" dtype='object')\n",
|
|||
|
"Зашумленные столбцы: []\n",
|
|||
|
"Смещение: id 0.000000\n",
|
|||
|
"Name -0.023604\n",
|
|||
|
"Rating -0.066979\n",
|
|||
|
"Spec_score -0.739377\n",
|
|||
|
"No_of_sim 1.664627\n",
|
|||
|
"Ram -0.899798\n",
|
|||
|
"Battery -0.814522\n",
|
|||
|
"Display -0.101507\n",
|
|||
|
"Camera -0.259205\n",
|
|||
|
"External_Memory -2.033547\n",
|
|||
|
"Android_version 0.584967\n",
|
|||
|
"Price 0.080087\n",
|
|||
|
"company -0.760020\n",
|
|||
|
"Inbuilt_memory 1.061234\n",
|
|||
|
"fast_charging 0.217571\n",
|
|||
|
"Screen_resolution 0.702418\n",
|
|||
|
"Processor -5.671454\n",
|
|||
|
"Processor_name -0.159994\n",
|
|||
|
"dtype: float64\n",
|
|||
|
"Сильно смещенные столбцы: ['No_of_sim', 'External_Memory', 'Inbuilt_memory', 'Processor']\n",
|
|||
|
"Выбросы в столбце 'id':\n",
|
|||
|
"Series([], Name: id, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Name':\n",
|
|||
|
"Series([], Name: Name, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Rating':\n",
|
|||
|
"Series([], Name: Rating, dtype: float64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Spec_score':\n",
|
|||
|
"91 42\n",
|
|||
|
"99 54\n",
|
|||
|
"122 51\n",
|
|||
|
"125 53\n",
|
|||
|
"214 58\n",
|
|||
|
"234 58\n",
|
|||
|
"651 57\n",
|
|||
|
"713 54\n",
|
|||
|
"719 49\n",
|
|||
|
"802 53\n",
|
|||
|
"803 54\n",
|
|||
|
"1142 46\n",
|
|||
|
"1231 57\n",
|
|||
|
"1239 56\n",
|
|||
|
"1344 55\n",
|
|||
|
"1346 55\n",
|
|||
|
"1348 57\n",
|
|||
|
"Name: Spec_score, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'No_of_sim':\n",
|
|||
|
"394 8\n",
|
|||
|
"628 8\n",
|
|||
|
"644 7\n",
|
|||
|
"951 8\n",
|
|||
|
"967 8\n",
|
|||
|
"971 8\n",
|
|||
|
"1052 8\n",
|
|||
|
"Name: No_of_sim, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Ram':\n",
|
|||
|
"91 0\n",
|
|||
|
"719 1\n",
|
|||
|
"Name: Ram, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Battery':\n",
|
|||
|
"0 86\n",
|
|||
|
"1 20\n",
|
|||
|
"3 85\n",
|
|||
|
"6 86\n",
|
|||
|
"9 86\n",
|
|||
|
" ..\n",
|
|||
|
"1344 8\n",
|
|||
|
"1346 7\n",
|
|||
|
"1349 8\n",
|
|||
|
"1350 7\n",
|
|||
|
"1364 20\n",
|
|||
|
"Name: Battery, Length: 247, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Display':\n",
|
|||
|
"76 87\n",
|
|||
|
"78 84\n",
|
|||
|
"91 2\n",
|
|||
|
"122 6\n",
|
|||
|
"125 7\n",
|
|||
|
"197 86\n",
|
|||
|
"198 87\n",
|
|||
|
"199 86\n",
|
|||
|
"200 86\n",
|
|||
|
"201 86\n",
|
|||
|
"202 85\n",
|
|||
|
"204 86\n",
|
|||
|
"205 86\n",
|
|||
|
"264 3\n",
|
|||
|
"397 80\n",
|
|||
|
"538 1\n",
|
|||
|
"600 83\n",
|
|||
|
"607 83\n",
|
|||
|
"608 83\n",
|
|||
|
"609 82\n",
|
|||
|
"610 82\n",
|
|||
|
"612 84\n",
|
|||
|
"628 8\n",
|
|||
|
"629 9\n",
|
|||
|
"648 88\n",
|
|||
|
"650 85\n",
|
|||
|
"662 10\n",
|
|||
|
"663 10\n",
|
|||
|
"665 11\n",
|
|||
|
"688 6\n",
|
|||
|
"715 9\n",
|
|||
|
"719 5\n",
|
|||
|
"923 84\n",
|
|||
|
"1042 5\n",
|
|||
|
"1118 80\n",
|
|||
|
"1142 5\n",
|
|||
|
"1226 81\n",
|
|||
|
"1227 81\n",
|
|||
|
"1228 82\n",
|
|||
|
"1246 4\n",
|
|||
|
"1369 0\n",
|
|||
|
"Name: Display, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Camera':\n",
|
|||
|
"Series([], Name: Camera, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'External_Memory':\n",
|
|||
|
"45 3\n",
|
|||
|
"55 3\n",
|
|||
|
"56 3\n",
|
|||
|
"66 3\n",
|
|||
|
"72 18\n",
|
|||
|
"76 8\n",
|
|||
|
"77 15\n",
|
|||
|
"78 16\n",
|
|||
|
"79 15\n",
|
|||
|
"80 15\n",
|
|||
|
"81 15\n",
|
|||
|
"83 15\n",
|
|||
|
"84 15\n",
|
|||
|
"85 15\n",
|
|||
|
"192 19\n",
|
|||
|
"198 6\n",
|
|||
|
"202 12\n",
|
|||
|
"203 7\n",
|
|||
|
"204 17\n",
|
|||
|
"211 19\n",
|
|||
|
"264 13\n",
|
|||
|
"388 29\n",
|
|||
|
"391 28\n",
|
|||
|
"392 1\n",
|
|||
|
"396 0\n",
|
|||
|
"597 20\n",
|
|||
|
"600 25\n",
|
|||
|
"603 27\n",
|
|||
|
"606 26\n",
|
|||
|
"612 2\n",
|
|||
|
"644 10\n",
|
|||
|
"649 9\n",
|
|||
|
"650 14\n",
|
|||
|
"672 22\n",
|
|||
|
"924 28\n",
|
|||
|
"1040 4\n",
|
|||
|
"1045 4\n",
|
|||
|
"1046 24\n",
|
|||
|
"1048 21\n",
|
|||
|
"1049 24\n",
|
|||
|
"1051 24\n",
|
|||
|
"1052 5\n",
|
|||
|
"1268 11\n",
|
|||
|
"1270 11\n",
|
|||
|
"1291 23\n",
|
|||
|
"1369 30\n",
|
|||
|
"Name: External_Memory, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Android_version':\n",
|
|||
|
"Series([], Name: Android_version, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Price':\n",
|
|||
|
"Series([], Name: Price, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'company':\n",
|
|||
|
"Series([], Name: company, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Inbuilt_memory':\n",
|
|||
|
"2 7\n",
|
|||
|
"3 7\n",
|
|||
|
"4 7\n",
|
|||
|
"6 7\n",
|
|||
|
"7 7\n",
|
|||
|
" ..\n",
|
|||
|
"1357 7\n",
|
|||
|
"1358 7\n",
|
|||
|
"1359 7\n",
|
|||
|
"1363 7\n",
|
|||
|
"1365 7\n",
|
|||
|
"Name: Inbuilt_memory, Length: 205, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'fast_charging':\n",
|
|||
|
"Series([], Name: fast_charging, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Screen_resolution':\n",
|
|||
|
"Series([], Name: Screen_resolution, dtype: int64)\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Processor':\n",
|
|||
|
"0 12\n",
|
|||
|
"1 2\n",
|
|||
|
"2 4\n",
|
|||
|
"16 14\n",
|
|||
|
"22 14\n",
|
|||
|
" ..\n",
|
|||
|
"1322 12\n",
|
|||
|
"1342 12\n",
|
|||
|
"1346 13\n",
|
|||
|
"1348 14\n",
|
|||
|
"1350 13\n",
|
|||
|
"Name: Processor, Length: 133, dtype: int64\n",
|
|||
|
"\n",
|
|||
|
"Выбросы в столбце 'Processor_name':\n",
|
|||
|
"Series([], Name: Processor_name, dtype: int64)\n",
|
|||
|
"\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1200x800 with 18 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'id' и 'Name'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.30) между столбцами 'id' и 'company'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'Name' и 'id'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.21) между столбцами 'Name' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.96) между столбцами 'Name' и 'company'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.44) между столбцами 'Spec_score' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.49) между столбцами 'Spec_score' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.22) между столбцами 'Spec_score' и 'Camera'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.46) между столбцами 'Spec_score' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.35) между столбцами 'Spec_score' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.27) между столбцами 'Spec_score' и 'Inbuilt_memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.47) между столбцами 'Spec_score' и 'Screen_resolution'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.44) между столбцами 'No_of_sim' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'No_of_sim' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.20) между столбцами 'No_of_sim' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.22) между столбцами 'No_of_sim' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.26) между столбцами 'No_of_sim' и 'Inbuilt_memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.30) между столбцами 'No_of_sim' и 'Screen_resolution'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'Ram' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.22) между столбцами 'Ram' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.22) между столбцами 'Ram' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.36) между столбцами 'Ram' и 'Inbuilt_memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.23) между столбцами 'Ram' и 'Screen_resolution'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.23) между столбцами 'Battery' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.23) между столбцами 'Battery' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.49) между столбцами 'Display' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'Display' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.26) между столбцами 'Display' и 'Ram'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.23) между столбцами 'Display' и 'Battery'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.24) между столбцами 'Display' и 'Camera'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.45) между столбцами 'Display' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.21) между столбцами 'Display' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.22) между столбцами 'Camera' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.24) между столбцами 'Camera' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.34) между столбцами 'Camera' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.46) между столбцами 'External_Memory' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.20) между столбцами 'External_Memory' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.22) между столбцами 'External_Memory' и 'Ram'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.23) между столбцами 'External_Memory' и 'Battery'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.45) между столбцами 'External_Memory' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.34) между столбцами 'External_Memory' и 'Camera'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.63) между столбцами 'External_Memory' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.21) между столбцами 'External_Memory' и 'Processor_name'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.21) между столбцами 'Android_version' и 'Name'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.35) между столбцами 'Android_version' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.22) между столбцами 'Android_version' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.22) между столбцами 'Android_version' и 'Ram'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.21) между столбцами 'Android_version' и 'Display'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.63) между столбцами 'Android_version' и 'External_Memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.21) между столбцами 'Android_version' и 'Price'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.24) между столбцами 'Android_version' и 'company'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.21) между столбцами 'Price' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.30) между столбцами 'company' и 'id'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.96) между столбцами 'company' и 'Name'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.24) между столбцами 'company' и 'Android_version'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.27) между столбцами 'Inbuilt_memory' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.26) между столбцами 'Inbuilt_memory' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.36) между столбцами 'Inbuilt_memory' и 'Ram'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.29) между столбцами 'Inbuilt_memory' и 'Screen_resolution'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.47) между столбцами 'Screen_resolution' и 'Spec_score'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.30) между столбцами 'Screen_resolution' и 'No_of_sim'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.23) между столбцами 'Screen_resolution' и 'Ram'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (0.29) между столбцами 'Screen_resolution' и 'Inbuilt_memory'\n",
|
|||
|
"Просачивание данных: Высокая корреляция (-0.21) между столбцами 'Processor_name' и 'External_Memory'\n",
|
|||
|
"@data Ram Price company\n",
|
|||
|
"0 10 442 19\n",
|
|||
|
"1 6 440 19\n",
|
|||
|
"2 10 79 19\n",
|
|||
|
"3 10 79 19\n",
|
|||
|
"4 10 79 19\n",
|
|||
|
"... ... ... ...\n",
|
|||
|
"1365 10 158 20\n",
|
|||
|
"1366 14 207 20\n",
|
|||
|
"1367 12 199 20\n",
|
|||
|
"1368 12 189 20\n",
|
|||
|
"1369 2 18 20\n",
|
|||
|
"\n",
|
|||
|
"[1370 rows x 3 columns]\n",
|
|||
|
"Обучающая выборка: (819, 3)\n",
|
|||
|
"Ram\n",
|
|||
|
"14 327\n",
|
|||
|
"10 151\n",
|
|||
|
"2 151\n",
|
|||
|
"12 115\n",
|
|||
|
"9 25\n",
|
|||
|
"4 20\n",
|
|||
|
"6 14\n",
|
|||
|
"3 5\n",
|
|||
|
"5 4\n",
|
|||
|
"8 4\n",
|
|||
|
"11 2\n",
|
|||
|
"15 1\n",
|
|||
|
"Name: count, dtype: int64\n",
|
|||
|
"Контрольная выборка: (273, 3)\n",
|
|||
|
"Ram\n",
|
|||
|
"14 98\n",
|
|||
|
"10 56\n",
|
|||
|
"12 49\n",
|
|||
|
"2 43\n",
|
|||
|
"4 10\n",
|
|||
|
"9 8\n",
|
|||
|
"6 4\n",
|
|||
|
"11 1\n",
|
|||
|
"8 1\n",
|
|||
|
"1 1\n",
|
|||
|
"7 1\n",
|
|||
|
"13 1\n",
|
|||
|
"Name: count, dtype: int64\n",
|
|||
|
"Тестовая выборка: (273, 3)\n",
|
|||
|
"Ram\n",
|
|||
|
"14 101\n",
|
|||
|
"2 52\n",
|
|||
|
"12 49\n",
|
|||
|
"10 45\n",
|
|||
|
"4 11\n",
|
|||
|
"9 5\n",
|
|||
|
"6 3\n",
|
|||
|
"8 3\n",
|
|||
|
"3 2\n",
|
|||
|
"7 1\n",
|
|||
|
"0 1\n",
|
|||
|
"Name: count, dtype: int64\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import numpy as np\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"from sklearn.feature_selection import mutual_info_regression\n",
|
|||
|
"from sklearn.model_selection import train_test_split\n",
|
|||
|
"from sklearn.preprocessing import LabelEncoder\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"import seaborn as sns\n",
|
|||
|
"\n",
|
|||
|
"df = pd.read_csv(\"data/mobile_prices.csv\")\n",
|
|||
|
"print(df.columns)\n",
|
|||
|
"\n",
|
|||
|
"# Кодируем все строковые столбцы в числовые\n",
|
|||
|
"label_encoders = {}\n",
|
|||
|
"for col in df.select_dtypes(include=[\"object\"]).columns:\n",
|
|||
|
" le = LabelEncoder()\n",
|
|||
|
" df[col] = le.fit_transform(df[col])\n",
|
|||
|
" label_encoders[col] = le\n",
|
|||
|
"\n",
|
|||
|
"# Проверка на пропуски и \"зашумленные\" столбцы\n",
|
|||
|
"noisy_features = []\n",
|
|||
|
"for col in df.columns:\n",
|
|||
|
" if df[col].isnull().sum() / len(df) > 0.1: # Если более 10% пропусков\n",
|
|||
|
" noisy_features.append(col)\n",
|
|||
|
"print(f\"Зашумленные столбцы: {noisy_features}\")\n",
|
|||
|
"\n",
|
|||
|
"# Проверка на смещение\n",
|
|||
|
"skewness = df.skew()\n",
|
|||
|
"print(f\"Смещение: {skewness}\")\n",
|
|||
|
"\n",
|
|||
|
"skewed_features = skewness[abs(skewness) > 1].index.tolist()\n",
|
|||
|
"print(f\"Сильно смещенные столбцы: {skewed_features}\")\n",
|
|||
|
"\n",
|
|||
|
"# Поиск выбросов\n",
|
|||
|
"for col in df.select_dtypes(include=[\"number\"]).columns:\n",
|
|||
|
" Q1 = df[col].quantile(0.25)\n",
|
|||
|
" Q3 = df[col].quantile(0.75)\n",
|
|||
|
" IQR = Q3 - Q1\n",
|
|||
|
" lower_bound = Q1 - 1.5 * IQR\n",
|
|||
|
" upper_bound = Q3 + 1.5 * IQR\n",
|
|||
|
" outliers = df[col][(df[col] < lower_bound) | (df[col] > upper_bound)]\n",
|
|||
|
" print(f\"Выбросы в столбце '{col}':\\n{outliers}\\n\")\n",
|
|||
|
"\n",
|
|||
|
"# Визуализация выбросов\n",
|
|||
|
"numeric_cols = df.select_dtypes(include=[\"number\"]).columns\n",
|
|||
|
"\n",
|
|||
|
"plt.figure(figsize=(12, 8))\n",
|
|||
|
"for i, col in enumerate(numeric_cols, 1):\n",
|
|||
|
" plt.subplot(len(numeric_cols) // 3 + 1, 3, i)\n",
|
|||
|
" sns.boxplot(data=df, x=col)\n",
|
|||
|
" plt.title(f\"Boxplot for {col}\")\n",
|
|||
|
"plt.tight_layout()\n",
|
|||
|
"plt.show()\n",
|
|||
|
"\n",
|
|||
|
"if len(df.columns) >= 2:\n",
|
|||
|
" for col1 in df.columns:\n",
|
|||
|
" for col2 in df.columns:\n",
|
|||
|
" if col1 != col2:\n",
|
|||
|
" correlation = df[col1].corr(df[col2])\n",
|
|||
|
" if abs(correlation) > 0.2:\n",
|
|||
|
" print(f\"Просачивание данных: Высокая корреляция ({correlation:.2f}) между столбцами '{col1}' и '{col2}'\")\n",
|
|||
|
"\n",
|
|||
|
"# Логарифмирование признака 'Battery'\n",
|
|||
|
"df[\"log_Battery\"] = np.log(df[\"Battery\"] + 1)\n",
|
|||
|
"\n",
|
|||
|
"# Заполнение пропусков\n",
|
|||
|
"df[\"Battery\"] = df[\"Battery\"].fillna(df[\"Battery\"].mean())\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"# Функция для разбиения на train/val/test\n",
|
|||
|
"def split_stratified_into_train_val_test(\n",
|
|||
|
" df_input,\n",
|
|||
|
" stratify_colname=\"y\",\n",
|
|||
|
" frac_train=0.6,\n",
|
|||
|
" frac_val=0.15,\n",
|
|||
|
" frac_test=0.25,\n",
|
|||
|
" random_state=None,\n",
|
|||
|
"):\n",
|
|||
|
" if frac_train + frac_val + frac_test != 1.0:\n",
|
|||
|
" raise ValueError(\n",
|
|||
|
" \"fractions %f, %f, %f do not add up to 1.0\"\n",
|
|||
|
" % (frac_train, frac_val, frac_test)\n",
|
|||
|
" )\n",
|
|||
|
"\n",
|
|||
|
" if stratify_colname not in df_input.columns:\n",
|
|||
|
" raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n",
|
|||
|
"\n",
|
|||
|
" X = df_input\n",
|
|||
|
" y = df_input[[stratify_colname]]\n",
|
|||
|
"\n",
|
|||
|
" df_train, df_temp, y_train, y_temp = train_test_split(\n",
|
|||
|
" X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n",
|
|||
|
" )\n",
|
|||
|
" relative_frac_test = frac_test / (frac_val + frac_test)\n",
|
|||
|
" df_val, df_test, y_val, y_test = train_test_split(\n",
|
|||
|
" df_temp,\n",
|
|||
|
" y_temp,\n",
|
|||
|
" stratify=y_temp,\n",
|
|||
|
" test_size=relative_frac_test,\n",
|
|||
|
" random_state=random_state,\n",
|
|||
|
" )\n",
|
|||
|
"\n",
|
|||
|
" assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n",
|
|||
|
"\n",
|
|||
|
" return df_train, df_val, df_test\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"# Разбиение на train/val/test\n",
|
|||
|
"data = df[[\"Ram\", \"Price\", \"company\"]].copy()\n",
|
|||
|
"\n",
|
|||
|
"print(\"@data\", data)\n",
|
|||
|
"\n",
|
|||
|
"data = data.groupby(\"company\").filter(\n",
|
|||
|
" lambda x: len(x) > 4\n",
|
|||
|
") # убираем классы с одним элементом\n",
|
|||
|
"\n",
|
|||
|
"df_train, df_val, df_test = split_stratified_into_train_val_test(\n",
|
|||
|
" data, stratify_colname=\"company\", frac_train=0.60, frac_val=0.20, frac_test=0.20\n",
|
|||
|
")\n",
|
|||
|
"\n",
|
|||
|
"print(\"Обучающая выборка: \", df_train.shape)\n",
|
|||
|
"print(df_train[\"Ram\"].value_counts())\n",
|
|||
|
"\n",
|
|||
|
"print(\"Контрольная выборка: \", df_val.shape)\n",
|
|||
|
"print(df_val[\"Ram\"].value_counts())\n",
|
|||
|
"\n",
|
|||
|
"print(\"Тестовая выборка: \", df_test.shape)\n",
|
|||
|
"print(df_test[\"Ram\"].value_counts())"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"metadata": {
|
|||
|
"kernelspec": {
|
|||
|
"display_name": ".venv",
|
|||
|
"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
|
|||
|
}
|