Skip to content

Instantly share code, notes, and snippets.

Mathieu Blondel mblondel

View GitHub Profile
@mblondel
mblondel / check_convex.py
Last active May 2, 2020
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
@mblondel
mblondel / projection_simplex_isotonic.py
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||
@mblondel
mblondel / projection_simplex_vectorized.py
Last active Nov 2, 2019
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
@mblondel
mblondel / ot_dual_lp.py
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:
@mblondel
mblondel / fista.py
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
@mblondel
mblondel / seminb.py
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,
@mblondel
mblondel / einsum.py
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
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
"""
@mblondel
mblondel / projection_simplex.py
Created Nov 2, 2014
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
View out_of_scope.py
def test():
print(i)
i = 1
test()
You can’t perform that action at this time.