Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import statistics as st
- import numpy as np
- from numpy.linalg import inv
- def binomial(n, x, p):
- q = 1.0 - p
- return ((math.factorial(n) / (math.factorial(n - x) * math.factorial(x)))
- * math.pow(p, x) * math.pow(q, n - x))
- def nbinomial(n, x, p):
- q = 1.0 - p
- return ((math.factorial(n - 1) / (math.factorial(n - x) * math.factorial(x - 1)))
- * math.pow(p, x) * math.pow(q, n - x))
- def geomdist(n, p):
- q = 1.0 - p
- return p * math.pow(q, n - 1)
- def poisson(x, l):
- return (math.pow(l, x) * math.exp(-l)) / math.factorial(x)
- def normalAcc(mean, sd, x):
- return (1.0 + math.erf((x - mean) / (sd * math.sqrt(2)))) / 2
- def pearson(dsa, dsb):
- ma = st.mean(dsa)
- mb = st.mean(dsb)
- sda = st.pstdev(dsa)
- sdb = st.pstdev(dsb)
- out = 0.0
- for i in range(0, len(dsa)):
- out += (dsa[i] - ma) * (dsb[i] - mb)
- out /= (len(dsa) * sda * sdb)
- return out
- def lsregresion(da, db):
- m = pearson(da, db) * st.pstdev(db) / st.pstdev(da)
- b = st.mean(db) - m * st.mean(da)
- return (m, b)
- def mlreg(x, y): # X and Y matrices
- xtr = x.transpose() # X-transposed
- xint = xtr.dot(x) # X-intermediate (for lack of a better name)
- xinv = inv(xint) # X-inverse for inverse of X-intermediate
- preb = xinv.dot(xtr) # pre-B
- b = preb.dot(y) # matrix B, the answer
- return b # Answer answered!
- def mlrpredict(x, b):
- answer = x.dot(b)
- return answer[0][0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement