An open API service indexing awesome lists of open source software.

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

Анализ данных о пассажирах Титаника и разбиение на обучающую и тестовую выборки. Практическое задание по дисциплине "Основы применения методов искусственного интеллекта в программировании".

Awesome Lists containing this project

README

          

# Разбиение на обучающую и тестовую выборки датасэта пассажиров Титаника MIT-License image

## 1. Описание проекта

**Проект по дисциплине:** МДК 13.01 Основы применения методов искусственного интеллекта в программировании

**Практическое занятие №6:** Разбивка набора данных на тренировочное и тестовое подмножества

В рамках проекта была выполнена задача загрузки, анализа и разбиения на обучающую и тестовую выборки датасета, содержащего информацию о пассажирах Титаника. Использовались библиотеки *Pandas* для работы с данными, *Scikit-learn* для разбиения на выборки, а также *Matplotlib* и *Seaborn* для визуализации результатов.

**Цель работы**: освоить методику разбивки данных для последующего обучения и оценки моделей машинного обучения.

## 2. Скриншоты выполненного задания и конспекта лекции

### 2.1. Основной скрипт [main.py](src/main.py)


main.py

### 2.2. Конспект лекции


lecture-notes-1.jpg
lecture-notes-2.jpg
lecture-notes-3.jpg

## 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)