Coder Social home page Coder Social logo

pydlts's Introduction

pydlts

Статус проекта: завершён

Краткое описание

Назначение

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

  • чтение данных полученных с измерительной установки и их преобразование в единую таблицу (csv-файл);
  • поиск оптимальных параметров модели на экспериментальных данных методом градиентного спуска;
  • построение графиков с результатами разных этапов обработки;
  • автоматическая генерация материалов для отчётов в LaTex;
  • пакетная обработка результатов измерений и идентификация моделей.

Градиентный спуск реализован с помощью TensorFlow. Модели в pydlts.fsmodels сделаны совместимыми с scikit-learn.
Нормализация данных сделана не совсем корректно с точки зрения математики и требований структуры класса совместимого с scikit-learn. Также в отчёте раздел, посвящённый нормализации данных, написан с ошибкой. Ошибки будут исправлены.

Чтобы поддерживать идентичность обработки разных комплектров результатов измерений, код оформлен ввиде пакета, который подключается с помощью pip и setuptools.

Подробное описание работы модуля и решаемых задач можно найти в отчёте о работе.

Документация на GitHub в процессе разработки.

Типовой рабочий процесс

Обычно, обработка экспериментальных данных происходит в пакетном режиме и состоит из следующих шагов:

  1. Пакетная обработка результатов измерений с помощью объекта BatchDataReaderDLS82E из модуля pydlts.misc:
    • сохранение csv-файлов с результатами измерений в формате, удобном для дальнейшей работы,
    • сохранение графиков, иллюстрирующих полученный результат.
  2. Пакетная идентификация моделей с помощью объекта BatchSingleExp из модуля pydlts.misc:
    • сохранения csv-файлов с оптимальными найденными параметрами моделей,
    • генерация графиков, иллюстрирующих результаты.
  3. Создание материалов для отчёта в LaTex на основе сохранённых результатов (пакетная обработка).

Также возможно обрабатывать результаты измерений индивидуально. В таком случае обработка будет состоять из следующих этапов:

  1. Обработка результатов измерений (данных непосредственно с измерительной установки) с помощью объекта DataReaderDLS82E из модуля pydlts.misc.
  2. Сохранение csv-файлов с результатами измерений в формате, удобном для дальнейшей работы, сохранение графиков, иллюстрирующих полученный результат. Шаги 1 и 2 могут быть пропущены, если такая обработка уже выполнялась.
  3. Идентификация параметров необходимой модели. Реализованы слеудющие 2:
    • моноэкспоненциальная модель с показателем нелинейности-неэкспоненциальности объект SklSingleExpFrequencyScan из модуля pydlts.fsmodels,
    • многоэкспоненциальня модель объект SklMultiExpFrequencyScan из модуля pydlts.fsmodels.
  4. Создание необходимых графиков с помощью необходимых функций из pydlts.fsplots.
  5. Создание отчёта вручную.

Пример результатов измерений, их обработки, идентификации моделей, графиков и отчёта представлен в репозитории data-acquisition-and-report.

Описание структуры репозитория

Опущено описание файлов типовых для репозиториев на GitHub и файлов, необходимых для создания пакета. Сырые данные с утановки не приводятся, можно посмотреть на их пример в data-acquisition-and-report.

  • datasets - папка с результатами измерений
  • docs - папка с документацией и отчётом.
    • drafts - черновики (будут удалены)
    • report - итоговый отчёт о результатах работы (LaTex). Кроеме проекта в Latex, папка также содержит вспомогательные ноутбуки, нужные для некоторых расчётов и генерации иллюстраций.
      • models_main.pdf - отчёт в pdf
  • examples - Примеры использования инструментов из пакета pydlts.
  • src - Папка с исходными кодами.
    • pydlts
      • fsmodels.py - Модели экспериментальных данных.
      • fsplots.py - Функции для построения графиков.
      • misc.py - Вспомогательные классы и функции, реализующие преобразование сырых данных с измерительной установки в формат, пригодный для работы, пакетную обработку, автоматическую генерацию материалов в отчёт.
  • tests - Папка для автоматических тестов (пока остаётся пустой).
  • env.yml - виртуальное окружение (windows), экспортированное из anaconda.

pydlts's People

Contributors

alekseibogachev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.