def getprob(self, item1, item2): import choix from web.util import nanguard a = self.getid(item1["hash"] if type(item1) == dict else item1) b = self.getid(item2["hash"] if type(item2) == dict else item2) a_new = False b_new = False if a >= len(self.model): a_new = True if b >= len(self.model): b_new = True #self.calculate_ranking() if not len(self.model) or a_new or b_new: return 0.5, 0.5 #return f"no model yet. new: {a_new}", f"no model yet. new: {b_new}" ra, rb = choix.probabilities([a, b], self.model) return nanguard(ra, "ra"), nanguard(rb, "rb")
def pick_next_comparison(data, n_items): params = choix.ilsr_pairwise(n_items, data, alpha=0.01) count = 10 while count > 0: x = random.randint(0, n_items - 1) y = random.randint(0, n_items - 1) while y == x: y = random.randint(0, n_items - 1) prob_x_wins, prob_y_wins = choix.probabilities([x, y], params) if abs( 0.5 - prob_x_wins ) < 0.1: #if comparison has below 60% chance of being guessed correctly atm return x, y count -= 1 #if search 10 times for good comparison and fail pick random one x = random.randint(0, n_items - 1) y = random.randint(0, n_items - 1) while y == x: y = random.randint(0, n_items - 1) return x, y
namps = amps.size #number of amplitudes BTdata = [] for i in range(len(data)): #Go though each result file for ii in range(np.size(data[i], axis=0)): if data[i, ii, 3] == 1.0: BTdata.append((np.int( (data[i, ii, 2]) * 2), np.int((data[i, ii, 1]) * 2))) else: BTdata.append((np.int( (data[i, ii, 1]) * 2), np.int((data[i, ii, 2]) * 2))) BT = choix.ilsr_pairwise(namps, BTdata, 0.1) pi = choix.probabilities(list(range(namps)), BT) pyplot.close('all') dx = 0.02 textX = 0.6 + dx textY = 0.13 ax = pyplot.axes() tsize = 12 pyplot.plot(Xdata, pi, 'o-', color='black') pyplot.axvline(0.63, linestyle='--', color='gray') ax.text( textX, textY, 'Human kinematic',
import pandas as pd import numpy as np import choix df = pd.read_csv("nba1617.csv") teams = list(set(df.Home.unique())) t = list(np.sort(teams)) data = [] for i in range(len(df.Visitor)): if df.PTSV[i] > df.PTSH[i]: el = (t.index(df.Visitor[i]), t.index(df.Home[i])) else: el = (t.index(df.Home[i]), t.index(df.Visitor[i])) data.append(el) skills = choix.ilsr_pairwise(30, data) for i in range(30): win_probs = [] for j in range(30): win_probs.append(choix.probabilities([i, j], skills)[0]) print win_probs