Git Product home page Git Product logo

machine_learning_book's Introduction

Machine Learning Book

PDF

This book is generated entirely in LaTeX from lecture notes for the course Machine Learning at Stanford University, CS229, originally written by Andrew Ng, Christopher Ré, Moses Charikar, Tengyu Ma, Anand Avati, Kian Katanforoosh, Yoann Le Calonnec, and John Duchi. This collection is a typesetting of existing lecture notes. Forked from the template tufte_algorithms_book used for Algorithms for Optimization. The template allows for the direct compilation of a print-ready PDF, including support for figures, examples, and exercises.

We do all of our development in Ubuntu (but also support Windows).

Install Julia.

Install LaTeX via texlive. We recommend this repo.

Clone the repository to a location of your choosing:

git clone https://github.com/mossr/machine_learning_book.git

Initialize and update the submodule (juliaplots.sty):

git submodule init
git submodule update

Install lexer and style (may need pip3 instead):

pip install --upgrade git+https://github.com/sisl/pygments-julia#egg=pygments_julia
pip install --upgrade git+https://github.com/sisl/pygments-style-algfordm#egg=pygments_style_algforopt

Install the required Julia packages.

julia jl/install.jl

Install pdf2svg, which is used by PGFPlots (we assume Ubuntu - other operating systems may install pdf2svg differently):

sudo apt-get install pdf2svg

For pdf2svg on Windows (place dist-* directory on PATH): https://github.com/jalios/pdf2svg-windows

Install pgfplots.

We require pythontex 0.17, which was just recently tagged. You will probably have to update your version on texlive on miktex. Alternatively, you can download the latest version of pythontex from https://github.com/gpoore/pythontex.

(Note that on arch-based systems, one should use tllocalmgr instead.)

Test

Running the following pulls all the code and then runs all tests in juliatest blocks. See runtests.jl for details.

julia jl/runtests.jl

Compilation

Install latexmk from: https://mg.readthedocs.io/latexmk.html#installation

  • latexmk will compile everything (see output/ for PDF).
    • latexmk will intelligently compile only the necessary bits.
  • latexmk -c will clean up generated files.
  • latexmk -C will clean up generated files (including .pdf).
  • latexmk tex/sandbox.tex will compile tex/sandbox.tex (Note, the forward slash is important. This is meant for development, e.g., single files)

If you host your project under Gitlab, .gitlab-ci.yml is a CI/CD template to start with.

If you host your project under Gitlab, .gitlab-ci.yml is a CI/CD template to start with.

Directory structure

.
├── ...
├── jl                      # Julia framework script files
├── lectures                # CS229 lecture notes
├── tex                     # LaTeX files (main and preamble files)
│   └── chapter             # LaTeX files (specifically for chapters)
│       └── figures         # TiKz figures (non-Julia generated)
└── output                  # Generated output file (.aux files, etc)

Debugging

To force the submodules to re-initialize:

git submodule add --name pygments-style-algforopt https://github.com/sisl/pygments-style-algforopt.git style
git submodule add --name pygments-julia https://github.com/sisl/pygments-julia.git lexer
git submodule add https://github.com/sisl/juliaplots.sty.git

If you get this error: Requirement.parse('prompt-toolkit<2.1.0,>=2.0.0')), then run:

pip install prompt-toolkit==2.0.4

machine_learning_book's People

Contributors

mossr 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.