Skip to content

Instantly share code, notes, and snippets.

View g-leech's full-sized avatar

Gavin Leech g-leech

View GitHub Profile
@g-leech
g-leech / 7.io
Last active July 15, 2018 13:38
# Every thing is an object.
# Every interaction with an object is a message.
# You don’t instantiate classes; you clone other objects called prototypes.
# Objects remember their prototypes.
# Objects have slots. Slots contain objects, including method objects.
# A message returns the value in a slot or invokes the method in a slot.
# If an object can’t respond to a message, it sends that message to its prototype.
Vehicle := Object clone
Vehicle description := "Something to take you places"
##################################
## DAY 1
# Evaluate 1 + 1 and then 1 + "one". Is Io strongly typed or weakly typed?
1 + 1
1+"one"
# > Exception: argument 0 to method '+' must be a Number, not a 'Sequence'
# Io is Strong: it does not perform implicit casts between types.
# https://help.open.ac.uk/documents/policies/working-out-your-class-of-honours/files/50/honours-class-working-out.pdf
# Only 2nd and 3rd year courses count.
# Course, credits, grade, year
courses = [
["M343", 30, "Distinction", 3],
["M249", 30, "Distinction", 2],
["M248", 30, "Distinction", 2],
["MST210", 60, "Grade 2 Pass", 2]
]
@g-leech
g-leech / kelly_house.py
Created August 20, 2019 14:28
Kelly bound on house insurance premium
import numpy as np
probability = 1/10000
wealth = 120000
houseValue = 100000
bound = probability * np.log(wealth - houseValue) \
+ (1 - probability) * np.log(wealth)
maxPremium = wealth - np.exp(bound)
from scipy.spatial.distance import cdist
import numpy as np
import matplotlib.pyplot as plt
# First write a covariance function. e.g. rbf
def radial_basis_kernel(x1, x2, varSigma, lengthScale):
if x2 is None:
d = cdist(x1, x1)
else:
d = cdist(x1, x2)
import math
import scipy.stats as st
# assumes bivariate normal, dichotomised groups
def dichotomy_r_to_d(r) :
d = 2*r / (math.sqrt(1 - r**2))
return d
# Equation 9
# https://sci-hub.tw/10.1037/1082-989X.11.4.386
@g-leech
g-leech / school-uni-coactivation.py
Created May 8, 2020 10:26
Checking the coactivation of school and uni closures
import pandas as pd
# From https://www.notion.so/977d5e5be0434bf996704ec361ad621d?v=fe54f89ca9e04ac799af42b39e1efc4b
path = "COVID 19 Containment measures data.csv"
df = pd.read_csv(path)
withoutUS = df[~df["Country"].str.contains("US:")]
withoutUS = withoutUS[~withoutUS["Country"].str.contains("United States")]
numCountries = withoutUS.Country.unique().shape[0]
@g-leech
g-leech / utils.py
Last active May 20, 2020 11:21
NLP helpers
#%tensorflow_version 2.x
import pandas as pd
import numpy as np
import re
from nltk import word_tokenize
from nltk.stem import WordNetLemmatizer
from scipy.sparse import hstack
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
def handle_utterance_str(text) :
if text[0] != "'" and text[0] != '"' :
text = f'"{text}"'
text = text.replace('"', '\"')
text = text.replace("'", '\"')
return "handle_utterance(1,{},Output)".format(text)
def escape_and_call_prolexa(text) :
libPrefix = "prolexa:"
#!/usr/bin/env python
# coding: utf-8
# ## Excess COVID-19 mortality vs reported deaths over time
#
# split bar?
#
# y-axis: deaths
# x-axis: time
#