code-review-101-JohnReed7
Анализ датасета Digits (Рукописные цифры)
Рецензенты
reviewer 1 - https://gitverse.ru/ArturAnv
reviewer 2 - https://gitverse.ru/alexeyumatov
Информация о студенте
ФИО
Леонтьев Назар Вадимович
Номер группы
РИ-150942/1
Описание проекта
Проект представляет собой исследовательский анализ данных (EDA) датасета рукописных цифр из библиотеки scikit-learn. Датасет содержит изображения цифр от 0 до 9, представленные в виде матриц 8×8 пикселей.
Цель
Провести комплексный анализ данных рукописных цифр для задачи многоклассовой классификации.
Задачи
- Загрузка и подготовка данных
- Анализ распределения целевой переменной (цифры 0-9)
- Вычисление статистик пиксельных значений
- Визуализация распределения классов
- Отображение примеров рукописных цифр
- Анализ интенсивности пикселей
- Построение тепловых карт средних изображений
Используемые технологии
| Библиотека | Назначение |
|---|---|
| pandas | Работа с табличными данными |
| numpy | Математические вычисления |
| matplotlib | Построение графиков |
| seaborn | Статистическая визуализация |
| scikit-learn | Загрузка датасета |
Структура проекта
📁 digits_analysis/
├── 📄 main.py # Основной скрипт
├── 📄 README.md # Документация
├── 🖼️ 10_digits_target_distribution.png # Распределение классов
├── 🖼️ 10_digits_sample_images.png # Примеры цифр
├── 🖼️ 10_digits_pixel_analysis.png # Анализ пикселей
└── 🖼️ 10_digits_mean_heatmaps.png # Тепловые карты
Описание функций
load_data()
Загружает датасет Digits и преобразует его в DataFrame с 64 пиксельными признаками и целевой переменной.
target_analysis(df)
Анализирует распределение цифр: выводит количество и процент каждого класса.
feature_statistics(df)
Вычисляет статистики пиксельных значений:
- Среднее, медиана, минимум, максимум
- Стандартное отклонение, дисперсия
- Процент нулевых пикселей
visualize_target(df)
Создаёт визуализацию распределения классов:
- Столбчатая диаграмма
- Круговая диаграмма
sample_digit_images(df)
Отображает по одному примеру каждой цифры (0-9) в сетке 2×5.
pixel_intensity_analysis(df)
Строит 4 графика анализа интенсивности:
- Гистограмма всех пиксельных значений
- Средняя интенсивность по цифрам
- Дисперсия пикселей по цифрам
- Количество ненулевых пикселей по цифрам
heatmap_mean_images(df)
Создаёт тепловые карты усреднённых изображений для каждой цифры.
Информация о датасете
| Параметр | Значение |
|---|---|
| Количество образцов | 1797 |
| Количество признаков | 64 (пиксели) |
| Размер изображения | 8×8 пикселей |
| Количество классов | 10 (цифры 0-9) |
| Диапазон значений пикселей | 0-16 |
Установка и запуск
1. Клонирование/скачивание проекта
2. Установка зависимостей
3. Запуск скрипта
Результаты
После выполнения скрипта создаются 4 визуализации:
| Файл | Содержание |
|---|---|
| Столбчатая и круговая диаграммы распределения цифр |
| Примеры изображений каждой цифры |
| Анализ интенсивности пикселей (4 графика) |
| Тепловые карты средних изображений |
Пример вывода в консоль
============================================================
ЗАДАНИЕ 10: EXPLORATORY DATA ANALYSIS - DIGITS DATASET
============================================================
Датасет загружен. Размер: (1797, 65)
АНАЛИЗ ЦЕЛЕВОЙ ПЕРЕМЕННОЙ
Распределение цифр (количество):
0 178
1 182
2 177
...
СТАТИСТИКА ПИКСЕЛЬНЫХ ЗНАЧЕНИЙ
Среднее значение: 4.91
Максимум: 16.00
Минимум: 0.00
Стандартное отклонение: 5.33
✓ График сохранён: 10_digits_target_distribution.png
✓ График сохранён: 10_digits_sample_images.png
✓ График сохранён: 10_digits_pixel_analysis.png
✓ График сохранён: 10_digits_mean_heatmaps.png
Анализ завершен!
============================================================