#Programming and Computer Science
(Back to Master Table of Contents)
Python Textbooks
R Textbooks
Python Tutorials
Python Pandas Tutorials
Python scikit-learn Tutorials
Tutorials in Python
R Tutorials
Python Courses
R Courses
Spark Courses
Python Lectures
Programming Blogs
Python Podcasts
Python Packages
R Packages
Python Misc
Programming Misc
Think Python 2e
by Allen Downey
"Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters." Uses Python 3.
Other tags: Beginner Python
Think Python 1e
by Allen Downey
"Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters." Uses Python 2.
Other tags: Beginner Python
Think Complexity
by Allen Downey
"This book is about complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science."
Python for Computational Science and Engineering (book)
by Hans Fangohr
"This text summarises a number of core ideas relevant to Computational Engineering and Scientific Computing using Python. The emphasis is on introducing some basic Python (programming) concepts that are relevant for numerical algorithms. The later chapters touch upon numerical libraries such as numpy and scipy each of which deserves much more space than provided here. We aim to enable the reader to learn independently how to use other functionality of these libraries using the available documentation (online and through the packages itself)."
Intermediate Python
by Muhammad Yasoob Ullah Khalid
"The topics which are discussed in this book open up your mind towards some nice corners of Python language. This book is an outcome of my desire to have something like this when I was beginning to learn Python."
Computational and Inferential Thinking
by Ani Adhikari and John DeNero
"Data are descriptions of the world around us, collected through observation and stored on computers. Computers enable us to infer properties of the world from these descriptions. Data science is the discipline of drawing conclusions from data using computation. There are three core aspects of effective data analysis: exploration, prediction, and inference. This text develops a consistent approach to all three, introducing statistical ideas and fundamental ideas in computer science concurrently. We focus on a minimal set of core techniques that they apply to a vast range of real-world applications. A foundation in data science requires not only understanding statistical and computational techniques, but also recognizing how they apply to real scenarios." Uses Python 3.
Other tags: Statistics Textbooks, Beginner Statistics
Python for Informatics: Exploring Information
by Charles Severance (with material adapted from Allen Downey)
"The goal of this book is to provide an Informatics-oriented introduction to programming. The primary difference between a computer science approach and the Informatics approach taken in this book is a greater focus on using Python to solve data analysis problems common in the world of Informatics."
Effective Pandas
by Tom Augspurger
"This series is about how to make effective use of pandas, a data analysis library for the Python programming language. It's targeted at an intermediate level: people who have some experince with pandas, but are looking to improve." Based on series of posts found here: http://tomaugspurger.github.io/modern-1.html Payment optional.
Advanced Data Analysis from an Elementary Point of View
by Cosma Rohilla Shalizi
"This book began as the notes for 36-402, Advanced Data Analysis, at Carnegie Mellon University... ADA is a class in statistical methodology: its aim is to get students to understand something of the range of modern methods of data analysis, and of the considerations which go into choosing the right method for the job at hand (rather than distorting the problem to fit the methods you happen to know). Statistical theory is kept to a minimum, and largely introduced as needed. Since ADA is also a class in data analysis, there are a lot of assignments in which large, real data sets are analyzed with the new methods."
Other tags: Statistics Textbooks
An Introduction to Statistical Learning
by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
"This book provides an introduction to statistical learning methods. It is aimed for upper level undergraduate students, masters students and Ph.D. students in the non-mathematical sciences. The book also contains a number of R labs with detailed explanations on how to implement the various methods in real life settings, and should be a valuable resource for a practicing data scientist."
Other tags: Statistics Textbooks, Machine Learning Textbooks, Beginner Machine Learning
The Elements of Statistical Learning
by Trevor Hastie, Robert Tibshirani, Jerome Friedman
"During the past decade has been an explosion in computation and information technology. With it has come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data mining, machine learning, and bioinformatics. Many of these tools have common underpinnings but are often expressed with different terminology. This book descibes the important ideas in these areas in a common conceptual framework. While the approach is statistical, the emphasis is on concepts rather than mathematics. Many examples are given, with a liberal use of color graphics. It should be a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learning (prediction) to unsupervised learning. The many topics include neural networks, support vector machines, classification trees and boosting--the first comprehensive treatment of this topic in any book."
Other tags: Statistics Textbooks, Machine Learning Textbooks
Probabilistic Models in the Study of Language
by Roger Levy
"I'm in the process of writing a textbook on the topic of using probabilistic models in scientific work on language ranging from experimental data analysis to corpus work to cognitive modeling. The intended audience is graduate students in linguistics, psychology, cognitive science, and computer science who are interested in using probabilistic models to study language."
Other tags: Statistics Textbooks
R for Data Science
by Hadley Wickham and Garrett Grolemund
"This book will teach you how to do data science with R: You’ll learn how to get your data into R, get it into the most useful structure, transform it, visualise it and model it. In this book, you will find a practicum of skills for data science. Just as a chemist learns how to clean test tubes and stock a lab, you’ll learn how to clean data and draw plots—and many other things besides. These are the skills that allow data science to happen, and here you will find the best practices for doing each of these things with R. You’ll learn how to use the grammar of graphics, literate programming, and reproducible research to save time. You’ll also learn how to manage cognitive resources to facilitate discoveries when wrangling, visualising, and exploring data."
Other tags: Visualization Textbooks
Computational Statistics in Python
by Cliburn Chan (Duke University)
Thorough tutorial of Python from basics through scientific stack. Uses Python 3.
Other tags: Beginner Python
Python For SAS Users
by Randy Betancourt
Presentation of Python data manipulations with pandas and their SAS counterparts
Other tags: Beginner Python
Scipy lecture notes
by Chris Burns, Christophe Combelles, Emmanuelle Gouillart, and Gaël Varoquaux
"Tutorials on the scientific Python ecosystem: a quick introduction to central tools and techniques. The different chapters each correspond to a 1 to 2 hours course with increasing level of expertise, from beginner to expert."
Other tags: Beginner Python
How to Think Like a Computer Scientist: Interactive Edition
by Brad Miller and David Ranum
Interactive version of the book How to Think Like a Computer Scientist by Jeffrey Elkner, Allen B. Downey, and Chris Meyers
Other tags: Beginner Python
Official Python Documentation
by Python Software Foundation
Tutorials and Documentation for Beginner, Moderate, and Advanced Users. Available for Python 2 and 3.
Other tags: Beginner Python
Fundamentals of Python Programming
by Richard L. Halterman
Thorough book covering many aspects of software development in Python. Uses Python 3.
Tidy Data In Python
by Jean Francois Puget
Tutorial on preparing data sets using Pandas
Tidy Data in Python
by Jean-Nicholas Hould
Translating exmaples from Hadley Wickham's Tidy Data to Pandas
Piping in R and in Pandas
by Zygmunt Zając
Overview of ways to pipe in functions in Python.
12 Useful Pandas Techniques in Python for Data Manipulation
by Aarshay Jain
"This article focuses on providing 12 ways for data manipulation in Python. I've also shared some tips & tricks which will allow you to work faster."
Using pandas and scikit-learn for classification tasks
by Skipper Seabold
Example of using Pandas and scikit-learn to classify whether a person makes over 50K a year.
Other tags: Machine Learning Tutorials
Things in Pandas I Wish I'd Known Earlier
by Sebastian Raschka
"This is just a small but growing collection of pandas snippets that I find occasionally and particularly useful"
Pandas Pivot Table Explained
by Chris Moffitt
"This article will focus on explaining the pandas pivot_table function and how to use it for your data analysis."
SQL for pandas DataFrames
by yhat
"This is a post about pandasql, a library we're open-sourcing for Python which lets you use SQL on pandas dataframes."
Modern Pandas
by Tom Augspurger
Series of posts covering Indexing, Method Chaining, Indexes, Fast Pandas, Tidy Data, Visualization, and Time Series
Pandas cookbook
by Julia Evans
"The goal of this cookbook is to give you some concrete examples for getting started with pandas. The docs are really comprehensive. However, I've often had people tell me that they have some trouble getting started, so these are examples with real-world data, and all the bugs and weirdness that entails."
Python Pandas Functions in Parallel
by Jay Feng
Demonstration of how to apply a function to pandas in parallel.
Using scikit-learn Pipelines and FeatureUnions
by Zac Stewart
"The following is a moderately detailed explanation and a few examples of how I use pipelining when I work on competitions."
Other tags: Machine Learning Tutorials
Document Classification with scikit-learn
by Zac Stewart
"To demonstrate text classification with scikit-learn, we're going to build a simple spam filter. While the filters in production for services like Gmail are vastly more sophisticated, the model we'll have by the end of this tutorial is effective, and surprisingly accurate."
Other tags: Machine Learning Tutorials, Spam Filter
Out-of-core Learning and Model Persistence using scikit-learn
by Sebastian Raschka
"When we are applying machine learning algorithms to real-world applications, our computer hardware often still constitutes the major bottleneck of the learning process. Of course, we all have access to supercomputers, Amazon EC2, Apache Spark, etc. However, out-of-core learning via Stochastic Gradient Descent can still be attractive if we'd want to update our model on-the-fly ('online-learning'), and in this notebook, I want to provide some examples of how we can implement an 'out-of-core' approach using scikit-learn. I compiled the following code examples for personal reference, and I don't intend it to be a comprehensive reference for the underlying theory, but nonetheless, I decided to share it since it may be useful to one or the other!"
Other tags: Machine Learning Tutorials, Sentiment Analysis
Python: scikit-learn – Training a classifier with non numeric features
by Mark Needham
Tutorial on how to convert text data for training with a scikit-learn RandomForest Classifier
Other tags: Machine Learning Tutorials
Implementing a Weighted Majority Rule Ensemble Classifier
by Sebastian Raschka
"Here, I want to present a simple and conservative approach of implementing a weighted majority rule ensemble classifier in scikit-learn that yielded remarkably good results when I tried it in a kaggle competition."
Other tags: Machine Learning Tutorials
Data Science and (Unsupervised) Machine Learning with scikit-learn
by Nicolas Kruchten
"A different way to look at graph analysis and visualization, as an introduction to a few cool algorithms: Truncated SVD, K-Means and t-SNE with a practical walkthrough using scikit-learn and friends numpy and bokeh, and finishing off with some more general commentary on this approach to data analysis."
Other tags: Machine Learning Tutorials, Document Classification
Classifier calibration with Platt's scaling and isotonic regression
by Zygmunt Zając
"Calibration is applicable in case a classifier outputs probabilities. Apparently some classifiers have their typical quirks - for example, they say boosted trees and SVM tend to predict probabilities conservatively, meaning closer to mid-range than to extremes. If your metric cares about exact probabilities, like logarithmic loss does, you can calibrate the classifier, that is post-process the predictions to get better estimates."
Other tags: Machine Learning Tutorials
PyCon 2015 Introduction to Scikit-Learn tutorial
by Jake Vanderplas
"Statistics has the reputation of being difficult to understand, but using some simple Python skills it can be made much more intuitive. This talk will cover several sampling-based approaches to solving statistical problems, and show you that if you can write a for-loop, you can do statistics."
Other tags: Machine Learning Tutorials
Probabilistic Programming and Bayesian Methods for Hackers
by Cam Davidson-Pilon
"Bayesian Methods for Hackers is designed as an introduction to Bayesian inference from a computational/understanding-first, and mathematics-second, point of view. Of course as an introductory book, we can only leave it at that: an introductory book. For the mathematically trained, they may cure the curiosity this text generates with other texts designed with mathematical analysis in mind. For the enthusiast with less mathematical-background, or one who is not interested in the mathematics but simply the practice of Bayesian methods, this text should be sufficient and entertaining."
Other tags: Statistics Tutorials
CS231n: Convolutional Neural Networks for Visual Recognition
by Stanford University
"This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification." Course includes a Python tutorial. Uses Python 2.
Other tags: Deep Learning Lectures, Image Classification
Python Data Science Tutorials
by Ujjwal Karn
"This repo contains a curated list of Python tutorials for Data Science, NLP and Machine Learning."
Other tags: Machine Learning Tutorials
Machine Learning is Fun
by Adam Geitgey in Python
Series of posts demonstrating various machine learning tasks using Python. Examples include recurrent neural networks, convoluatoinal neural networks, face recognition, language translation, and speech recognition.
Other tags: Machine Learning Tutorials
Awesome TensorFlow
by jtoy
A curated list of awesome TensorFlow experiments, libraries, and projects.
Other tags: Deep Learning Tutorials
Not another MNIST tutorial with TensorFlow
by Justin Francis
"Back when TensorFlow was released to the public in November 2015, I remember following TensorFlow’s beginner MNIST tutorial. I blindly copied and pasted all this code into my terminal and some numbers popped out as they should have. I thought, OK, I know there is something amazing happening here, why can I not see it? My goal was to make a MNIST tutorial that was both interactive and visual, and hopefully will teach you a thing or two that others just assume you know."
Other tags: Deep Learning Tutorials, Image Classification
Will it Python? Machine Learning for Hackers
by Carl Vogel
Python implementations of examples from Machine Learning for Hackers. Uses Python 2.
Other tags: Machine Learning Tutorials
A Complete Tutorial to Learn Data Science with Python from Scratch
by Kunal Jain
Covers basics through predictive modeling in Python 2.
Other tags: Beginner Python
Ultimate guide for Data Exploration in Python using NumPy, Matplotlib and Pandas
by Kunal Jain
"In this guide, I will use NumPy, Matplotlib, Seaborn and Pandas to perform data exploration." Uses Python 2.
Allen Downey - Computational Statistics - PyCon 2016
by Allen Downey
Allen Downey's PyCon tutorial for computational statistics in Python.
Other tags: Statistics Tutorials
Allen Downey - Bayesian statistics made simple - PyCon 2016
by Allen Downey
Allen Downey's PyCon tutorial for Bayesian Statistics in Python.
Other tags: Statistics Tutorials
Diving into Machine Learning through TensorFlow - PyCon 2016
by Julia Ferraioli, Amy Unruh, Eli Bixby
"Machine learning can be an intimidating subject. In this session, we'll get practical, hands-on experience with core concepts in machine learning with TensorFlow, an open source deep learning library. We’ll introduce the basics of TensorFlow, including how to ingest and prepare raw data for use, run a variety of algorithms to gain insight from the data, and have some fun with visualization."
Other tags: Deep Learning Tutorials
Exploring Seaborn and Pandas based plot types in HoloViews
by Philipp Rudiger
"In this notebook we'll look at interfacing between the composability and ability to generate complex visualizations that HoloViews provides and the great looking plots incorporated in the seaborn library. Along the way we'll explore how to wrap different types of data in a number of Seaborn View types, including: Distribution Views, Bivariate Views, TimeSeries Views"
Other tags: Visualization Tutorials
A Primer on Bayesian Multilevel Modeling using PyStan
by Chris Fonnesbeck
A worked exmaple of Hierarchical Modeling using pystan
Other tags: Statistics Tutorials
Introduction to Bayesian Inference
by Aaron Kramer
"This post is an introduction to Bayesian probability and inference. We will discuss the intuition behind these concepts, and provide some examples written in Python to help you get started. To get the most out of this introduction, the reader should have a basic understanding of statistics and probability, as well as some experience with Python. The examples use the Python package pymc3."
Other tags: Statistics Tutorials
Introduction to Scikit Flow
by Yuan Tang
"Scikit Flow is a simplified interface for TensorFlow, to get people started on predictive analytics and data mining. It helps smooth the transition from the Scikit-learn world of one-liner machine learning into the more open world of building different shapes of ML models. You can start by using fit/predict and slide into TensorFlow APIs as you are getting comfortable. It’s Scikit-learn compatible so you can also benefit from Scikit-learn features like GridSearch and Pipeline."
Other tags: Deep Learning Tutorials
ROC Curves in Python and R
by yhat
"Ever heard people at your office talking about AUC, ROC, or TPR but been too shy to ask what the heck they're talking about? Well lucky for you we're going to be diving into the wonderful world of binary classification evaluation today. In particular, we'll be discussing ROC curves."
Other tags: Machine Learning Tutorials, R Tutorials
Random forest interpretation with scikit-learn
by Ando Saabas
Example of using package treeinterpreter for insight into a scikit-learn RandomForest
Other tags: Machine Learning Tutorials
Pattern Classification
by Sebastian Raschka
A collection of tutorials and examples for solving and understanding machine learning and pattern classification tasks
Other tags: Machine Learning Tutorials
Deep Reinforcement Learning: Pong from Pixels
by Andrej Karpathy
Tutorial for training a policy network to play Pong
Other tags: Reinforcement Learning Tutorials
Deep Deterministic Policy Gradients in TensorFlow
by
A Policy Gradient tutorial to solve the Pendulum environment in OpenAI gym
Other tags: Reinforcement Learning Tutorials
Nonparametric Bayesian Regression with Gaussian Processes
by Austin Rochford
"In this post, we’ll explore a Bayesian approach to nonparametric regression, which allows us to model complex functions with relatively weak assumptions." Extends scikit-learn.
Other tags: Machine Learning Tutorials
Frequentist inference only seems easy
by John Mount
"In this article we are going to work a simple (but important) problem where (for once) the Bayesian calculations are in fact easier than the frequentist ones."
Other tags: Statistics Tutorials
Seventeen Ways to Map Data in Kaggle Kernels: Tutorials for Python and R Users
by Megan Risdal
"In this blog post, I feature some great user kernels as mini-tutorials for getting started with mapping using datasets published on Kaggle. You’ll learn about several ways to wrangle and visualize geospatial data in Python and R including real code examples. I've also included resources so you can learn more about each of the packages highlighted in each tutorial as well as further user analyses for more inspiration."
Other tags: R Tutorials, Visualization Tutorials
Frequentism and Bayesianism
by Jake Vanderplas
Part I: A Practical Introduction
Part II: When Results Differ
Part III: Confidence, Credibility, and why Frequentism and Science do not Mix
Part IV: How to be a Bayesian in Python
Part V: Model Selection
Other tags: Statistics Tutorials
Using Python Subprocess To Drive Machine Learning Packages
by Jean Francois Puget
Description of how to use the Python subprocess package to use command line applications within a Python environment.
An Introduction to Stock Market Data Analysis with Python
by Curtis Miller
"In these posts, I will discuss basics such as obtaining the data from Yahoo! Finance using pandas, visualizing stock data, moving averages, developing a moving-average crossover strategy, backtesting, and benchmarking. The final post will include practice problems. This first post discusses topics up to introducing moving averages." Part 2 is here.
Other tags: Finance
Building a Financial Model with Pandas - Version 2
by Chris Mofitt
Builds an amortization schedule in Pandas.
Other tags: Finance
A/B Testing with Hierarchical Models in Python
by Manojit Nandi
"In this post, I discuss a method for A/B testing using Beta-Binomial Hierarchical models to correct for a common pitfall when testing multiple hypotheses. I will compare it to the classical method of using Bernoulli models for p-value, and cover other advantages hierarchical models have over the classical model." Uses pymc in Python 2.
Other tags: Statistics Tutorials, A/B Testing
Analyze Your Experiment with a Multilevel Logistic Regression using PyMC3
by Dan Saber
Example of A/B testing with hierarchical models using pymc3.
Other tags: Statistics Tutorials, A/B Testing
A/B Testing Statistics
by Slater Stich
Demonstration of Hierarchical Models in A/B tests using pymc.
Other tags: Statistics Tutorials, A/B Testing
Bayesian Data Analysis Python Demos
by Tuomas Sivula
"This repository contains some Python demos for the book Bayesian Data Analysis, 3rd ed by Gelman, Carlin, Stern, Dunson, Vehtari, and Rubin (BDA3)."
Other tags: Statistics Tutorials
Quick-R
by Robert I. Kabacoff
"R is an elegant and comprehensive statistical and graphical programming language. Unfortunately, it can also have a steep learning curve. I created this website for both current R users, and experienced users of other statistical packages (e.g., SAS, SPSS, Stata) who would like to transition to R. My goal is to help you quickly access this language in your work." See Basic Graphs and Advanced Graphs for visualization examples.
Other tags: Visualization Tutorials
Tidy Data
by Hadley Wickham
"A huge amount of effort is spent cleaning data to get it ready for analysis, but there has been little research on how to make data cleaning as easy and effective as possible. This paper tackles a small, but important, component of data cleaning: data tidying. Tidy datasets are easy to manipulate, model and visualise, and have a specific structure: each variable is a column, each observation is a row, and each type of observational unit is a table. This framework makes it easy to tidy messy datasets because only a small set of tools are needed to deal with a wide range of un-tidy datasets. This structure also makes it easier to develop tidy tools for data analysis, tools that both input and output tidy datasets. The advantages of a consistent data structure and matching tools are demonstrated with a case study free from mundane data manipulation chores."
Guide to Model Stacking (i.e. Meta Ensembling)
by Ben Gorman
"Stacking (also called meta ensembling) is a model ensembling technique used to combine information from multiple predictive models to generate a new model. Often times the stacked model (also called 2nd-level model) will outperform each of the individual models due its smoothing nature and ability to highlight each base model where it performs best and discredit each base model where it performs poorly. For this reason, stacking is most effective when the base models are significantly different. Here I provide a simple example and guide on how stacking is most often implemented in practice." Link to github repo with R code is provided.
Other tags: Machine Learning Tutorials
ROC Curves in Python and R
by yhat
"Ever heard people at your office talking about AUC, ROC, or TPR but been too shy to ask what the heck they're talking about? Well lucky for you we're going to be diving into the wonderful world of binary classification evaluation today. In particular, we'll be discussing ROC curves."
Other tags: Machine Learning Tutorials, Tutorials in Python
GAM: The Predictive Modeling Silver Bullet
by Kim Larsen
"Despite its lack of popularity in the data science community, GAM is a powerful and yet simple technique. Hence, the purpose of this post is to convince more data scientists to use GAM. Of course, GAM is no silver bullet, but it is a technique you should add to your arsenal. Here are three key reasons: Easy to interpret; Flexible predictor functions can uncover hidden patterns in the data; Regularization of predictor functions helps avoid overfitting."
Other tags: Statistics Tutorials
Bayesian Bootstrap
by Rasmus Baath
Series of posts on the Bayesian Bootstrap.
The non-parametric bootstrap as a Bayesian model
Easy Bayesian Bootstrap in R
bayesboot: An R packages
Presentation of bayesboot
Other tags: Statistics Tutorials
Bayesian Optimization of Machine Learning Models
by Max Kuhn
"I'll demonstrate how Bayesian optimization and Gaussian process models can be used as an alternative."
Other tags: Machine Learning Tutorials
A demonstration of vtreat data preparation
by John Mount
"This article is a demonstration the use of the R vtreat variable preparation package followed by caret controlled training."
Other tags: Machine Learning Tutorials
Principal Components Regression
by Nina Zumel
Part I: The Standard Method
Part II: Y-Aware Methods
Part III: Picking the Number of Components
Other tags: Statistics Tutorials
A clear picture of power and significance in A/B tests
by John Mount
Sample size calculation and visualization for power and significance specifications.
Other tags: Statistics Misc
The Extra Step: Graphs for Communication versus Exploration
by Nina Zumel
Tutorial for graphing with ggplot2 in R
Other tags: Visualization Tutorials
Feature Selection with caret's Genetic Algorithm Option
by Joseph Rickert
"Performing feature selection with GAs requires conceptualizing the process of feature selection as an optimization problem and then mapping it to the genetic framework of random variation and natural selection."
Other tags: Machine Learning Tutorials
Confidence Intervals for Random Forests
by Joseph Rickert
"Here, I fit a randomForest model to eight features from the UCI MPG data set and use the randomForestInfJack() function to calculate the infinitesimal Jackknife estimator."
Other tags: Machine Learning Tutorials
Beginner's guide to R: Introduction
by Sharon Machlis
"Our aim here isn't R mastery, but giving you a path to start using R for basic data work: Extracting key statistics out of a data set, exploring a data set with basic graphics and reshaping data to make it easier to analyze."
Other tags: Beginner R
Advanced Beginner's Guide to R
by Sharon Machlis
"Learn how to wrangle data, including using R's transform, apply and mapply functions, along with sorting, grouping by date range and reshaping. We also take you through some dplyr basics."
Other tags: Beginner R
An Introduction on How to Make Beautiful Charts With R and ggplot2
by Max Woolf
Tutorial for making nicely styled charts with R and ggplot2.
Other tags: Visualization Tutorials
Seventeen Ways to Map Data in Kaggle Kernels: Tutorials for Python and R Users
by Megan Risdal
"In this blog post, I feature some great user kernels as mini-tutorials for getting started with mapping using datasets published on Kaggle. You’ll learn about several ways to wrangle and visualize geospatial data in Python and R including real code examples. I've also included resources so you can learn more about each of the packages highlighted in each tutorial as well as further user analyses for more inspiration."
Other tags: Tutorials in Python, Visualization Tutorials
How to Visualize New York City Using Taxi Location Data and ggplot2
by Max Woolf
"Here are some tips and tutorials on how to make such visualizations."
Other tags: Visualization Tutorials
Unleash the power of your multi-core CPU with R
by Krzysztof Osiewalski
"In this article we give some hints on how to use your machine in most efficient way while programming in R and when this can be achieved."
Sorry ARIMA, but I’m Going Bayesian
by Kim Larsen
Tutorial on using Bayesian structural time series models.
Other tags: Statistics Tutorials, Forecasting
Hierarchical Partial Pooling for Repeated Binary Trials
by Bob Carpenter, Jonah Gabry and Ben Goodrich
"This vignette illustrates the effects on posterior inference of pooling data (a.k.a sharing strength) across units for repeated binary trial data. It provides R code to fit and check predictive models for three situations: (a) complete pooling, which assumes each unit is the same, (b) no pooling, which assumes the units are unrelated, and (c) partial pooling, where the similarity among the units is estimated. The note explains with working examples how to (i) fit the models using rstanarm and plot the results, (ii) estimate event probabilities, (iii) evaluate posterior predictive densities to evaluate model predictions on held-out data, (iv) rank units by chance of success, (v) perform multiple comparisons in several settings, (vi) replicate new data for posterior pp-values, and (vii) perform graphical posterior predictive checks."
Other tags: Statistics Tutorials
Bayesian Data Analysis R Demos
by Markus Paasiniemi
"This repository contains some R demos for the book Bayesian Data Analysis, 3rd ed by Gelman, Carlin, Stern, Dunson, Vehtari, and Rubin (BDA3)."
Other tags: Statistics Tutorials
Resources to help you learn and use R
by UCLA
Resources to help you learn and use R
R: Parallel Computing In 5 Minutes (with foreach and doParallel)
by Adam Harasimowicz
"Parallel computing is easy to use in R thanks to packages like doParallel. However, before we decide to parallelize our code, still we should remember that there is a trade-off between simplicity and performance. So if your script runs a few seconds, probably it's not worth to bother yourself. Yet if your analysis are computationally heavy, you can often save hours or even days. In such case, it's reasonable to sacrifice code readability and clear error messages to save time."
Introduction to Computer Science and Programming Using Python
by Eric Grimson, John Guttag, and Ana Bell (MIT)
"What you'll learn: A Notion of computation, The Python programming language, Some simple algorithms, Testing and debugging, An informal introduction to algorithmic complexity, Data structures"
Other tags: Beginner Python
Introduction to Computational Thinking and Data Science
by Eric Grimson, John Guttag, and Ana Bell, MIT
"6.00.2x will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving . This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity. You will spend a considerable amount of time writing programs to implement the concepts covered in the course. For example, you will write a program that will simulate a robot vacuum cleaning a room or will model the population dynamics of viruses replicating and drug treatments in a patient's body."
Introduction to Python for Data Science
by Filip Schouwenaars, Microsoft
"In this practical course, you will start from the very beginning, with basic arithmetic and variables, and learn how to handle data structures, such as Python lists, Numpy arrays, and Pandas DataFrames. Along the way, you'll learn about Python functions and control flow. Plus, you'll look at the world of data visualizations with Python and create your own stunning visualizations based on real data."
Other tags: Beginner Python
Programming with Python for Data Science
by Authman Apatira, Microsoft
"In this practical computer science course, you will build on your existing Python skills and learn how to manipulate data using Pandas, and build machine learning solutions in Python using the scikit-learn package."
Other tags: Machine Learning Courses
Introduction to R for Data Science
by Filip Schouwenaars, Microsoft
"This introduction to R programming course will help you master the basics of R. In seven sections, you will cover its basic syntax, making you ready to undertake your own first data analysis using R. Starting from variables and basic operations, you will eventually learn how to handle data structures such as vectors, matrices, data frames and lists. In the final section, you will dive deeper into the graphical capabilities of R, and create your own stunning data visualizations. No prior knowledge in programming or data science is required."
Other tags: Beginner R
Programming with R for Data Science
by Anders Stockmarr
"In this course you will learn all you need to get up to speed with programming in R. Explore R data structures and syntaxes, see how to read and write data from a local file to a cloud-hosted database, work with data, get summaries, and transform them to fit your needs. Plus, find out how to perform predictive analytics using R and how to create visualizations using the popular ggplot2 package."
Other tags: Machine Learning Courses
Statistical Learning
by Trevor Hastie and Rob Tibshirani, Stanford University
"This is an introductory-level course in supervised learning, with a focus on regression and classification methods. The syllabus includes: linear and polynomial regression, logistic regression and linear discriminant analysis; cross-validation and the bootstrap, model selection and regularization methods (ridge and lasso); nonlinear models, splines and generalized additive models; tree-based methods, random forests and boosting; support-vector machines. Some unsupervised learning methods are discussed: principal components and clustering (k-means and hierarchical)."
Other tags: Statistics Courses, Machine Learning Courses
Data Analysis and Visualization Using R
by David Robinson and Neo Christopher Chung (Princeton University)
"This course combines video, HTML and interactive components to teach the statistical programming language R."
Other tags: Beginner R
Introduction to Apache Spark
by Anthony D. Joseph, UC Berkeley and Jon Bates, Databricks
"This statistics and data analysis course will teach you the basics of working with Spark and will provide you with the necessary foundation for diving deeper into Spark. You'll learn about Spark's architecture and programming model, including commonly used APIs. After completing this course, you'll be able to write and debug basic Spark applications. This course will also explain how to use Spark's web user interface (UI), how to recognize common coding errors, and how to proactively prevent errors. The focus of this course will be Spark Core and Spark SQL."
Distributed Machine Learning with Apache Spark
by Ameet Talwalkar, UCLA and Jon Bates, Databricks
"This statistics and data analysis course introduces the underlying statistical and algorithmic principles required to develop scalable real-world machine learning pipelines. We present an integrated view of data processing by highlighting the various components of these pipelines, including exploratory data analysis, feature extraction, supervised learning, and model evaluation. You will gain hands-on experience applying these principles using Spark, a cluster computing system well-suited for large-scale machine learning tasks, and its packages spark.ml and spark.mllib. You will implement distributed algorithms for fundamental statistical models (linear regression, logistic regression, principal component analysis) while tackling key problems from domains such as online advertising and cognitive neuroscience."
Other tags: Machine Learning Courses
Big Data Analysis with Apache Spark
by Anthony D. Joseph, UC Berkeley and Jon Bates, Databricks
"This statistics and data analysis course will attempt to articulate the expected output of data scientists and then teach students how to use PySpark (part of Spark) to deliver against these expectations. The course assignments include log mining, textual entity recognition, and collaborative filtering exercises that teach students how to manipulate data sets using parallel processing with PySpark."
Advanced Apache Spark for Data Science and Data Engineering
by Anthony D. Joseph, UC Berkeley and Jon Bates, Databricks
"Gain a deeper understanding of Spark by learning about its APIs, architecture, and common use cases. This statistics and data analysis course will cover material relevant to both data engineers and data scientists. You'll learn how Spark efficiently transfers data across the network via its shuffle, details of memory management, optimizations to reduce compute costs, and more. Learners will see several use cases for Spark and will work to solve a variety of real-world problems using public datasets. After taking this course, you should have a thorough understanding of how Spark works and how you can best utilize its APIs to write efficient, scalable code. You'll also learn about a wide variety of Spark's APIs, including the APIs in Spark Streaming. "
Advanced Distributed Machine Learning with Apache Spark
by Ameet Talwalkar, UCLA and Jon Bates, Databricks
"Building on the core ideas presented in Distributed Machine Learning with Spark, this course covers advanced topics for training and deploying large-scale learning pipelines. You will study state-of-the-art distributed algorithms for collaborative filtering, ensemble methods (e.g., random forests), clustering and topic modeling, with a focus on model parallelism and the crucial tradeoffs between computation and communication."
Other tags: Machine Learning Courses
Data Science
by Joe Blitzstein, Hanspeter Pfister, Verena Kaynig-Fittkau (Harvard University)
Lectures from Harvard Extension School's Data Science class
Other tags: Machine Learning Lectures
John D. Cook
by John D. Cook
A blog about applied math, statistics, and software development.
Other tags: Statistics Blogs
Win-Vector
by John Mount and Nina Zumel
The Win-Vector LLC data science blog
Other tags: Statistics Blogs, Machine Learning Blogs
Talk Python to Me
by Michael Kennedy
"The show covers a wide array of Python topics as well as many related topics (e.g. MongoDB, AngularJS, DevOps)."
Podcast.__init__
by Tobias Macey and Chris Patti
"Podcast.init is a show about the Python programming language and the awesome community that has grown up around it. Our goal is to share discussions on subjects ranging from interesting and useful tools and products to social and ethical issues such as diversity and inclusiveness in tech."
scikit-learn
"Simple and efficient tools for data mining and data analysis."
Other tags: Machine Learning Packages
pandas
"pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language."
Blaze
"The Blaze Ecosystem provides Python users high-level access to efficient computation on inconveniently large data. Blaze can refer to both a particular library as well as an ecosystem of related projects that have spun off of Blaze development."
Dask
"Dask is a flexible parallel computing library for analytic computing.
Dask is composed of two components:
Dynamic task scheduling optimized for computation. This is similar to Airflow, Luigi, Celery, or Make, but optimized for interactive computational workloads.
'Big Data' collections like parallel arrays, dataframes, and lists that extend common interfaces like NumPy, Pandas, or Python iterators to larger-than-memory or distributed environments. These parallel collections run on top of the dynamic task schedulers."
Statsmodels
"Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator."
Other tags: Statistics Packages
NumPy
"NumPy is the fundamental package for scientific computing with Python. It contains among other things: a powerful N-dimensional array object; sophisticated (broadcasting) functions; tools for integrating C/C++ and Fortran code; useful linear algebra, Fourier transform, and random number capabilities."
Other tags: Statistics Packages
SciPy
"It provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization."
Other tags: Statistics Packages
matplotlib
"matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell..., web application servers, and six graphical user interface toolkits."
Other tags: Visualization Packages
SymPy
"SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python."
Other tags: Math Packages
Seaborn
"Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics."
Other tags: Visualization Packages
Bokeh
"Bokeh is a Python interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of novel graphics in the style of D3.js, and to extend this capability with high-performance interactivity over very large or streaming datasets. Bokeh can help anyone who would like to quickly and easily create interactive plots, dashboards, and data applications."
Other tags: Visualization Packages
ggplot
"ggplot is a plotting system for Python based on R's ggplot2 and the Grammar of Graphics. It is built for making profressional looking, plots quickly with minimal code."
Other tags: Visualization Packages
TensorFlow
"TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization. The system is designed to facilitate research in machine learning, and to make it quick and easy to transition from research prototype to production system."
Other tags: Deep Learning Packages
gym
"OpenAI Gym is a toolkit for developing and comparing reinforcement learning algorithms. It makes no assumptions about the structure of your agent, and is compatible with any numerical computation library, such as TensorFlow or Theano. You can use it from Python code, and soon from other languages."
Other tags: Reinforcement Learning Packages
universe
"a software platform for measuring and training an AI's general intelligence across the world's supply of games, websites and other applications."
Other tags: Reinforcement Learning Packages
PyMC3
"PyMC3 is a python module for Bayesian statistical modeling and model fitting which focuses on advanced Markov chain Monte Carlo fitting algorithms. Its flexibility and extensibility make it applicable to a large suite of problems."
Other tags: Statistics Packages
PyStan
"PyStan provides an interface to Stan, a package for Bayesian inference using the No-U-Turn sampler, a variant of Hamiltonian Monte Carlo."
Other tags: Statistics Packages
NLTK
"NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength NLP libraries, and an active discussion forum."
Other tags: Machine Learning Packages
spaCy
"spaCy helps you write programs that do clever things with text. You give it a string of characters, it gives you an object that provides multiple useful views of its meaning and linguistic structure. Specifically, spaCy features a high performance tokenizer, part-of-speech tagger, named entity recognizer and syntactic dependency parser, with built-in support for word vectors. All of the functionality is united behind a clean high-level Python API, that makes it easy to use the different annotations together."
Other tags: Machine Learning Packages
gensim
"topic modelling for humans"
Other tags: Machine Learning Packages
FuzzyWuzzy
"Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package."
Other tags: Machine Learning Packages
OpenCV-Python
"OpenCV is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications."
Other tags: Machine Learning Packages
Simple CV
"SimpleCV is an open source framework for building computer vision applications. With it, you get access to several high-powered computer vision libraries such as OpenCV – without having to first learn about bit depths, file formats, color spaces, buffer management, eigenvalues, or matrix versus bitmap storage. This is computer vision made easy."
Other tags: Machine Learning Packages
scikit-image
"scikit-image is a collection of algorithms for image processing. It is available free of charge and free of restriction. We pride ourselves on high-quality, peer-reviewed code, written by an active community of volunteers."
Other tags: Machine Learning Packages
Theano
"Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently."
Other tags: Deep Learning Packages
Keras
"Keras is a minimalist, highly modular neural networks library, written in Python and capable of running on top of either TensorFlow or Theano. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research."
Other tags: Deep Learning Packages
TFLearn
"TFlearn is a modular and transparent deep learning library built on top of Tensorflow. It was designed to provide a higher-level API to TensorFlow in order to facilitate and speed-up experimentations, while remaining fully transparent and compatible with it."
Other tags: Machine Learning Packages
XGBoost (Python)
An optimized, flexible, portable, regression and classification gradient boosting package that supports distributed training.
Other tags: Machine Learning Packages
tsfresh
"tsfresh is a python package that is used to automatically calculate a huge number of time series characteristics, the so called features. Further the package contains methods to evaluate the explaining power and importance of such characteristics for regression or classification tasks."
Other tags: Machine Learning Packages
Lifelines
"lifelines is a implementation of survival analysis in Python," built on top of pandas
Other tags: Statistics Packages
airflow
"Airflow is a platform to programmatically author, schedule and monitor workflows.
When workflows are defined as code, they become more maintainable, versionable, testable, and collaborative.
Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed."
luigi
"Luigi is a Python (2.7, 3.3, 3.4, 3.5) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more."
Awesome Python
by Vinta
A curated list of awesome Python frameworks, libraries, software and resources.
Awesome Machine Learning
by Joseph Misiti
A curated list of awesome machine learning frameworks, libraries and software (by language).
Other tags: R Packages, Machine Learning Packages
XGBoost (R)
An optimized, flexible, portable, regression and classification gradient boosting package that supports distributed training.
Other tags: Machine Learning Packages
caret
"The caret package (short for Classification And REgression Training) is a set of functions that attempt to streamline the process for creating predictive models. The package contains tools for: data splitting; pre-processing; feature selection; model tuning using resampling; variable importance estimation."
Other tags: Machine Learning Packages
vtreat
"A data.frame processor/conditioner that prepares real-world data for predictive modeling in a statistically sound manner. Prepares variables so that data has fewer exceptional cases, making it easier to safely use models in production. Common problems 'vtreat' defends against: Inf, NA, too many categorical levels, rare categorical levels, new categorical levels (levels seen during application, but not during training)."
Other tags: Statistics Packages
Lattice
"A powerful and elegant high-level data visualization system inspired by Trellis graphics, with an emphasis on multivariate data. Lattice is sufficient for typical graphics needs, and is also flexible enough to handle most nonstandard requirements. See ?Lattice for an introduction."
Other tags: Visualization Packages
ggplot2
"ggplot2 is a plotting system for R, based on the grammar of graphics, which tries to take the good parts of base and lattice graphics and none of the bad parts. It takes care of many of the fiddly details that make plotting a hassle (like drawing legends) as well as providing a powerful model of graphics that makes it easy to produce complex multi-layered graphics."
Other tags: Visualization Packages
MASS
"Functions and datasets to support Venables and Ripley, 'Modern Applied Statistics with S' (4th edition, 2002)."
Other tags: Statistics Packages
plyr
"A set of tools that solves a common set of problems: you need to break a big problem down into manageable pieces, operate on each piece and then put all the pieces back together. For example, you might want to fit a model to each spatial location or time point in your study, summarise data by panels or collapse high-dimensional arrays to simpler summary statistics. The development of 'plyr' has been generously supported by 'Becton Dickinson'."
dplyr
"A fast, consistent tool for working with data frame like objects, both in memory and out of memory."
reshape2
"Flexibly restructure and aggregate data using just two functions: melt and dcast (or acast)."
Awesome R
by qinwf
A curated list of awesome R packages and tools.
Awesome Machine Learning
by Joseph Misiti
A curated list of awesome machine learning frameworks, libraries and software (by language).
Other tags: Python Packages, Machine Learning Packages
The R Journal
by The R Project for Statistical Computing
"The R Journal is the open access, refereed journal of the R project for statistical computing. It features short to medium length articles covering topics that might be of interest to users or developers of R, including: short introductions to R extension packages; hints for programming in R; hints for newcomers explaining aspects of R that might not be so obvious from reading the manuals and FAQs; demonstrating how a new or existing technique can be applied in an area of current interest using R, providing a fresh view of such analyses in R that is of benefit beyond the specific application."
Python For Data Science Cheat Sheet
by Data Camp
One page reference for pandas
RegEx Cheat Sheet
by OverAPI.com
Quick reference for regular expressions
Predictive Model Deployment with Spark
by Lei Gong
"However, deploying predictive model to a production environment, or serving the model in production, is a bit more complicated. Its architecture largely depends on how the model will be used. At very high level, predictive models often are used to score some instances, e.g. the risk score of fraud transaction or the likelihood of clicking on ads. This scoring operation can be offline or online, depending on its application. Offline scoring means the model doesn’t needs to score an instance in real-time and online scoring means the model is required to score with real-time input and low-latency. In this post, I am going to touch on a few common architectures and their use cases.
Follow up post about continuous deployment aspects here."
Other tags: Machine Learning Misc