Best Python code snippet using hypothesis
helpers.py
Source:helpers.py
1import numpy as np2import cvxpy as cp3from sys import argv4import os5from scipy import stats6from scipy.special import softmax7from sklearn.preprocessing import normalize8# generate a numpy matrix of size \R num_samples * m, dist can be "uniform" or "normal"9def generate_data(n_s, m, dist, normalized=False):10 if (dist == 'uniform'):11 X = np.random.uniform(low=0.0, high=1.0, size=(n_s, m))12 elif(dist == 'normal'):13 X = stats.truncnorm.rvs(-1.0, 1.0, 0.0, 1.0, size=(n_s, m))14 15 if normalized:16 norm_X = normalize(X, axis=1, norm='l1') 17 return norm_X18 else:19 return X20# generate matrix L of size d x m according to distribution dist21def generate_loss_matrix(d, m, dist):22 if (dist == 'uniform'):23 L = np.random.uniform(low=0.0, high=1.0, size=(d, m))24 elif(dist == 'normal'):25 L = stats.truncnorm.rvs(-1.0, 1.0, 0.0, 1.0, size=(d, m))26 return L27# generate matrix U of size d x m according to distribution dist28def generate_utility_matrix(d, m, dist):29 if (dist == 'uniform'):30 U = np.random.uniform(low=0.0, high=1.0, size=(d, m))31 elif (dist == 'normal'):32 U = stats.truncnorm.rvs(-1.0, 1.0, 0.0, 1.0, size=(d, m))33 return U34def generate_utility_matrix_var(d, m, dist, var):35 if (dist == 'uniform'):36 U_vec = np.random.uniform(low=0.0, high=1.0, size=(d,))37 elif (dist == 'normal'):38 U_vec = stats.truncnorm.rvs(-1.0, 1.0, 0.0, 1.0, size=(d,))39 40 U_mat = np.ones((d,m))41 for col in range(m):42 noise = np.random.normal(scale=var, size=(d,))43 U_mat[:,col] = np.clip(U_vec+noise, 0, 1)44 45 return U_mat46def define_groups(X, group_dist, normalized=False):47 """ Given a vector where each element represents the portion of the population that should48 belong to each group, and the size of the vector represents the number of groups.49 Return a list of matricies, where each matrix contains all the individuals that belong50 to that group 51 """52 n, m = X.shape53 assert(sum(group_dist)-1 <= 1e-5)54 assert(min(group_dist) >= 0)55 # Let the first element in the feature vector represent group identity56 X0s = X[:,0]57 low = 058 samples_by_group = {}59 for group_id, val in enumerate(group_dist):60 high = low + val61 low_indicies = np.where(X0s >= low)62 high_indicies = np.where(X0s <= high)63 indicies = np.intersect1d(low_indicies, high_indicies)64 65 if normalized:66 norm_X = normalize(X[indicies,:], axis=1, norm='l1') 67 samples_by_group[group_id] = norm_X68 else:69 samples_by_group[group_id] = X[indicies,:]70 low = high71 return samples_by_group72def test_groups():73 X = np.random.uniform(size=(6,6))74 print(X)75 group_dist = [0.25, 0.25, 0.25, 0.25]76 grps = define_groups(X, group_dist)77 print(grps)78def get_default_alpha_arr(K):79 alpha = []80 alpha_value = 1.081 for k in range(K-1):82 alpha_value = alpha_value / 283 alpha.append(alpha_value)84 alpha.append(alpha_value)85 return alpha86def get_optimal_loss(L_mat, X):87 loss_matrix = np.matmul(X, L_mat.T)88 loss_matrix = normalize(loss_matrix, axis=1, norm='l1')89 (n, d) = loss_matrix.shape90 min_val = loss_matrix.min(axis=1)91 assert(min_val.shape == (n,))92 return sum(min_val)/n93 94def predictions(beta_value, all_X):95 return np.argmax(np.matmul(beta_value, all_X.T), axis = 0)96def get_all_predictions(beta_values, all_X, groups, K_):97 learned_predictions = []98 for k in range(K_):99 all_prediction = np.argmax(np.matmul(beta_values[k], all_X.T), axis = 0)100 learned_predictions.append(all_prediction)101 num_groups = len(groups.keys())102 learned_pred_group = {h:[] for h in range(num_groups)} 103 for k in range(K_):104 for h in range(num_groups):105 learned_pred_group[h].append(predictions(beta_values[k], groups[h]))106 107 return learned_predictions, learned_pred_group108def compute_final_loss(alphas, L_mat, X, learned_predictions):109 L_X = np.matmul(X, L_mat.T)110 L_X = normalize(L_X, axis=1, norm='l1')111 112 final_loss = 0113 K = len(alphas)114 n, m = X.shape115 116 for k in range(K):117 for i in range(n):118 final_loss += alphas[k]*L_X[i, learned_predictions[k][i]]119 return final_loss/n120def compute_welfare(alphas, U_mat, X, learned_predictions):121 return compute_final_loss(alphas, U_mat, X, learned_predictions)122def group_utility(alphas, U_mat, group_i, group_j, pred_i, pred_j, same=False):123 ## Compute the utility group i has for group j's clasification124 UX_i = np.matmul(group_i, U_mat.T)125 UX_j = np.matmul(group_j, U_mat.T)126 127 UX_i = normalize(UX_i, axis=1, norm='l1')128 UX_j = normalize(UX_j, axis=1, norm='l1')129 130 ni = group_i.shape[0]131 nj = group_j.shape[0]132 if same:133 welf = compute_welfare(alphas, U_mat, group_i, pred_i)134 return welf135 else:136 welf = 0137 for t, alpha in enumerate(alphas):138 for li in range(ni):139 for lj in range(nj):140 welf += alpha*UX_i[li, pred_j[t][lj]]141 return welf/(ni*nj) 142def total_group_envy(alphas, U_mat, groups, group_pred):143 violations = 0144 total_envy = 0145 num_groups = len(groups.keys())146 for i in range(num_groups):147 for j in range(num_groups):148 if i != j:149 u_ii = group_utility(alphas, U_mat, groups[i], \150 groups[i], group_pred[i], group_pred[i], same=True)151 u_ij = group_utility(alphas, U_mat, groups[i], \152 groups[j], group_pred[i], group_pred[j]) 153 total_envy += max(u_ij - u_ii, 0)154 if u_ij > u_ii + 1e-3:155 violations += 1156 157 total_envy = total_envy / (num_groups*(num_groups-1)) 158 violations = violations / (num_groups*(num_groups-1))159 return total_envy, violations160def total_average_envy(alphas, U_mat, X, pred):161 U_X = np.matmul(X, U_mat.T)162 U_X = normalize(U_X, axis=1, norm='l1')163 n, m = X.shape164 total_envy = 0165 violations = 0166 for i in range(n):167 for j in range(n):168 if i != j:169 u_ii, u_ij = 0, 0170 for k in range(len(alphas)):171 u_ii += alphas[k]*U_X[i, pred[k][i]]172 u_ij += alphas[k]*U_X[i, pred[k][j]]173 total_envy += max(u_ij - u_ii, 0) 174 if u_ij > u_ii + 1e-3:175 violations += 1176 total_envy = total_envy * (1/(n*(n-1)))177 violations = violations * (1/(n*(n-1)))178 return total_envy, violations179def total_group_equi(alphas, U_mat, groups, group_pred):180 violations = 0181 total_equi = 0182 num_groups = len(groups.keys())183 for i in range(num_groups):184 for j in range(num_groups):185 if i != j:186 u_ii = group_utility(alphas, U_mat, groups[i], \187 groups[i], group_pred[i], group_pred[i], same=True)188 u_jj = group_utility(alphas, U_mat, groups[j], \189 groups[j], group_pred[j], group_pred[j], same=True) 190 #print("i: ", i, "j: ", j, "uii:", u_ii, "ujj: ", u_jj) 191 total_equi += abs(u_jj - u_ii)192 if total_equi >= 1e-3:193 violations += 1194 total_equi = total_equi / (num_groups*(num_groups-1)) 195 violations = violations / (num_groups*(num_groups-1))196 return total_equi, violations197def min_group_welfare(alphas, U_mat, groups, group_pred):198 # return the welfare of group with the lowest welfare199 welfares = []200 num_groups = len(groups.keys())201 for i in range(num_groups):202 u_ii = group_utility(alphas, U_mat, groups[i], \203 groups[i], group_pred[i], group_pred[i], same=True)204 welfares.append(u_ii) 205 206 return min(welfares)207def get_convex_version(X, Mat_X, Beta, y, i): 208 return cp.max(Mat_X[i, :] + cp.matmul(Beta,X[i,:])) - cp.matmul(Beta[y[i],:], X[i,:])209if __name__ == "__main__":...
translator.py
Source:translator.py
1class Translator(object):2 @staticmethod3 def num_to_string(num):4 if not isinstance(num, int):5 raise TypeError6 elif num < 0:7 raise ValueError8 if num == 0:9 return "zero"10 simple_nums_to_str = {11 1: "one",12 2: "two",13 3: "three",14 4: "four",15 5: "five",16 6: "six",17 7: "seven",18 8: "eight",19 9: "nine",20 10: "ten",21 11: "eleven",22 12: "twelve",23 13: "thirteen",24 14: "fourteen",25 15: "fifteen",26 16: "sixteen",27 17: "seventeen",28 18: "eighteen",29 19: "nineteen"30 }31 if num in simple_nums_to_str:32 return simple_nums_to_str[num]33 second_placed_nums_to_str = {34 2: "twenty",35 3: "thirty",36 4: "forty",37 5: "fifty",38 6: "sixty",39 7: "seventy",40 8: "eighty",41 9: "ninety",42 }43 result_str = ""44 dig_place_groups = []45 while num:46 dig_place_groups.append(num % 100)47 num //= 10048 dig_place_groups.append(num % 10)49 num //= 1050 group_pred = {51 0: "",52 1: " hundred ",53 2: " thousand ",54 4: " million ",55 6: " billion ",56 8: " trillion ",57 10: " quadrillion ",58 12: " quintillion ",59 14: " sextillion ",60 16: " septillion "61 }62 for group, gnum in enumerate(dig_place_groups):63 if gnum == 0:64 continue65 if group % 2 == 0:66 if gnum in simple_nums_to_str:67 result_str = simple_nums_to_str[gnum] + group_pred[group] + result_str68 else:69 result_str = second_placed_nums_to_str[gnum // 10]\70 + ("-" + simple_nums_to_str[gnum % 10] if gnum % 10 != 0 else "")\71 + group_pred[group] + result_str72 else:73 result_str = simple_nums_to_str[gnum] + group_pred[1] + result_str...
Linear_Regression_Classifier.py
Source:Linear_Regression_Classifier.py
1# Linear Regression2import numpy as np3from numpy.linalg import inv4import pickle5import numpy as np6import math7class Linear_Regression_Classifier(object):8 def __init__(self, X, y):9 self.features = X10 self.target = y11 def train(self,l):12 """STUDNET_CODE"""13 x = self.features14 y = self.target15 16 I = np.identity(len(x[1,:]))17 I[0,0] = 018 xT = np.matrix.transpose(x)19 xTx = np.dot(xT,x) + l*I20 XTX = inv(xTx)21 XTX_xT = np.dot(XTX,xT) 22 23 W = XTX_xT.dot(y)24 W = W[np.newaxis]25 Y = np.dot(x,W.T)26 27 self.W = W28 29 def predict(self, X):30 wT = self.W.T31 y = X.dot(wT)32 return y33 34 def encoding_scalar_to_group(self,y):35 group_pred = np.around(y)36 group_pred = np.squeeze(group_pred).T37 return group_pred38 def encdoing_vector_to_group(self,y):39 group_pred = np.squeeze(y)40 group = [np.argmax(r,axis=0) for r in group_pred]41 return group42 def classifier_onehot(self,X):43 y = self.predict(X)44 group_pred=self.encdoing_vector_to_group(y)45 return group_pred46 47 def classifier_scalar(self,X):48 y = self.predict(X)49 group_pred=self.encoding_scalar_to_group(y)50 return group_pred...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!