{{ message }}

Instantly share code, notes, and snippets.

# Mathieu Blondel mblondel

Last active Apr 6, 2021
A small script to get numerical evidence that a function is convex
View check_convex.py
 # Authors: Mathieu Blondel, Vlad Niculae # License: BSD 3 clause import numpy as np def _gen_pairs(gen, max_iter, max_inner, random_state, verbose): rng = np.random.RandomState(random_state) # if tuple, interpret as randn
Created Nov 2, 2019
Projection onto the probability simplex using isotonic regression.
View projection_simplex_isotonic.py
 # Author: Mathieu Blondel # License: BSD 3 clause import numpy as np from sklearn.isotonic import isotonic_regression def projection_simplex(x, z=1): """ Compute argmin_{p : p >= 0 and \sum_i p_i = z} ||p - x||
Last active Sep 21, 2021
Vectorized projection onto the simplex
View projection_simplex_vectorized.py
 # Author: Mathieu Blondel # License: BSD 3 clause import numpy as np def projection_simplex(V, z=1, axis=None): """ Projection of x onto the simplex, scaled by z: P(x; z) = argmin_{y >= 0, sum(y) = z} ||y - x||^2
Created Sep 3, 2017
Optimal transport dual LP
View ot_dual_lp.py
 # Author: Mathieu Blondel # License: BSD 3 clause import numpy as np from scipy.optimize import linprog def dual_lp(a, b, C, verbose=0): """Solves the dual optimal transport problem:
Created Nov 6, 2016
Efficient implementation of FISTA
View fista.py
 """ Efficient implementation of FISTA. """ # Author: Mathieu Blondel # License: BSD 3 clause import numpy as np
Created Oct 28, 2015
Semi-supervised Naive Bayes
View seminb.py
 # -*- coding: utf-8 -*- # Copyright (C) 2010 Mathieu Blondel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful,
Created May 22, 2015
Einstein sum notation
View einsum.py
 import numpy as np rng = np.random.RandomState(0) print "Trace" A = rng.rand(3, 3) print np.trace(A) print np.einsum("ii", A) print
Last active Aug 26, 2021
Multiclass SVMs
View multiclass_svm.py
 """ Multiclass SVMs (Crammer-Singer formulation). A pure Python re-implementation of: Large-scale Multiclass Support Vector Machine Training via Euclidean Projection onto the Simplex. Mathieu Blondel, Akinori Fujino, and Naonori Ueda. ICPR 2014. http://www.mblondel.org/publications/mblondel-icpr2014.pdf """
Last active Aug 23, 2021
Projection onto the simplex
View projection_simplex.py
 """ Implements three algorithms for projecting a vector onto the simplex: sort, pivot and bisection. For details and references, see the following paper: Large-scale Multiclass Support Vector Machine Training via Euclidean Projection onto the Simplex Mathieu Blondel, Akinori Fujino, and Naonori Ueda. ICPR 2014. http://www.mblondel.org/publications/mblondel-icpr2014.pdf
Last active Jan 18, 2018
Out of scope
View out_of_scope.py
 def test(): print(i) i = 1 test()