All Projects → JuliaAI → DataScienceTutorials.jl

JuliaAI / DataScienceTutorials.jl

Licence: MIT license
A set of tutorials to show how to use Julia for data science (DataFrames, MLJ, ...)

Programming Languages

ReScript
86 projects
julia
2034 projects
HTML
75241 projects
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to DataScienceTutorials.jl

100 Days Of Ml Code
A day to day plan for this challenge. Covers both theoritical and practical aspects
Stars: ✭ 172 (+82.98%)
Mutual labels:  tutorials, datascience
wildebeest
File processing pipelines
Stars: ✭ 86 (-8.51%)
Mutual labels:  datascience
Statistical-Learning-using-R
This is a Statistical Learning application which will consist of various Machine Learning algorithms and their implementation in R done by me and their in depth interpretation.Documents and reports related to the below mentioned techniques can be found on my Rpubs profile.
Stars: ✭ 27 (-71.28%)
Mutual labels:  datascience
DGFraud-TF2
A Deep Graph-based Toolbox for Fraud Detection in TensorFlow 2.X
Stars: ✭ 84 (-10.64%)
Mutual labels:  datascience
tomsup
tomsup 👍 Theory of Mind Simulation using Python. A package that allows for easy agent-based modelling of recursive Theory of Mind
Stars: ✭ 49 (-47.87%)
Mutual labels:  tutorials
docs
Source for Storj DCS docs
Stars: ✭ 63 (-32.98%)
Mutual labels:  tutorials
Blog-React-Hook-Tutorial
This is a beginner tutorial for react hooks I have written in dev.to and Medium
Stars: ✭ 21 (-77.66%)
Mutual labels:  tutorials
perihelion-m68k-tutorials
68000 assembly tutorials for Atari ST by perihelion of poSTmortem
Stars: ✭ 31 (-67.02%)
Mutual labels:  tutorials
ProximalOperators.jl
Proximal operators for nonsmooth optimization in Julia
Stars: ✭ 119 (+26.6%)
Mutual labels:  julia-language
bayarea-2019-scikit-sprint
Bay Area WiMLDS scikit-learn open source sprint (Nov 2, 2019)
Stars: ✭ 16 (-82.98%)
Mutual labels:  datascience
comet-for-mlflow
Comet-For-MLFlow Extension
Stars: ✭ 48 (-48.94%)
Mutual labels:  datascience
LinearOperators.jl
Linear Operators for Julia
Stars: ✭ 126 (+34.04%)
Mutual labels:  julia-language
klue-transformers-tutorial
KLUE 데이터를 활용한 HuggingFace Transformers 튜토리얼
Stars: ✭ 107 (+13.83%)
Mutual labels:  tutorials
ECharts.jl
Julia package for the Apache ECharts v4 visualization library
Stars: ✭ 80 (-14.89%)
Mutual labels:  julia-language
GeoStatsTutorials
GeoStats.jl tutorials
Stars: ✭ 49 (-47.87%)
Mutual labels:  tutorials
PyCBC-Tutorials
Learn how to use PyCBC to analyze gravitational-wave data and do parameter inference.
Stars: ✭ 91 (-3.19%)
Mutual labels:  tutorials
mlops-case-study
MLOps Case Study
Stars: ✭ 23 (-75.53%)
Mutual labels:  datascience
data science portfolio
Portfolio of data science projects completed by me for academic, self learning, and hobby purposes.
Stars: ✭ 51 (-45.74%)
Mutual labels:  datascience
static-export-template
A template to automatically convert Pluto notebooks to an HTML website with GitHub Pages. Demo page:
Stars: ✭ 70 (-25.53%)
Mutual labels:  julia-language
metallicaRt
R package of colour palettes based on Metallica studio album covers.
Stars: ✭ 18 (-80.85%)
Mutual labels:  datascience

DataScienceTutorials.jl

This repository contains the source code for a set of tutorials introducing the use of Julia and Julia packages such as MLJ (but not only) to do "data science" in Julia.

For readers

You can read the tutorials online.

You can find a runnable script for each tutorial at the top of each tutorial page along with a Project.toml and a Manifest.toml you can use to re-create the exact environment that was used to run the tutorial.

To do so, save both files in an appropriate folder, start Julia, cd to the folder and

using Pkg
Pkg.activate(".")
Pkg.instantiate()

Note: you are strongly encouraged to open issues on this repository indicating points that are unclear or could be better explained, help us have great tutorials!

For developers

The rest of these instructions assume that you've cloned the package and have cd to it.

Structure

All tutorials correspond to a Literate script that's in _literate/.

Fixing an existing tutorial

Find the corresponding script, fix it in a PR.

Add a new tutorial

  • Duplicate the folder EX-wine.
  • Change its name:
    • EX-somename for an "end-to-end" tutorial somename
    • A-somename for a "getting started" tutorial somename
    • D0-somename for a "data" tutorial somename
    • ISL-lab-x for an "Introduction to Statistical Learning" tutorial
  • Remove Manifest.toml and Project.toml
  • Activate that folder and add the packages that you'll need (MLJ, ...)
  • Write your tutorial following the blueprint

Note: your tutorial must "just work" otherwise it will be ignored, in other words, we should be able to just copy the folder containing your .jl and .toml files, and run it without having to do anything special.

Once all that's done, the remaining things to do are to create the HTML page and a link in the appropriate location. Let's assume you wanted to add an E2E tutorial "Dinosaurs" then in the previous step you'd have EX-dinosaurs and you would

  • create a file dinosaurs.md in end-to-end/ by duplicating the end-to-end/wine.md and changing the reference in it to \tutorial{EX-dinosaurs}
  • add links pointing to that tutorial
    • in index.md following the template
    • in _layout/head.html following the template

Publishing updates

Assumptions:

  • you have a PR with changes, someone has reviewed them and they got merged into the main branch

  • Be sure the version of Julia declared near the top of index.md matches the version used to generate the web-site (which should match the version declared in each tutorial's Manifest.toml file)

Once the changes are in the main branch:

  • run cd("path/to/DataScienceTutorials"); using Franklin to launch Franklin
  • run serve(single=true, verb=true) to ensure no issues generating the relevant html pages with code block evaluations, and then run serve() (after restarting) to serve the pages live on a local browser for viewing
  • run include("deploy.jl") to re-generate the LUNR index and push the changes to GitHub.

The second step requires you have lunr and cheerio installed, if not:

using NodeJS
run(`sudo $(npm_cmd()) i lunr cheerio`)

This should take ≤ 15 seconds to complete.


Old instructions (still valid)

Visualise modifications locally

cd("path/to/DataScienceTutorials")
using Franklin
serve()

If you have changed the code of some of the literate scripts, Franklin will need to re-evaluate some of the code which may take some time, progress is indicated in the REPL.

If you decide to change some of the code while serve() is running, this is fine, Franklin will detect it and trigger an update of the relevant web pages (after evaluating the new code).

Notes:

  • avoid modifying the literate file, killing the Julia session, then calling serve() that sequence can cause weird issues where Julia will complain about the age of the world...
  • the serve() command above activates the environment.

Plots

For the moment, plots are done with PyPlot.jl (though you're not restricted to use it). It's best not to use Plots.jl because the loading time would risk making full updates of the webpage annoyingly slow.

In order to display a plot, finish a code block defining a plot with

savefig(joinpath(@OUTPUT, "MyTutorial-Fig1.svg")) # hide

# \figalt{the alt here}{MyTutorial-Fig1.svg}

Here "the alt here" is the text that appears if there is problem rendering the figure. Please do not use anything else than SVG; please also stick to this path and start the name of the file with the name of the tutorial (to help keep files organised).

Do not forget to add the # hide which will ensure the line is not displayed on the website, notebook, or script.

Troubleshooting

Stale files

It can happen that something went wrong and you'd like to force Franklin to re-evaluate everything to clear things up. To do this, head to the parent markdown file (e.g. my-tutorial.md) and add below the other ones:

@def reeval = true

save the file, wait for Franklin to complete its update and then remove it (otherwise it will reevaluate the script every single pass which can slow things down a lot).

If you get an "age of the world" error, the reeval steps above usually works as well.

If you want to force the reevaluation of everything once, restart a Julia session and use

serve(; eval_all=true)

note that this will take a while.

Merge conflicts

If you get merge conflicts, do

cleanpull()
serve()

the first command will remove all stale generated HTML which may conflict with older ones.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].