#showprogress #A problem's progress import sys import problem import pylab import numpy import copy sid = sys.argv[1] DB = "CAT3" pre = problem.Problems(DB, sid, exp="pre_clean") post = problem.Problems(DB, sid, exp="post_clean") mdict = {} mdict['calc'] = 'o' mdict['mem'] = 's' cdict = {} cdict['calc'] = [0, .2, .8] cdict['mem'] = [.8, .2, 0] cdict['calc|mem'] = [.8, .2, .8] cdict['mem|calc'] = [.8, .2, .8] pylab.figure(figsize=[14, 8]) plotnum = 1 for kind in ['verified', 'erratic']: for trained in ['novel', 'trained']:
#clean_data.py import sys import problem import pylab sid = sys.argv[1] DB = "CAT3" pre = problem.Problems(DB, sid) pre_clean = problem.Problems(DB, sid, "pre_clean", clear=True) for pid in pre.distinct('id'): for row in pre.query({'id': pid}): l = len(row['history']) print pid, l, row['kind'] if l > 2: newHist = [] trials = [] for h in row['history']: if h['trial'] in trials: pass else: newHist.append(h) trials.append(h['trial']) row['history'] = newHist pre.save(row) for pid in pre.distinct('id'):
#comparor.py #single subject training effects import sys import problem import pylab import numpy import copy sid = sys.argv[1] DB = "CAT3" pre = problem.Problems(DB, sid) post = problem.Problems(DB, sid, exp="post") pre.name = "pre" post.name = "post" training = ['novel', 'trained'] pylab.figure() strategies = ['mem', 'calc'] plotnum = 1 for strat in strategies: RTs = [] solns = []
#clean_data.py import sys import problem import pylab sid = sys.argv[1] DB = "CAT3" post = problem.Problems(DB, sid, exp="post") post_clean = problem.Problems(DB, sid, "post_clean", clear=True) for pid in post.distinct('id'): for row in post.query({'id': pid}): l = len(row['history']) ns = [row['n1'], row['n2']] ns.sort() prob = problem.Problem(ns) for h in row['history']: prob.addResponse(h) post_clean.append(prob) print "#####" for pid in post_clean.distinct('id'): for row in post_clean.query({'id': pid}): l = len(row['history']) print pid, l, row['kind']
#show_conversion.py import sys import problem import pylab import copy sid = sys.argv[1] DB="CAT3" pre = problem.Problems(DB, sid, exp="pre_clean") post = problem.Problems(DB, sid, exp="post_clean") pre_post = problem.Problems(DB, sid, exp="pre_post", clear=True) for pid in post.distinct('id'): PRE = pre.query({'kind':'verified', 'id':pid}) POST = post.query({'kind':'verified', 'id':pid}) #find calc-mems if PRE.count() and POST.count(): pre_strat = PRE[0]['strat'] post_strat = POST[0]['strat'] if pre_strat == post_strat: conversion = pre_strat else: conversion = pre_strat + "|" + post_strat pre.update({'id':pid}, {'$set': {'conversion': conversion}})
def build(self, strat): rows = self.problems.query({'strat': strat, 'kind': 'verified'}) rows = rows.sort('solution') trainingProbs = [] #want to come up with a roughly balanced set of solution sizes (trained vs untrained) count = 1 for row in rows: #every other problem should be added to the list if count % 2: trainingProbs.append(row) row['trained'] = 'trained' else: row['trained'] = 'novel' self.problems.posts.save(row) count += 1 for p in trainingProbs[:self.setSize]: line = "%s, %s, %s, %s, %s\n" % (problems.sid, p['n1'], p['n2'], p['strat'], p['solution']) self.f.write(line) problems = problem.Problems("CAT3", sys.argv[1]) b = TrainingBuilder(problems)
import problem import pylab import scipy.stats import matplotlib.mlab as mlab import sys, os sys.path.append(os.path.split(os.getcwd())[0]) import mongoTools DB = "CAT3" sid = sys.argv[1] pre_post = problem.Problems(DB, sid=sid, exp="pre_post") strats = ['strat', ['calc', 'mem']] kinds = ['kind', ['verified', 'erratic']] days = ['day', ['pre', 'post']] trained = ['trained', ['novel', 'trained']] #IVs and their levels IVs = [strats, kinds, days, trained] #DVs DVs = ['RT']