All Projects → fastai → Numerical Linear Algebra

fastai / Numerical Linear Algebra

Free online textbook of Jupyter notebooks for fast.ai Computational Linear Algebra course

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to Numerical Linear Algebra

Mlcourse.ai
Open Machine Learning Course
Stars: ✭ 7,963 (-3.63%)
Mutual labels:  algorithms, data-science, numpy
The Python Workshop
A New, Interactive Approach to Learning Python
Stars: ✭ 150 (-98.18%)
Mutual labels:  algorithms, jupyter-notebook, data-science
Yabox
Yet another black-box optimization library for Python
Stars: ✭ 103 (-98.75%)
Mutual labels:  algorithms, jupyter-notebook, data-science
Machinelearningcourse
A collection of notebooks of my Machine Learning class written in python 3
Stars: ✭ 35 (-99.58%)
Mutual labels:  jupyter-notebook, data-science, numpy
Thesemicolon
This repository contains Ipython notebooks and datasets for the data analytics youtube tutorials on The Semicolon.
Stars: ✭ 345 (-95.82%)
Mutual labels:  jupyter-notebook, data-science, numpy
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (-97.53%)
Mutual labels:  jupyter-notebook, data-science, linear-algebra
Labs
Labs for the Foundations of Applied Mathematics curriculum.
Stars: ✭ 150 (-98.18%)
Mutual labels:  algorithms, data-science, linear-algebra
Data Science For Marketing Analytics
Achieve your marketing goals with the data analytics power of Python
Stars: ✭ 127 (-98.46%)
Mutual labels:  jupyter-notebook, data-science, numpy
Gdrl
Grokking Deep Reinforcement Learning
Stars: ✭ 304 (-96.32%)
Mutual labels:  algorithms, jupyter-notebook, numpy
Data Science Hacks
Data Science Hacks consists of tips, tricks to help you become a better data scientist. Data science hacks are for all - beginner to advanced. Data science hacks consist of python, jupyter notebook, pandas hacks and so on.
Stars: ✭ 273 (-96.7%)
Mutual labels:  jupyter-notebook, data-science, numpy
Data Science Projects With Python
A Case Study Approach to Successful Data Science Projects Using Python, Pandas, and Scikit-Learn
Stars: ✭ 198 (-97.6%)
Mutual labels:  jupyter-notebook, data-science, numpy
Matrex
A blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
Stars: ✭ 429 (-94.81%)
Mutual labels:  jupyter-notebook, numpy, linear-algebra
Andrew Ng Notes
This is Andrew NG Coursera Handwritten Notes.
Stars: ✭ 180 (-97.82%)
Mutual labels:  jupyter-notebook, data-science, numpy
Ensae teaching cs
Teaching materials in python at the @ENSAE
Stars: ✭ 69 (-99.16%)
Mutual labels:  algorithms, jupyter-notebook, data-science
Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (-73.41%)
Mutual labels:  jupyter-notebook, data-science, numpy
Jupyter
Stars: ✭ 145 (-98.25%)
Mutual labels:  algorithms, jupyter-notebook, data-science
Python Bigdata
Data science and Big Data with Python
Stars: ✭ 112 (-98.64%)
Mutual labels:  jupyter-notebook, data-science, numpy
Seaborn Tutorial
This repository is my attempt to help Data Science aspirants gain necessary Data Visualization skills required to progress in their career. It includes all the types of plot offered by Seaborn, applied on random datasets.
Stars: ✭ 114 (-98.62%)
Mutual labels:  jupyter-notebook, data-science, numpy
Deep Learning Machine Learning Stock
Stock for Deep Learning and Machine Learning
Stars: ✭ 240 (-97.1%)
Mutual labels:  algorithms, jupyter-notebook, data-science
Stats Maths With Python
General statistics, mathematical programming, and numerical/scientific computing scripts and notebooks in Python
Stars: ✭ 381 (-95.39%)
Mutual labels:  jupyter-notebook, data-science, numpy

Computational Linear Algebra for Coders

This course is focused on the question: How do we do matrix computations with acceptable speed and acceptable accuracy?

This course was taught in the University of San Francisco's Masters of Science in Analytics program, summer 2017 (for graduate students studying to become data scientists). The course is taught in Python with Jupyter Notebooks, using libraries such as Scikit-Learn and Numpy for most lessons, as well as Numba (a library that compiles Python to C for faster performance) and PyTorch (an alternative to Numpy for the GPU) in a few lessons.

Accompanying the notebooks is a playlist of lecture videos, available on YouTube. If you are ever confused by a lecture or it goes too quickly, check out the beginning of the next video, where I review concepts from the previous lecture, often explaining things from a new perspective or with different illustrations, and answer questions.

Getting Help

You can ask questions or share your thoughts and resources using the Computational Linear Algebra category on our fast.ai discussion forums.

Table of Contents

The following listing links to the notebooks in this repository, rendered through the nbviewer service. Topics Covered:

0. Course Logistics (Video 1)

1. Why are we here? (Video 1)

We start with a high level overview of some foundational concepts in numerical linear algebra.

2. Topic Modeling with NMF and SVD (Video 2 and Video 3)

We will use the newsgroups dataset to try to identify the topics of different posts. We use a term-document matrix that represents the frequency of the vocabulary in the documents. We factor it using NMF, and then with SVD.

3. Background Removal with Robust PCA (Video 3, Video 4, and Video 5)

Another application of SVD is to identify the people and remove the background of a surveillance video. We will cover robust PCA, which uses randomized SVD. And Randomized SVD uses the LU factorization.

4. Compressed Sensing with Robust Regression (Video 6 and Video 7)

Compressed sensing is critical to allowing CT scans with lower radiation-- the image can be reconstructed with less data. Here we will learn the technique and apply it to CT images.

5. Predicting Health Outcomes with Linear Regressions (Video 8)

6. How to Implement Linear Regression(Video 8)

7. PageRank with Eigen Decompositions (Video 9 and Video 10)

We have applied SVD to topic modeling, background removal, and linear regression. SVD is intimately connected to the eigen decomposition, so we will now learn how to calculate eigenvalues for a large matrix. We will use DBpedia data, a large dataset of Wikipedia links, because here the principal eigenvector gives the relative importance of different Wikipedia pages (this is the basic idea of Google's PageRank algorithm). We will look at 3 different methods for calculating eigenvectors, of increasing complexity (and increasing usefulness!).

8. Implementing QR Factorization (Video 10)


Why is this course taught in such a weird order?

This course is structured with a top-down teaching method, which is different from how most math courses operate. Typically, in a bottom-up approach, you first learn all the separate components you will be using, and then you gradually build them up into more complex structures. The problems with this are that students often lose motivation, don't have a sense of the "big picture", and don't know what they'll need.

Harvard Professor David Perkins has a book, Making Learning Whole in which he uses baseball as an analogy. We don't require kids to memorize all the rules of baseball and understand all the technical details before we let them play the game. Rather, they start playing with a just general sense of it, and then gradually learn more rules/details as time goes on.

If you took the fast.ai deep learning course, that is what we used. You can hear more about my teaching philosophy in this blog post or this talk I gave at the San Francisco Machine Learning meetup.

All that to say, don't worry if you don't understand everything at first! You're not supposed to. We will start using some "black boxes" or matrix decompositions that haven't yet been explained, and then we'll dig into the lower level details later.

To start, focus on what things DO, not what they ARE.

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