Skip to content
/ dslr Public

Реализация классификатора на основе стратегии «один-против-всех» с помощью модели логистической регрессии, без использования специальных библиотек; статистический анализ данных; реализация пакетного градиентного спуска, мини-пакетного градиентного спуска, стохастического градиентного спуска; визуализация данных различными методами

Notifications You must be signed in to change notification settings

dbadeev/dslr

Repository files navigation

Проект Datascience X Logistic Regression

Реализация классификатора на основе стратегии «один-против-всех» с помощью модели логистической регрессии, без использования специальных библиотек; статистический анализ данных; реализация пакетного градиентного спуска, мини-пакетного градиентного спуска, стохастического градиентного спуска; визуализация данных различными методами

Начало Работы

Копирование

Для копирования файлов Проекта на локальный компьютер в папку <your_dir_on_local_computer> выполните:

    $ git clone [email protected]:dbadeev/dslr.git <your_dir_on_local_computer>

Описание файлов

  • dslr_en.pdf - текст задания
  • requirements.txt - список библиотек, необходимый для работы
  • datasets - папка с исходными данными + файл evaluate.py для оценки качества построенной модели
  • config.sh - скрипт для создания и активации виртуального окружения, установки необходимых библиотек + формирователь документации в формате html
  • docs - папка с файлами для генератора документации Sphinx
  • maths - папка с библиотекой утилит, используемых в проекте
    • functions.py - статистические функции
    • logistic_regression.py - модуль, включающий класс Логистической регрессии и вспомогательные функции
  • messages - папка с файлами модуля вывода информации о ходе выполнения программы (сообщения об ошибках, окончания работы и т.п.)
  • histogram.py - программа отрисовки гистограммы для поиска схожих распределений свойств набора данных по классам
  • scatter_plot.py - программа поиска по матрице корреляции и отрисовки диаграммы рассеяния наиболее схожих свойств из набора данных
  • pair_plot.py - программа отображения попарных диаграмм рассеяния для свойств в наборе данных
  • logreg_train.py - программа обучения модели логистической регрессии
  • logreg_predict.py - программа, предсказывающая наиболее вероятный класс по свойствам объекта

Запуск программ

Начало работы, необходимые библиотеки и документация

  1. Для работы с Проектом сначала рекомендуется создать и активировать виртуальное окружение, в которое будут устанавливаться необходимые библиотеки.
    Для создания и активации виртуального окружения, установки необходимых библиотек и формирования html документации по проекту, из корневой папки в командной строке нужно запустить скрипт config.sh.
$ ./config.sh

Сформированные файлы документации расположены в папке docs/build/html/

Для просмотра документации в браузере нужно открыть файл docs/build/html/index.html

Статистика данных

  1. Для получения информации по статистикам свойств объектов из папки с проектом в командной строки запускается программа describe.py. Для получения расширенной информации используется ключ -e.
$ python3 describe.py -e datasets/dataset_train.csv

Результат работы программы - информация по статистическим характеристикам каждого свойста объектов.

Набор статистических характеристик по которым приводится отчет подробно описан в документации сформированной на предыдущем шаге.

Визуализация данных

  1. Для получения изображения гистограмм распределения свойств объектов для каждого из классов по данным из датасета, из папки с проектом в командной строки запускается программа histogram.py
$ python3 histogram.py

Результат работы программы - файл histogram_all.png в корневой папке проекта.

  1. Для поиска по матрице корреляции и получения изображения диаграмм рассеяния наиболее схожих свойств в наборе данных, из папки с проектом в командной строки запускается программа scatter_plot.py
$ python3 scatter_plot.py

Результат работы программы - файл scatter_plot.png в корневой папке проекта.

  1. Для получения изображения попарных диаграмм рассеяния свойств в наборе данных, из папки с проектом в командной строки запускается программа pair_plot.py
$ python3 pair_plot.py

Результат работы программы - файл pair_plot.png в корневой папке проекта.

Обучение, запуск и оценка качества модели

  1. Для получения информации о параметрах программы обучения модели, из корневой папки проекта нужно выполнить программу logreg_train.py с ключом -h:
$ python3 logreg_train.py -h          
usage: logreg_train.py [-h] [--gradient GRAD] [--debug] data

positional arguments:
  data                  Path to train data file

optional arguments:
  -h, --help            show this help message and exit
  --gradient GRAD, -g GRAD
                        Gradient descent method: "batch" (default), "mini_batch", "sgd"
  1. После успешной отработки программы обучения модели в папке datasets/ будет сформирован файл weights.csv, в котором будут записаны найденные веса (параметры) по классам для каждого свойства, отобранного для построения модели.
    В случае ошибки, будет выдано соответствующее сообщение.

  2. Для получения информации о параметрах программы-классификатора, предсказывающей на основе стратегии «один-против-всех» класс, к которому относится объект по его свойствам, из корневой папки проекта нужно выполнить программу logreg_predict.py с ключом -h:

$ python3 logreg_predict.py -h                      
usage: logreg_predict.py [-h] data weights

positional arguments:
  data        Path to data file
  weights     Path to weights file

optional arguments:
  -h, --help  show this help message and exit
  1. После успешной отработки программы-классификатора в папке datasets/ будет сформирован файл houses.csv с результатами предсказаний по каждому объекту из файла с тестовыми данными и на экран выведена информация об окончании работы.
    В случае ошибки, будет выдано соответствующее сообщение.

  2. Для оценки качества модели нужно перейти из корневой папки проекта в папку datasets/, где находятся файлы houses.csv, dataset_truth.csv, а также программа evaluate.py и запустить последнюю:

$ cd datasets 

$ python3 evaluate.py

На экран будет выведена информация о количестве объектов в каждом из csv файлов и доля верно предсказанных результатов.


Подробности

Подробнее о Проекте, анализ данных, примеры использования - по ссылке Wiki (https://github.com/dbadeev/dslr/wiki).


Авторы

loram (Дмитрий Бадеев) - описание и реализация модели логистической регрессии
gdorcas (Татьяна Смирнова) - реализация статистических функций, программ визуализации, стат анализ, документация с использованием Sphinx

Результат в School 21

image

About

Реализация классификатора на основе стратегии «один-против-всех» с помощью модели логистической регрессии, без использования специальных библиотек; статистический анализ данных; реализация пакетного градиентного спуска, мини-пакетного градиентного спуска, стохастического градиентного спуска; визуализация данных различными методами

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published