{"id":25975772,"url":"https://github.com/mindlessmuse666/train-test-splitter","last_synced_at":"2026-04-12T03:05:49.500Z","repository":{"id":279114508,"uuid":"937738657","full_name":"MindlessMuse666/train-test-splitter","owner":"MindlessMuse666","description":"Анализ данных о пассажирах Титаника и разбиение на обучающую и тестовую выборки. Практическое задание по дисциплине \"Основы применения методов искусственного интеллекта в программировании\".","archived":false,"fork":false,"pushed_at":"2025-02-23T20:40:44.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T21:27:07.184Z","etag":null,"topics":["data-analysis","data-preprocessing","data-visualization","machine-learning","pandas","python","scikit-learn","seaborn","titanic","train-test-split"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindlessMuse666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-23T19:27:28.000Z","updated_at":"2025-02-23T20:46:27.000Z","dependencies_parsed_at":"2025-02-23T21:37:16.852Z","dependency_job_id":null,"html_url":"https://github.com/MindlessMuse666/train-test-splitter","commit_stats":null,"previous_names":["mindlessmuse666/train-test-splitter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftrain-test-splitter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftrain-test-splitter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftrain-test-splitter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftrain-test-splitter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindlessMuse666","download_url":"https://codeload.github.com/MindlessMuse666/train-test-splitter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241956646,"owners_count":20048672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-preprocessing","data-visualization","machine-learning","pandas","python","scikit-learn","seaborn","titanic","train-test-split"],"created_at":"2025-03-05T03:24:02.688Z","updated_at":"2025-12-31T00:54:26.680Z","avatar_url":"https://github.com/MindlessMuse666.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Разбиение на обучающую и тестовую выборки датасэта пассажиров Титаника \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"MIT-License image\"\u003e\u003c/a\u003e\n\n\n## 1. Описание проекта\n\n**Проект по дисциплине:** МДК 13.01 Основы применения методов искусственного интеллекта в программировании\n\n**Практическое занятие №6:** Разбивка набора данных на тренировочное и тестовое подмножества\n\nВ рамках проекта была выполнена задача загрузки, анализа и разбиения на обучающую и тестовую выборки датасета, содержащего информацию о пассажирах Титаника. Использовались библиотеки *Pandas* для работы с данными, *Scikit-learn* для разбиения на выборки, а также *Matplotlib* и *Seaborn* для визуализации результатов.\n\n**Цель работы**: освоить методику разбивки данных для последующего обучения и оценки моделей машинного обучения.\n\n\n## 2. Скриншоты выполненного задания и конспекта лекции\n\n### 2.1. Основной скрипт [main.py](src/main.py)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/e3be0427-eaa8-4ee0-8077-63fce0738e1a\" alt=\"main.py\"\u003e\n\u003c/p\u003e\n\n### 2.2. Конспект лекции\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"report\\lecture-notes\\lecture-notes-1.jpg\" alt=\"lecture-notes-1.jpg\"\u003e\n  \u003cimg src=\"report\\lecture-notes\\lecture-notes-2.jpg\" alt=\"lecture-notes-2.jpg\"\u003e\n  \u003cimg src=\"report\\lecture-notes\\lecture-notes-3.jpg\" alt=\"lecture-notes-3.jpg\"\u003e\n\u003c/p\u003e\n\n\n## 3. Методика и подходы\n\n### 3.1. Методы\n\nВ работе были использованы следующие методы:\n\n* Загрузка данных из *CSV-файла* с использованием *Pandas*.\n* Предварительный анализ данных (определение количества признаков, типов данных, пропущенных значений).\n* Разбиение данных на обучающую и тестовую выборки с использованием `train_test_split` из `Scikit-learn`.\n* Визуализация распределения целевой переменной (выживших) в обучающей и тестовой выборках с использованием *Matplotlib* и *Seaborn*.\n\n### 3.2. Алгоритмы\n\nДля обработки данных и визуализации были использованы следующие алгоритмы и подходы:\n\n* Разбиение данных на обучающую и тестовую выборки - `train_test_split`.\n* Визуализация данных с использованием `countplot` (Seaborn) для отображения распределения целевой переменной.\n\n### 3.3. Подходы\n\n* Принципы KISS и DRY были соблюдены для обеспечения простоты и переиспользуемости кода.\n\n### 3.4. Допущения и ограничения\n\n* Предполагается, что URL-адрес *CSV-файла* с данными о Титанике остается доступным.\n* Не проводилась детальная обработка пропущенных значений (заполнением или удалением).\n\n### 3.5. Инструменты, библиотеки и технологии\n\n* Python\n* Pandas\n* Scikit-learn\n* Matplotlib\n* Seaborn\n\n\n## 4. Результаты\n\n### 4.1. Краткое описание данных\n\n* **Источник данных:** [https://github.com/datasciencedojo/datasets/blob/master/titanic.csv](https://github.com/datasciencedojo/datasets/blob/master/titanic.csv)\n* **Формат данных:** CSV\n* **Описание набора данных:** Набор данных содержит информацию о пассажирах Титаника, включая пол, возраст, класс билета, выживаемость и другие признаки.\n\n### 4.2. Предварительный анализ и предобработка данных\n\n* Удаление ненужных столбцов не производилось, но при дальнейшем развитии проекта это может быть необходимо.\n* Столбец 'Survived' был выделен в качестве целевой переменной (y), остальные столбцы (за исключением 'Survived') использовались в качестве признаков (X).\n* Масштабирование данных не выполнялось, так как в данном проекте основная цель - разбиение данных на выборки.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/854a04fb-3f52-494c-8559-fc075a2eba5d\" alt=\"предварительный анализ данных\"\u003e\n\u003c/p\u003e\n\n### 4.3. Графики и диаграммы\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"report\\graphs\\selections-survivors-distribution.png\" alt=\"гистограмма распределения выживших в обучающей выборке\"\u003e\n\u003c/p\u003e\n\nГрафик демонстрируют распределение целевой переменной (выживших) в обучающей и тестовой выборках.\n\n### 4.4. Анализ результатов\n\nВ данном проекте не проводилось обучение модели, поэтому метрики оценки не применялись.  Основная цель - корректное разбиение данных на обучающую и тестовую выборки и визуализация этого разбиения. Размеры полученных выборок:\n\n* Размер обучающей выборки: `712`\n* Размер тестовой выборки: `179`\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/c68801e5-e5e6-4336-a609-10f6e1676dbf\" alt=\"Размер выборок\"\u003e\n\u003c/p\u003e\n\n### 4.5. Выводы\n\nРазбиение данных на обучающую и тестовую выборки выполнено успешно.  Визуализация подтверждает, что распределение целевой переменной в обеих выборках примерно соответствует друг другу, что важно для дальнейшего обучения и оценки моделей.\n\n### 4.6. Обсуждение возможных улучшений\n\n* Провести более детальный анализ данных, включая обработку пропущенных значений и удаление выбросов.\n* Применить различные методы масштабирования данных.\n* Попробовать различные соотношения размеров обучающей и тестовой выборок.\n* Использовать стратифицированное разбиение данных, особенно если классы целевой переменной несбалансированы.\n\n\n## 5. Заключение\n\nВ ходе выполнения данного практического занятия были получены навыки загрузки, анализа и разбиения данных на обучающую и тестовую выборки с использованием библиотек **Pandas** и **Scikit-learn**. Полученные навыки будут полезны при выполнении дальнейших проектов в области машинного обучения.\n\n\n## 6. Лицензия\nЭтот проект распространяется под лицензией MIT - смотрите файл [LICENSE](LICENSE) для деталей.\n\n\n## 7. Автор\nБедин Владислав ([MindlessMuse666](https://github.com/MindlessMuse666))\n\n* GitHub: [MindlessMuse666](https://github.com/MindlessMuse666 \"Владислав: https://github.com/MindlessMuse666\")\n* Telegram: [@mindless_muse](t.me/mindless_muse)\n* Gmail: [mindlessmuse.666@gmail.com](mindlessmuse.666@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Ftrain-test-splitter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindlessmuse666%2Ftrain-test-splitter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Ftrain-test-splitter/lists"}