Skip to content

Instantly share code, notes, and snippets.

View usptact's full-sized avatar

Vladislavs Dovgalecs usptact

View GitHub Profile
@usptact
usptact / Estimating coin bias from noisy observations
Created December 24, 2016 01:43
Estimating coin bias from noisy observations
#
# Estimate coin bias given multiple observations from adversarial experts.
#
import sys
import pymc3 as pm
import numpy as np
import theano.tensor as tt
import matplotlib.pyplot as plt
#
# Attempt to implement Dawid-Skene model in PyMC3 (broken)
#
import pymc3 as pm
import numpy as np
import matplotlib.pyplot as plt
import theano
import sys
#
# Attempt to implement Dawid-Skene model in PyMC3 (probably working)
#
import pymc3 as pm
import numpy as np
import matplotlib.pyplot as plt
import theano
import sys
@usptact
usptact / ordinal_pymc3_DBDA23.2.2.py
Created January 25, 2017 02:23 — forked from DanielWeitzenfeld/ordinal_pymc3_DBDA23.2.2.py
functional implementation of ordinal predicted variable
import seaborn as sns
import pymc3 as pm
import numpy as np
from scipy.stats import norm
import pandas as pd
import theano.tensor as T
from theano.compile.ops import as_op
# Generate True data
@usptact
usptact / dataphilly-jul2016.ipynb
Created January 26, 2017 06:35 — forked from AustinRochford/dataphilly-jul2016.ipynb
DataPhilly July 2016 Introduction to Probabilistic Programming
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
"""
Class to pack or tile segments.
Example data:
data = [
(0, 1), (0, 2), (0, 3), (1, 3), (2, 4), (0, 5)
]
NB: sorted segments are expected (cf. IntervalSort)!
"""
"""
Class to sort intervals.
A collection of intervals is sorted:
(1) in increasing order by start index
(2) in increasing order by end index
Sample data:
data = [(1, 2), (0, 1), (0, 3), (5, 9), (1, 4), (1, 2), (2, 5), (5, 8), (3, 6)]
"""
@usptact
usptact / monty.wppl
Last active August 26, 2018 04:31
Agentmodels, WebPPL: Monty Hall Example
// Remove each element in array ys from array xs
var remove = function(xs, ys) {
return _.without.apply(null, [xs].concat(ys));
};
var doors = [1, 2, 3];
// Monty chooses a door that is neither Alice's door
// nor the prize door
var monty = function(aliceDoor, prizeDoor) {
// 4 dice: 4, 6, 8 and 12 sides
// each dice is perfect
var dice = [
Categorical(
{
ps: [1/4, 1/4, 1/4, 1/4],
vs: [0, 1, 2, 3]
}
),
Categorical(
var person = function() {
var is_female = sample(Bernoulli({p: 0.51}))
if (is_female == false) {
return {hgt: sample(Gaussian({mu: 178.0, sigma: 7.7})), is_female: is_female}
} else {
return {hgt: sample(Gaussian({mu: 163.0, sigma: 7.3})), is_female: is_female}
}
}
var is_taller = function(h1, h2) {