/iu5_ml_course

Работы по дисциплине «Методы машинного обучения»

Primary LanguageJupyter Notebook

Работы по дисциплине «Методы машинного обучения»

Исполнитель: Лещев Артем Олегович, группа ИУ5-24М, 2018–2019 учебный год.

Каждая работа расположена в своей папке и содержит как все необходимые материалы, так и отчёт по данной работе. Отчёты формируются из Jupyter-ноутбуков с помощью nbconvert, команда приведена в README.md каждой работы.

Список работ

Подготовка Jupyter-ноутбука для формирования отчёта

Чтобы превратить Jupyter-ноутбук в красивый отчёт, следует сделать следующее:

  1. Добавить следующие метаданные в ноутбук (Edit -> Edit Notebook Metadata в классическом интерфейсе, через плагин jupyterlab_nbmetadata в Jupyter Lab, или просто открыв ноутбук в текстовом редакторе):
    {
      "authors": [
        {
          "name": "Лещев Артем Олегович"
        }
      ],
      "group": "ИУ5-24М",
      "lab_number": 1,
      "title": "Разведочный анализ данных. Исследование и визуализация данных"
    }
  2. Если хочется библиографию:
    1. Сделать символическую ссылку в папке с ноутбуком на common/bib.bib.
    2. Расставить в ноутбуке в Markdown-ячейках ссылки вида:
      <cite data-cite="ue:lab1"></cite>

После этого можно превратить данный Jupyter-ноутбук в отчёт командой вида:

jupyter nbconvert --to pdf --template=../common/template.tplx eda_visualization.ipynb

Вместо pdf можно использовать ключевое слово latex, чтобы получить готовый для редактирования .tex-файл. После редактирования следует использовать команду xelatex для компиляции этого файла в PDF.

При необходимости, естественно, можно подправить common/template.tplx. Например, в нём вшито название предмета на титульном листе.

Возможные ошибки

Под Windows может быть очень неочевидная ошибка такого вида:

! Undefined control sequence.
<*> .\notebook
              .tex
?
! Emergency stop.
<*> .\notebook
              .tex

Для её исправления придётся поправить исходный код nbconvert: с помощью команды pip show nbconvert найдите папку, в которой установлен nbconvert, в ней откройте для исправления файл exporters/pdf.py и в классе PDFExporter найдите свойство writer. У конструктора этого свойства уберите аргумент kw={'build_directory': '.'}, именно в нём и заключается проблема. Данная проблема отслеживается в соответствующем проекте: jupyter/nbconvert#974.