Репозиторий содержит мои домашние задания по курсу "Машинное Обучение". Здесь представлены практические работы, охватывающие основные темы и алгоритмы ML, от базовых операций с данными до построения моделей машинного обучения.
Репозиторий организован по хронологическому принципу: домашние задания выложены в порядке их выполнения.
| Файл | Тема | Краткое описание |
|---|---|---|
hw01_numpy_chernova.ipynb |
Основы NumPy | Работа с базовыми операциями и линейной алгеброй в NumPy. |
hw02_pandas_Alla.ipynb |
Анализ данных с Pandas | Обработка и анализ табличных данных с использованием библиотеки Pandas. |
hw03_EDA_Chernova.ipynb |
Разведочный анализ данных (EDA) | Визуализация и исследование данных для выявления закономерностей. |
hw04_knn_linreg_Chernova.ipynb |
KNN и Линейная регрессия | Реализация и применение алгоритмов K-ближайших соседей и линейной регрессии. |
homework_01_Chernova_fc_nn_songs.ipynb |
Нейронные сети для классификации песен | Построение полносвязной нейронной сети для задачи классификации музыкальных треков. |
homework_02_triplet_funtion.ipynb |
Triplet Loss и обучение представлений | Реализация сети с Triplet Loss для обучения embeddings и метрического обучения. |
homework_03_object_detection.ipynb |
Детекция объектов | Создание архитектуры для детекции объектов на изображениях и работа с готовыми решениями. |
Тема: Основы NumPy.
- Цель: Освоить работу с библиотекой NumPy — фундаментом для научных вычислений в Python.
- Основные задачи:
- Создание и манипуляция многомерными массивами (
ndarray). - Выполнение математических операций над массивами.
- Работа с линейной алгеброй (скалярные произведения, матричные операции).
- Индексация, срезы и базовая булева маскировка.
- Создание и манипуляция многомерными массивами (
Тема: Анализ данных с Pandas.
- Цель: Научиться эффективно работать со структурированными данными (DataFrame, Series).
- Основные задачи:
- Загрузка данных из CSV-файлов.
- Предварительная обработка данных: обработка пропусков, изменение типов.
- Фильтрация, группировка и агрегация данных (
groupby,pivot_table). - Слияние и объединение DataFrame.
Тема: Разведочный анализ данных (EDA).
- Цель: Исследовать набор данных, выявить основные закономерности, аномалии и проверить гипотезы перед построением моделей.
- Основные задачи:
- Анализ распределений признаков.
- Визуализация с использованием
matplotlibиseaborn(гистограммы, боксплоты, scatter plot). - Анализ корреляций между переменными.
- Работа с выбросами.
Тема: Классификация и регрессия.
- Цель: Познакомиться с базовыми алгоритмами машинного обучения.
- Основные задачи:
- K-Nearest Neighbors (KNN): Реализация алгоритма для задачи классификации, подбор гиперпараметра
k. - Линейная регрессия: Реализация метода наименьших квадратов для задачи прогнозирования, оценка качества модели (MSE, R²).
- Разделение данных на обучающую и тестовую выборки.
- K-Nearest Neighbors (KNN): Реализация алгоритма для задачи классификации, подбор гиперпараметра
Тема: Нейронные сети для классификации песен.
- Цель: Построить и обучить полносвязную нейронную сеть (Fully Connected Neural Network) для предсказания музыкальных жанров или характеристик треков.
- Основные задачи:
- Предобработка аудио-признаков (например, из датасета FMA или Spotify).
- Построение архитектуры сети с использованием
TensorFlow/KerasилиPyTorch. - Компиляция модели: выбор функции потерь, оптимизатора и метрик.
- Обучение модели, анализ кривых обучения и валидации.
- Оценка качества модели на тестовой выборке.
Тема: Triplet Loss и обучение представлений.
- Цель: Реализовать и обучить модель с использованием Triplet Loss для создания качественных векторных представлений (embeddings).
- Основные задачи:
- Реализация функции Triplet Loss.
- Создание сети для обучения embeddings.
- Формирование триплетов (anchor, positive, negative).
- Обучение модели метрическому обучению.
- Оценка качества embeddings с помощью метрик (AUC-ROC и др.).
- Результаты: Достигнут AUC-ROC = 0.8307 после 3 эпох обучения.
Тема: Детекция объектов.
- Цель: Разработать архитектуру для детекции объектов на изображениях и использовать готовые решения.
- Основные задачи:
- Работа с датасетами PascalVOC формата (квиддич или игральные карты).
- Предобработка XML-аннотаций и изображений.
- Реализация детектора объектов (самописная архитектура).
- Использование готовых детекторов (YOLO, Faster R-CNN и др.).
- Оценка качества детекции с помощью метрик (mAP, IoU).
- Анализ результатов и сравнение подходов.
- Язык: Python 3.8+
- Основные библиотеки: NumPy, Pandas, Matplotlib, Seaborn, Scikit-learn
- Фреймворки для нейросетей: TensorFlow / Keras или PyTorch (в зависимости от задания)
- Дополнительные библиотеки: OpenCV, Albumentations, FiftyOne (для детекции объектов)
- Среда выполнения: Jupyter Notebook