# Notes on python, machine learning, linux and other programming related topics
Data Science for Political and Social Phenomena
Author: Guillaume Redoulès

I am a data scientist and a numerical methods engineer working in the field of rocket design.

This site will host my notes on machine learning, programming or other subjects of interest. This project is open source and available on GitHub.

## Blog

- 11/18 Day 9 - Multiple Linear Regression
- 11/18 Day 8 - Least Square Regression Line
- 11/18 Day 7 - Pearson and spearman correlations
- 11/18 Day 6 - The Central Limit Theorem
- 11/18 Day 5 - Poisson and Normal distributions
- 11/18 Day 4 - Binomial and geometric distributions
- 11/18 Day 3 - Conditionnal probability
- 11/18 Day 2 - Probability, Compound Event Probability
- 11/18 Day 1 - Quartiles, Interquartile Range and standard deviation
- 11/18 Day 0 - Median, mean, mode and weighted mean

## Projects : learn by doing

- 08/19 Getting traffic data from google maps

## Machine Learning

### Basics

- Coming soon.

### Preprocessing

- Coming soon.

### Feature Engineering and Selection

- Coming soon.

### Model evaluation and validation

- Coming soon.

### Model selection and hyperparameters optimization

- Coming soon.

### Linear regression

- Multiple Linear Regression
- Least Square Regression Line

### Support Vector Machines

- Coming soon.

### Trees and Forests

- Coming soon.

### Nearest Neighbors

- Coming soon.

### Clustering methods

- Coming soon.

## Deep Learning

### keras basics

- Load a saved model
- Get model input shape
- Get model info and number of parameters
- Saving the models weights after each epoch
- Logging the training progress in a CSV
- Using tensorboard with Keras
- Install keras using conda

### Feedforward networks

- Coming soon.

### Deep convolutional Networks

- Coming soon.

### Recurent networks

- Coming soon.

### Other

- Coming soon.

## Python

### Basics

- List all sections in a config file
- Get items in one dictionnary but not the other one
- Iterate over a dictionnary
- Write a value to a config file
- Parse variable from config file
- Random integer
- Counting values in an array
- Building a dictonnary using comprehension
- Extracting unique values from a list or an array
- Sorting an array
- Reverse an array
- Advice for designing your own libraries
- Safely creating a folder if it doesn't exist
- List all files in a directory
- Opening a file with python
- Opening a SQLite database with python

### Data Wrangling

- Filter or select lines of a DataFrame containing values in a list
- Reverse column order in pandas
- Reverse row order in pandas
- Rename columns in pandas
- Using pandas extended types
- Moving average with pandas
- Reading data from a sql database with pandas
- Writing data to a sql database with pandas
- Creating a sqlite database
- Iterate over a DataFrame

### Data Visualization

- Parula colormap for matplotlib
- Plotting data using log axis
- Setting up the notebook for plotting with matplotlib
- Saving a matplotlib figure with a high resolution

### Web Scraping

- Downloading from quandl
- Downloading a static webpage with python
- Getting stock market data

### Algorithms

- Efficient extraction of eigenvalues from a list of tensors

### Parallel computing

- Using Dask on infiniband
- Running multiple calls to a function in parallel with Dask

### Testing

- Coming soon.

### Other

- Maximize a window in Windows
- Case sensitive ConfigParser
- List all opened windows on Windows
- Optimized numpy random number generation on Intel CPU
- Updating all python package with anaconda

## Jupyter

### Basics

- Clearing the current cell in the notebook
- Running the notebook on a remote server

## Linux

### Bash

- Basic operations with SED
- How to create a ramdisk?
- Create a simple bash function
- What's inside my .bashrc ?
- How to check Linux process information?
- Check the size of a directory
- Check for free disk space
- Check your current ip address
- Check the version of the kernel currently running
- Reloading .bashrc
- Reloading fstab

### Raspberry pi

- Mount a NFS share using fstab

### Synology

- Synology NFS share

## SQL

- Update a value in a TABLE
- Granting access to a database to a remote client by IP
- Keywords to use with WHERE
- Sorting results
- Filter content of a TABLE
- Displaying the content of a TABLE

## Mathematics

### Basics

- Number of edges in a Complete graph

### Statistics

- Kullback Leibler Divergence
- Spearman's Rank Correlation Coefficient
- Pearson correlation coefficient
- Normal Distribution
- Poisson Distribution
- Geometric distribution
- Binomial distribution
- Premutations and combinations
- Conditional Probability
- Bayes' Theorem

### Uncertainty quantification

- Coming soon.

## Cryptocurrencies

### Bitcoin

- Installing bitcoind on raspberry pi

### Visualization

- Computing the Mayer multiple

Thanks to Dr. Chris Albon for inspiring this project and providing the code template for this website