예제 #1
0
    # Do the transition model stuff first
    X = np.loadtxt(open("dump/observations_simulated_trans_"+str(students)+".csv","rb"),delimiter=",")
    #load problem IDs for these observations
    P = np.loadtxt(open("dump/problems_simulated_trans_"+str(students)+".csv","rb"),delimiter=",")
    #S = np.loadtxt(open("dump/skills_simulated_trans.csv", "rb"), delimiter=",")
    states = np.loadtxt(open("dump/states_simulated_trans_"+str(students)+".csv","rb"),delimiter=",")
    times = get_mastery_time(states)


    #get params learned from model
    pdictl = json.load(open("dump/PARAMS_simulated_trans_"+str(students)+"_L1_second_trans_2states_1000iter.json","r"))

    # L1 transition model, transition AFTER emission
    model = MLFKTTransitionModel(X, P, 0, 0.15, True, False)

    params = model.get_parameters()
    #Set the learned model parameters for transition model
    for k, v in params.iteritems():
        if k in pdictl[-1]:
            v.set(pdictl[-1][k])
        else:
            print
            print pdictl[-1]
            print "Uh oh,", k, "not in learned params for transition model"

    """params['D_8'].set(0.8834557934379552)
    params['D_9'].set(1.140053275980339)
    params['D_2'].set(-2.500678825112307)
    params['D_3'].set(-1.7398224556239437)
    params['D_0'].set(-2.2268556721015127)
    params['D_1'].set(-2.411186976135999)
    if os.path.exists(rmsefname):
        rmsel = json.load(open(rmsefname, "r"))
    else:
        rmsel = []

    rmsel.append(rmse)
    json.dump(rmsel, open(rmsefname, "w"))

    paramfname = (
        "dump/PARAMS_" + fname + "_trans_" + str(total_states) + "states_" + str(num_iterations) + "iter" + ".json"
    )
    if os.path.exists(paramfname):
        paraml = json.load(open(paramfname, "r"))
    else:
        paraml = []
    p = model.get_parameters()
    pdict = {}
    for id, param in p.iteritems():
        # if "D_" in id:
        if id == "L":
            pdict[id] = [param.get()[0], param.get()[1]]
        else:
            pdict[id] = param.get()
    # pdict['Trans'] = list( [list(x) for x in model.make_transitions()] )
    pdict["Pi"] = list(model.make_initial())
    model.emission_mask[0] = False
    pdict["Emit"] = list([list(x) for x in model.make_emissions(0, 0)])

    paraml.append(pdict)
    json.dump(paraml, open(paramfname, "w"))