def plotByUser(alias=["Todos"], completado=True, expList=['UmbralAngulosPiloto', 'UmbralParalelismoPiloto']): from scripts.db import pandasUtilPiloto from IPython.display import display db = pandasUtilPiloto() if alias == ["Todos"]: users = db['alias'].unique() else: users = alias for user in users: userDb = db[db['alias'] == user] userAlias = userDb.iloc[0]['alias'] if completado: userDb = userDb[userDb['convergenciaFinalizada'] == True] exps = userDb['expName'].unique() for exp in exps: if exp in expList: plotConvergenciaVersionPiloto(userDb, exp)
def sessionStats(): from scripts.db import pandasUtilPiloto from IPython.display import display from scripts.general import fechaLocal dbPiloto = pandasUtilPiloto() sessionInstances = dbPiloto['sessionInstance'].unique() for sessionInstance in sessionInstances: dbPilotoBySession = dbPiloto[dbPiloto['sessionInstance'] == sessionInstance] display ('El usuario ' + dbPilotoBySession.iloc[0]['alias'] + ' inicio sesion el ' + str(fechaLocal(sessionInstance)) + ' y juego ' + str(len(dbPilotoBySession['levelInstance'])) + ' niveles.')
def sessionStats(): from scripts.db import pandasUtilPiloto from IPython.display import display from scripts.general import fechaLocal dbPiloto = pandasUtilPiloto() sessionInstances = dbPiloto['sessionInstance'].unique() for sessionInstance in sessionInstances: dbPilotoBySession = dbPiloto[dbPiloto['sessionInstance'] == sessionInstance] display('El usuario ' + dbPilotoBySession.iloc[0]['alias'] + ' inicio sesion el ' + str(fechaLocal(sessionInstance)) + ' y juego ' + str(len(dbPilotoBySession['levelInstance'])) + ' niveles.')
def plotByUser(alias=["Todos"], completado=True, expList=["UmbralAngulosPiloto", "UmbralParalelismoPiloto"]): from scripts.db import pandasUtilPiloto from IPython.display import display db = pandasUtilPiloto() if alias == ["Todos"]: users = db["alias"].unique() else: users = alias for user in users: userDb = db[db["alias"] == user] userAlias = userDb.iloc[0]["alias"] if completado: userDb = userDb[userDb["convergenciaFinalizada"] == True] exps = userDb["expName"].unique() for exp in exps: if exp in expList: plotConvergenciaVersionPiloto(userDb, exp)
def statByUser(alias=["Todos"], completado=True, expList=['UmbralAngulosPiloto', 'UmbralParalelismoPiloto']): from scripts.db import pandasUtilPiloto from IPython.display import display from scripts.plots import plotConvergenciaVersionPiloto import pandas as pd db = pandasUtilPiloto() if alias == ["Todos"]: users = db['alias'].unique() else: users = alias stats = pd.DataFrame() for user in users: userDb = db[db['alias'] == user] if completado: userDb = userDb[userDb['convergenciaFinalizada'] == True] exps = userDb['expName'].unique() for exp in exps: if exp in expList: expDb = userDb[userDb['expName'] == exp] for index, row in expDb.iterrows(): #plotConvergenciaVersionPiloto(db.ix[[index]], exp, fromStadistics=True) if exp == 'UmbralAngulosPiloto': M = 3 if exp == 'UmbralParalelismoPiloto': M = 2 aciertos = [ elemento['acertado'] for elemento in row['historial'] ] valores = [ elemento['estimulo']['desviacion'] for elemento in row['historial'] ] senales = [ elemento['estimulo']['nivelSenal'] for elemento in row['historial'] ] mean = sum(valores[-6:]) / 6 if mean < 0: mean = -mean # Creamos la entrada para el DataFrame elemento = {} elemento['userId'] = row['userId'] elemento['userAlias'] = row['alias'] elemento['expName'] = row['expName'] elemento['identificador'] = row['identificador'] elemento['levelInstance'] = row['levelInstance'] elemento['referencia'] = row['referencia'] elemento['serieSenal'] = [senales] elemento['serieValores'] = [valores] elemento['serieAciertos'] = [aciertos] elemento['meanValue'] = mean elemento['pValueCorrectas'], elemento[ 'pValueFisher'] = condicion(aciertos, M) if elemento['pValueCorrectas'] < 0.05: elemento['deteccionCorrecta'] = True else: elemento['deteccionCorrecta'] = False if elemento['pValueCorrectas'] > 0.9: elemento['deteccionInCorrecta'] = True else: elemento['deteccionInCorrecta'] = False if elemento['pValueFisher'] < 0.1: elemento['evolucionDetectada'] = True else: elemento['evolucionDetectada'] = False elemento['contar'] = 1 if elemento['expName'] == 'UmbralParalelismoPiloto': idCategoria = 'Paralelismo ' if elemento['expName'] == 'UmbralAngulosPiloto': idCategoria = 'Angulo ' idCategoria = idCategoria + str( elemento['referencia']) + ' grados' elemento['idCategoria'] = idCategoria stats = pd.concat( [stats, pd.DataFrame.from_dict(elemento)]) return stats
def statByUser (alias=["Todos"], completado=True, expList=['UmbralAngulosPiloto', 'UmbralParalelismoPiloto']): from scripts.db import pandasUtilPiloto from IPython.display import display from scripts.plots import plotConvergenciaVersionPiloto import pandas as pd db = pandasUtilPiloto() if alias == ["Todos"]: users = db['alias'].unique() else: users = alias stats = pd.DataFrame() for user in users: userDb = db[db['alias']==user] if completado: userDb = userDb[userDb['convergenciaFinalizada']==True] exps = userDb['expName'].unique() for exp in exps: if exp in expList: expDb = userDb[userDb['expName']==exp] for index, row in expDb.iterrows(): #plotConvergenciaVersionPiloto(db.ix[[index]], exp, fromStadistics=True) if exp == 'UmbralAngulosPiloto': M=3 if exp == 'UmbralParalelismoPiloto': M=2 aciertos = [elemento['acertado'] for elemento in row['historial']] valores = [elemento['estimulo']['desviacion'] for elemento in row['historial']] senales = [elemento['estimulo']['nivelSenal'] for elemento in row['historial']] mean = sum (valores[-6:]) / 6 if mean < 0: mean = - mean # Creamos la entrada para el DataFrame elemento = {} elemento['userId'] = row['userId'] elemento['userAlias'] = row['alias'] elemento['expName'] = row['expName'] elemento['identificador'] = row['identificador'] elemento['levelInstance'] = row['levelInstance'] elemento['referencia'] = row['referencia'] elemento['serieSenal'] = [senales] elemento['serieValores'] = [valores] elemento['serieAciertos'] = [aciertos] elemento['meanValue'] = mean elemento['pValueCorrectas'], elemento['pValueFisher'] = condicion (aciertos,M) if elemento['pValueCorrectas'] < 0.05: elemento['deteccionCorrecta'] = True else: elemento['deteccionCorrecta'] = False if elemento['pValueCorrectas'] > 0.9: elemento['deteccionInCorrecta'] = True else: elemento['deteccionInCorrecta'] = False if elemento['pValueFisher'] < 0.1: elemento['evolucionDetectada'] = True else: elemento['evolucionDetectada'] = False elemento['contar'] = 1 if elemento['expName'] == 'UmbralParalelismoPiloto': idCategoria = 'Paralelismo ' if elemento['expName'] == 'UmbralAngulosPiloto': idCategoria = 'Angulo ' idCategoria = idCategoria + str(elemento['referencia']) + ' grados' elemento['idCategoria'] = idCategoria stats = pd.concat([stats, pd.DataFrame.from_dict(elemento)]) return stats