code-review-101-alexeyumatov
Задание 10: Анализ датасета Digits
Информация о рецензируемых работах
Рецензент 1: https://gitverse.ru/confucius
Рецензент 2: https://gitverse.ru/Farid
Информация о студенте
ФИО: Юматов Алексей Андреевич
Группа: РИ-150942/3
Номер задания: 10
Датасет: Digits (рукописные цифры 0-9)
Описание задания
Провести exploratory data analysis (EDA) датасета Digits, содержащего изображения рукописных цифр размером 8x8 пикселей. Каждое изображение представлено 64 пиксельными признаками со значениями от 0 до 16.
Цель: Анализ данных рукописных цифр для многоклассовой классификации (10 классов: цифры 0-9).
Выполненные работы
1. Загрузка данных (load_data)
- Загружен датасет Digits с помощью sklearn.datasets.load_digits()
- Создан DataFrame с 64 пиксельными признаками (
-pixel_0)pixel_63 - Добавлена целевая переменная
(цифры 0-9)target
2. Анализ целевой переменной (target_analysis)
- Вычислено распределение цифр в датасете
- Рассчитан процент каждой цифры
- Выведена статистика по классам
3. Статистика признаков (feature_statistics)
- Рассчитаны основные статистики пиксельных значений:
- Среднее значение
- Максимальное и минимальное значения
- Стандартное отклонение
4. Визуализация распределения (visualize_target)
- Создана столбчатая диаграмма распределения цифр
- Создана круговая диаграмма для наглядности
- Сохранено в 10_digits_target_distribution.png
5. Примеры изображений (sample_digit_images)
- Визуализированы примеры каждой цифры (0-9)
- Изображения преобразованы из 64-мерного вектора в матрицу 8x8
- Использована серая цветовая схема
- Расположены в сетке 2x5
- Сохранено в 10_digits_sample_images.png
6. Анализ интенсивности пикселей (pixel_intensity_analysis)
Создано 4 графика:
- Гистограмма распределения всех пиксельных значений
- Средняя интенсивность пикселей по цифрам
- Дисперсия пикселей по цифрам
- Среднее количество ненулевых пикселей по цифрам
- Сохранено в 10_digits_pixel_analysis.png
7. Тепловые карты (heatmap_mean_images)
- Вычислены средние изображения для каждой цифры
- Визуализированы как тепловые карты 8x8 с цветовой схемой 'hot'
- Расположены в сетке 2x5
- Добавлены цветовые шкалы для каждой карты
- Сохранено в 10_digits_mean_heatmaps.png
Статистика
| Метрика | Значение |
|---|---|
| Общее количество образцов | 1797 |
| Количество признаков | 64 (8x8 пикселей) |
| Количество классов | 10 (цифры 0-9) |
| Среднее значение пикселей | ~7.81 |
| Максимальное значение пикселя | 16 |
| Минимальное значение пикселя | 0 |
| Стандартное отклонение | ~6.17 |
| Размер изображения | 8x8 пикселей |
| Сбалансированность классов | ~10% на каждый класс |
Ключевые находки
-
Сбалансированность данных: Датасет хорошо сбалансирован - каждая цифра представлена примерно в равных пропорциях (~10% каждая).
-
Распределение пикселей: Большинство пикселей имеют значение 0 (фон), что создаёт бимодальное распределение с пиками на 0 и в диапазоне активных пикселей.
-
Интенсивность по цифрам: Разные цифры имеют различную среднюю интенсивность пикселей, что может быть полезным признаком для классификации.
-
Вариативность: Дисперсия пикселей различается между цифрами, что указывает на разную степень вариативности написания.
-
Количество активных пикселей: Среднее количество ненулевых пикселей варьируется между цифрами - некоторые цифры (например, 1) занимают меньше пространства, чем другие (например, 8).
-
Тепловые карты: Средние изображения цифр чётко показывают характерные паттерны для каждого класса, что свидетельствует о хорошем качестве данных.
Созданные файлы
Добавлены:
- основной скрипт с реализацией всех функцийassignment.py- распределение цифр (столбчатая и круговая диаграммы)10_digits_target_distribution.png- примеры изображений каждой цифры10_digits_sample_images.png- анализ интенсивности пикселей (4 графика)10_digits_pixel_analysis.png- тепловые карты средних изображений10_digits_mean_heatmaps.png- данный отчётREADME.md
Удалены:
- Все лишние markdown файлы (кроме README.md и CONTRIBUTING.md)
Технологии
- Python 3.x
- pandas - работа с данными
- numpy - численные вычисления
- matplotlib - визуализация
- seaborn - дополнительная визуализация
- scikit-learn - загрузка датасета
Запуск
Результат: создаются 4 PNG файла с визуализациями и выводится статистика в консоль.
Примечания
Код соответствует требованиям PEP8, все функции документированы, визуализации сохраняются в высоком разрешении (300 dpi).