https://github.com/mindlessmuse666/train-test-splitter
Анализ данных о пассажирах Титаника и разбиение на обучающую и тестовую выборки. Практическое задание по дисциплине "Основы применения методов искусственного интеллекта в программировании".
https://github.com/mindlessmuse666/train-test-splitter
data-analysis data-preprocessing data-visualization machine-learning pandas python scikit-learn seaborn titanic train-test-split
Last synced: 27 days ago
JSON representation
Анализ данных о пассажирах Титаника и разбиение на обучающую и тестовую выборки. Практическое задание по дисциплине "Основы применения методов искусственного интеллекта в программировании".
- Host: GitHub
- URL: https://github.com/mindlessmuse666/train-test-splitter
- Owner: MindlessMuse666
- License: mit
- Created: 2025-02-23T19:27:28.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-02-23T20:40:44.000Z (11 months ago)
- Last Synced: 2025-02-23T21:27:07.184Z (11 months ago)
- Topics: data-analysis, data-preprocessing, data-visualization, machine-learning, pandas, python, scikit-learn, seaborn, titanic, train-test-split
- Language: Python
- Homepage:
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Разбиение на обучающую и тестовую выборки датасэта пассажиров Титаника 
## 1. Описание проекта
**Проект по дисциплине:** МДК 13.01 Основы применения методов искусственного интеллекта в программировании
**Практическое занятие №6:** Разбивка набора данных на тренировочное и тестовое подмножества
В рамках проекта была выполнена задача загрузки, анализа и разбиения на обучающую и тестовую выборки датасета, содержащего информацию о пассажирах Титаника. Использовались библиотеки *Pandas* для работы с данными, *Scikit-learn* для разбиения на выборки, а также *Matplotlib* и *Seaborn* для визуализации результатов.
**Цель работы**: освоить методику разбивки данных для последующего обучения и оценки моделей машинного обучения.
## 2. Скриншоты выполненного задания и конспекта лекции
### 2.1. Основной скрипт [main.py](src/main.py)
### 2.2. Конспект лекции
## 3. Методика и подходы
### 3.1. Методы
В работе были использованы следующие методы:
* Загрузка данных из *CSV-файла* с использованием *Pandas*.
* Предварительный анализ данных (определение количества признаков, типов данных, пропущенных значений).
* Разбиение данных на обучающую и тестовую выборки с использованием `train_test_split` из `Scikit-learn`.
* Визуализация распределения целевой переменной (выживших) в обучающей и тестовой выборках с использованием *Matplotlib* и *Seaborn*.
### 3.2. Алгоритмы
Для обработки данных и визуализации были использованы следующие алгоритмы и подходы:
* Разбиение данных на обучающую и тестовую выборки - `train_test_split`.
* Визуализация данных с использованием `countplot` (Seaborn) для отображения распределения целевой переменной.
### 3.3. Подходы
* Принципы KISS и DRY были соблюдены для обеспечения простоты и переиспользуемости кода.
### 3.4. Допущения и ограничения
* Предполагается, что URL-адрес *CSV-файла* с данными о Титанике остается доступным.
* Не проводилась детальная обработка пропущенных значений (заполнением или удалением).
### 3.5. Инструменты, библиотеки и технологии
* Python
* Pandas
* Scikit-learn
* Matplotlib
* Seaborn
## 4. Результаты
### 4.1. Краткое описание данных
* **Источник данных:** [https://github.com/datasciencedojo/datasets/blob/master/titanic.csv](https://github.com/datasciencedojo/datasets/blob/master/titanic.csv)
* **Формат данных:** CSV
* **Описание набора данных:** Набор данных содержит информацию о пассажирах Титаника, включая пол, возраст, класс билета, выживаемость и другие признаки.
### 4.2. Предварительный анализ и предобработка данных
* Удаление ненужных столбцов не производилось, но при дальнейшем развитии проекта это может быть необходимо.
* Столбец 'Survived' был выделен в качестве целевой переменной (y), остальные столбцы (за исключением 'Survived') использовались в качестве признаков (X).
* Масштабирование данных не выполнялось, так как в данном проекте основная цель - разбиение данных на выборки.
### 4.3. Графики и диаграммы
График демонстрируют распределение целевой переменной (выживших) в обучающей и тестовой выборках.
### 4.4. Анализ результатов
В данном проекте не проводилось обучение модели, поэтому метрики оценки не применялись. Основная цель - корректное разбиение данных на обучающую и тестовую выборки и визуализация этого разбиения. Размеры полученных выборок:
* Размер обучающей выборки: `712`
* Размер тестовой выборки: `179`
### 4.5. Выводы
Разбиение данных на обучающую и тестовую выборки выполнено успешно. Визуализация подтверждает, что распределение целевой переменной в обеих выборках примерно соответствует друг другу, что важно для дальнейшего обучения и оценки моделей.
### 4.6. Обсуждение возможных улучшений
* Провести более детальный анализ данных, включая обработку пропущенных значений и удаление выбросов.
* Применить различные методы масштабирования данных.
* Попробовать различные соотношения размеров обучающей и тестовой выборок.
* Использовать стратифицированное разбиение данных, особенно если классы целевой переменной несбалансированы.
## 5. Заключение
В ходе выполнения данного практического занятия были получены навыки загрузки, анализа и разбиения данных на обучающую и тестовую выборки с использованием библиотек **Pandas** и **Scikit-learn**. Полученные навыки будут полезны при выполнении дальнейших проектов в области машинного обучения.
## 6. Лицензия
Этот проект распространяется под лицензией MIT - смотрите файл [LICENSE](LICENSE) для деталей.
## 7. Автор
Бедин Владислав ([MindlessMuse666](https://github.com/MindlessMuse666))
* GitHub: [MindlessMuse666](https://github.com/MindlessMuse666 "Владислав: https://github.com/MindlessMuse666")
* Telegram: [@mindless_muse](t.me/mindless_muse)
* Gmail: [mindlessmuse.666@gmail.com](mindlessmuse.666@gmail.com)