Skip to content

Портфолио с описанием наиболее значимых выполненных мной проектов

Notifications You must be signed in to change notification settings

Skupydoom/portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Портфолио

 Привет!
 Меня зовут Константин Григорьев, я развиваюсь в направлении Data Science.
Содержание

Образование

  • Обучаюсь на 3-ем курсе бакалавриата МУИВ. Факультет информационных технологий.
  • С октября 2023-го года прохожу обучение в АНО "Школа 21", образовательном проекте от Сбера для разработчиков, бывшем филиале школы 42.

Курсы и тренинги

  • 2023 Правительство Москвы, Добровольный Квалификационный Экзамен по Data Science.
  • 2022 МФТИ, “Быстрый старт в искусственный интеллект” 45 ак. ч.
  • 2022 ЧОУВО “МУ ИМ. С. Ю. ВИТТЕ”, “Основы технологического предпринимательства” 24 ак. ч.

Дополнительная информация

  • Английский язык, B2

Резюме

 Резюме можно увидеть по ссылке.

Стек технологий

  • Программирование: Python, C, SQL;
  • ­Базы данных: PostgreSQL, MySQL, SQLite;
  • ­Машинное обучение: Scikit-learn, Tensorflow, PyTorch, CatBoost, XGBoost;
  • ­Визуализация данных: Matplotlib, Seaborn;
  • ­Обработка данных: NumPy, Pandas;
  • Веб-разработка: HTML, CSS, Flask;
  • ­Операционные системы: Windows, Linux, MacOS;
  • ­А также: регулярные выражения, Beautiful Soup, Tkinter, Docker, Git, Bash, Excel, SSH, сети.

Выполненные проекты

 В основном выполнял проекты, связанные с анализом данных и классическим машинным обучением.


2023: Pet-проект

“Students Adaptability ML”
Ссылка на исходный код.

Задачи:

  • По имеющимся данным о студентах онлайн-курсов обучить модель предсказания их уровня адаптивности (насколько сложный будет для них курс).

Используемые технологии:

  • Python.
  • Docker.
  • Разведывательный анализ данных.
  • Библиотеки анализа данных: NumPy, Pandas, Seaborn.
  • Библиотеки ML: Scikit-learn, CatBoost.
  • Flask, Gunicorn.
  • Ансамблевый метод: стекинг моделей машинного обучения.

Результаты:

  • Приложение в виде Docker Image, которое принимает запрос с данными о студенте и возвращает его уровень готовности пройти курс.
  • Выполнил полный цикл задачи машинного обучения: проанализировал данные, обучил модель и подготовил для запуска в работу готовое приложение.

Описание:
 В проекте изучается датасет, содержащий персональную информацию об онлайн студентах.
 Цель состояла в предсказании их уровня адаптации или, другими словами, вероятность успешного прохождения курса.
 В Jupyter ноутбуке данные были разделены на тренировочные и тестовые, был проведён анализ характеристик датасета, обучено и сверено по метрике F1 несколько моделей машинного обучения.
 Лучшие из моделей были объединены в одну с помощью стекинга (ансамблевый метод).
 Финальная стек-модель сохранена в Docker Image.
В конце работы получились следующие файлы:

  • Jupyter ноутбук "data_analysis.ipynb" с обширным анализом данных;
  • Датасет "students_adaptability_level_online_education.csv";
  • Файлы с зависимостями: "Pipfile" и "Pipfile.lock";
  • Скрипт "train.py", который обучает финальную модель и сохраняет её в бинарный файл;
  • Скрипт веб-сервис "predict.py". Может быть запущен с помощью Gunicorn;
  • Бинарный файл "model.bin" с важными переменными натренированной модели;
  • Скрипт "predict_test.py" для тестирования веб-сервиса.
  • Dockerfile для развёртывания веб-сервиса;

2023: Практическая работа

“Анализ данных аэропортов, визуализация и применение машинного обучения для проверки наличия регулярных рейсов”
Ссылка на исходный код и отчёт.

Задачи:

  • Провести полный анализ данных 75000 аэропортов.
  • Обучить модель предсказания наличия регулярных рейсов у аэропорта по его характеристикам.

Используемые технологии:

  • Python, Pandas, NumPy, Matplotlib, Seaborn, Scikit-learn, XGBoost, Jupyter Notebook, Google Earth Pro.

Результаты:

  • Произвёл подробный анализ аэропортов и очистил данные.
  • Поставил и проверил несколько гипотез, визуализировал статистические срезы.
  • Натренировал несколько моделей машинного обучения и выбрал лучшую: алгоритм случайного леса с ROC AUC = 0.80.

Описание:
 В проекте исследовался датасет с данными о 75000 аэропортов по всему миру.
 Он содержит анализ данных, очистку от цифрового мусора, вывод статистических характеристик и диаграмм, обучение моделей машинного обучения и подбор гиперпараметров.
 В приложении Google Earth Pro был импортирован датасет и получено на глобусе мира расположение каждого аэропорта с его описанием.
 Также было предложено несколько гипотез о зависимости характеристик и проверено на данных.
 После я разделил данные на обучающие и тренировочные, обучил несколько моделей машинного обучения, проверил матрики accuracy, precision, recall и ROC AUC score. Лучшим оказался алгоритм случайного леса. Используя кросс-валидацию данных и отрисовку графиков, я подобрал оптимальные гиперпараметры модели.
 После обучения финальной модели сравнил все метрики и сделал вывод о том, что модель случайного леса склонна к переобучению.
 Некоторые изображения из отчёта:

Расположение аэропортов Аэропорты в Google Earth Pro
Описание аэропортов в Google Earth Pro Матрица корреляции числовых данных
Регулярные рейсы по странам Подбор гиперпараметра n_estimators
Сравнение метрик всех моделей (1) Переобученная модель
Сравнение метрик всех моделей (2)

2023: Курсовая работа

“Интерактивное приложение для доступа к ML-моделям с сервера”
Ссылка на исходный код.

Задачи:

  • Клиент-серверное приложение с авторизацией.

Используемые технологии:

  • Работа с базами данных.
  • Система авторизации пользователей.
  • Сетевое взаимодействие.
  • Python, CustomTkinter, Tkinter, Flask, Requests, Sqlite3.
  • SQL.

Результаты:

  • Готовое приложение с возможностью авторизации и получения внутренней информации.
  • Значительно улучшил навыки разработки бэкенд части приложений на Python.

Описание:
 Проект представляет собой клиент-серверное приложение. Сервер может быть запущен исполнением скрипта ./server/server.py.
 Графический интерфейс запускается скриптом ./client/main.py.
 Пользователя встречает следующее окно регистрации:

Registration unfilled Registration filled

 После введения данных и нажатия кнопки регистрации происходит передача данных серверу, запись в базу данных пользователей:
Registration unfilled

 В случае успешной записи идёт перенаправление на основное окно:

Registration unfilled Registration filled

 Здесь человек может выбрать понравившуюся модель из списка и получить описание.
 Также реализован вход по логину и паролю:
Registration unfilled

 Есть кнопка переадресации со страницы логина на страницу регистрации и наоборот.
 Тема может быть изменена на тёмную или системную при её выборе из списка:
Registration unfilled

 Клиент и сервер показывают в консоли отладочную информацию при различных действиях пользователей:

Registration unfilled Registration unfilled

2022: Ознакомительная практика в ФКУ «ГосТех»

“Разработка сценариев реализации угроз с использованием MITRE ATT&CK на примере цифровой подстанции. Рассмотрение вопросов автоматизации процесса формирования сценариев угроз”
Ссылка на отчёт.

Задачи:

  • Произвести анализ устройства цифровой подстанции.
  • Определить программное обеспечение, которое можно применить при формировании модели угроз для данного объекта и сформулировать принцип автоматизации моделирования.

Используемые технологии:

  • MITRE ATT&CK, MITRE Navigator, ADTool, правила CAPA, MITRE CARET, Microsoft threat modeling tool, банк данных угроз информационной безопасности ФСТЭК России.

Результаты:

  • Получил практические навыки формирования целей и задач группового проекта.
  • Написал подробный отчёт по анализу темы.
  • Научился формировать сценарии угроз с помощью современных инструментов.

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

  • Есть автоматизированная цифровая подстанция на электростанции. От неё питается центр обработки данных с большим количеством клиентов, в том числе в лице крупных компаний.

 В отчёте исследуется предположительная схема работы ЦПС, её структура обеспечения надёжности. Далее предполагается, какие объекты могут быть атакованы путём кибератаки на саму подстанцию. После с помощью программного обеспечения MITRE ATT&CK и MITRE Navigator и концепции "Kill chain" описываются возможные сценарии атак злоумышленников.
 Во втором разделе приведены сервисы для помощи в автоматизации формирования сценариев угроз.


Некоторые проекты, выполненные во время обучения в "Школе 21"

  • Реализация оригинальной игры "Понг" на языке C.
  • Реализация клеточного автомата "Game Of Life" на языке C.
  • Реализация Bash утилит Cat и Grep.
  • Реализация библиотеки C string.h с дополнительным функционалом.
  • Базовое ознакомление с Linux (Ubuntu Server LTS 20.04).
  • Настройка сети на виртуальных машинах с Linux и их взаимодействие.

Дипломы и сертификаты

Сертификат финалиста This is SPARTA data.sprint

Сертификат финалиста This is SPARTA data.sprint

Диплом победителя ДКЭ 2023 по специальности Data Science

Диплом победителя ДКЭ 2023 Data Science

Сертификат прохождения курса Kaggle "Intermediate Machine Learning"

Сертификат Kaggle Intermediate Machine Learning

Сертификат прохождения курса МУИВТЕХ "Основы технологического предпринимательства"

Сертификат МУИВТЕХ Основы технологического предпринимательства

About

Портфолио с описанием наиболее значимых выполненных мной проектов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages