A conceptual guide

Gaussian processes (GPs) are a flexible class of nonparametric machine learning models commonly used for modeling spatial and time series data. A common application of GPs is regression. For example, given incomplete geographical weather data, such as temperature or humidity, how can one recover values at unobserved locations? If one has good reason to believe the data is normally distributed, then a using a GP model could be a judicious choice. In what follows, we introduce the mechanics behind the GP model and then illustrate its use in recovering missing data.

The GP Model

Formally, a GP is a stochastic process, or a…

A Case Study using Bitcoin, Ethereum, Cardano, and more.

Covariances between cryptocurrencies and defi tokens. Created by author using PyPortfolioOpt.


The Kelly criterion is a well-known strategy for sizing bets to maximize long-run expected log wealth. It is widely applied to sports betting and casino gambling. Most sources provide coverage only for the single-asset case, however. We discuss the Kelly criterion for balancing a portfolio with multiple assets — taking into account yield rates and incorporation of risky and non-risky assets — and apply the strategy to a basket of popular cryptocurrencies.


The central object of study in classical Markowitz portfolio theory is the so-called efficient frontier. Points on the frontier (corresponding to portfolio allocations) are optimal in the sense…

Image by Author

The definitive mathematical guide.

Ordinary least squares regression is a standard technique everyone should be familiar with. We motivate the linear model from the perspective of the Gauss-Markov Theorem, discern between the overdetermined and underdetermined cases, and apply OLS regression to a wine quality dataset.


  1. The Linear Model
  2. The Gauss Markov Theorem
  3. The Underdetermined and Overdetermined Case
  4. Analyzing the Red Wines Dataset
  5. Summary

The Linear Model

The linear model assumes the following ansatz:

Photo by jplenio on Unsplash

Making the most of your compute power.

Whether you use scripting languages like Matlab and R, or high-level languages like Python, Java, or C++, optimizing for performance is a must. We review tricks for speeding up your program that every coder should know.

1. Parallelization

Parallelization is one of the most common, but oft-forgotten ways to increase the throughput of your program. Depending on the number of cores or logical processors your machine has, parallelizing your code can yield tangible to substantial computational savings. …

Photo by NASA on Unsplash

Told through the lens of Julia

Julia is one of my all-time favorite programming languages. Not only is it easy to pick up like Python, but it also has the speed of C. It is said, however, that Julia users come for the performance and stay for multiple dispatch. But what is this curious feature, and what makes it appealing for newcomers and veterans alike?

How does Multiple Dispatch Work?

We begin by recollecting what Julia’s dynamic type system looks like. Julia types can be classified as concrete or abstract (there’s also composite and parametric, but let’s forget about those for the time being). …

Alex Powell

PhD student in data and information science. Interested in software systems and technical computing.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store