Ejemplo n.º 1
0
def generate_krig(lb, ub, n_krigsamp, nvar, problem, n_cpu):
    init_krigsamp = mcpopgen(lb=lb, ub=ub, ndim=2, n_order=1, n_coeff=3)
    print("Evaluating Kriging Sample")
    ykrig = problem(init_krigsamp)
    print(np.count_nonzero(ykrig <= 0))

    # Set Kriging Info
    KrigInfo = initkriginfo(1)
    KrigInfo["X"] = init_krigsamp
    KrigInfo["y"] = ykrig
    KrigInfo["nvar"] = nvar
    KrigInfo["nsamp"] = n_krigsamp
    KrigInfo["nrestart"] = 5
    KrigInfo["ub"] = ub
    KrigInfo["lb"] = lb
    KrigInfo["nkernel"] = len(KrigInfo["kernel"])
    KrigInfo["optimizer"] = "lbfgsb"

    #trainkrig
    drm = None
    t = time.time()
    krigobj = Kriging(KrigInfo,
                      standardization=True,
                      standtype='default',
                      normy=False,
                      trainvar=False)
    krigobj.train(n_cpu=n_cpu)
    loocverr, _ = krigobj.loocvcalc()
    elapsed = time.time() - t
    print("elapsed time to train Kriging model: ", elapsed, "s")
    print("LOOCV error of Kriging model: ", loocverr, "%")

    return krigobj, loocverr, drm
Ejemplo n.º 2
0
def generate_krig(init_samp, n_krigsamp, nvar, problem):

    # Kriging Sample
    t1 = time.time()
    init_krigsamp = mcpopgen(type="lognormal",
                             ndim=nvar,
                             n_order=1,
                             n_coeff=5,
                             stddev=0.2,
                             mean=1)
    ykrig = evaluate(init_krigsamp, type=problem)
    t2 = time.time()
    print("50 samp eval", t2 - t1)

    # Evaluate Kriging Sample and calculate PoF real
    init_samp_G = evaluate(init_samp, type=problem)
    total_samp = np.hstack((init_samp, init_samp_G)).transpose()
    positive_samp = total_samp[:, total_samp[nvar] >= 0]
    positive_samp = positive_samp.transpose()
    nsamp = np.size(init_samp, 0)
    npos = np.size(positive_samp, 0)
    Pfreal = 1 - npos / nsamp

    lb = np.floor(np.min(init_samp)) * np.ones(shape=[nvar])
    ub = np.ceil(np.max(init_samp)) * np.ones(shape=[nvar])

    # Set Kriging Info
    KrigInfo = initkriginfo("single")
    KrigInfo["X"] = init_krigsamp
    KrigInfo["y"] = ykrig
    KrigInfo["nvar"] = nvar
    KrigInfo["nsamp"] = n_krigsamp
    KrigInfo["nrestart"] = 5
    KrigInfo["ub"] = ub
    KrigInfo["lb"] = lb
    KrigInfo["nkernel"] = len(KrigInfo["kernel"])
    KrigInfo["n_princomp"] = 4
    KrigInfo["optimizer"] = "lbfgsb"

    #trainkrig
    t = time.time()
    krigobj = KPLS(KrigInfo,
                   standardization=True,
                   standtype='default',
                   normy=False,
                   trainvar=False)
    krigobj.train(parallel=False)
    loocverr, _ = krigobj.loocvcalc()
    elapsed = time.time() - t
    print("elapsed time for train Kriging model: ", elapsed, "s")
    print("LOOCV error of Kriging model: ", loocverr, "%")

    return krigobj, Pfreal
Ejemplo n.º 3
0
def generate_krig(init_samp, n_krigsamp, nvar, problem, n_cpu):
    init_krigsamp = mcpopgen(type="lognormal",
                             ndim=nvar,
                             n_order=1,
                             n_coeff=5,
                             stddev=0.2,
                             mean=1)
    print("Evaluating Kriging Sample")
    ykrig = evaluate(init_krigsamp, type=problem)
    print(np.count_nonzero(ykrig <= 0))

    lb = (np.min(init_samp, axis=0))
    ub = (np.max(init_samp, axis=0))

    Pfreal = None

    # Set Kriging Info
    KrigInfo = initkriginfo(1)
    KrigInfo["X"] = init_krigsamp
    KrigInfo["y"] = ykrig
    KrigInfo["nvar"] = nvar
    KrigInfo["nsamp"] = n_krigsamp
    KrigInfo["nrestart"] = 5
    KrigInfo["ub"] = ub
    KrigInfo["lb"] = lb
    KrigInfo["nkernel"] = len(KrigInfo["kernel"])
    KrigInfo["n_princomp"] = 4
    KrigInfo["optimizer"] = "lbfgsb"

    #trainkrig
    drm = None
    t = time.time()
    krigobj = KPLS(KrigInfo,
                   standardization=True,
                   standtype='default',
                   normy=False,
                   trainvar=False)
    krigobj.train(n_cpu=n_cpu)
    loocverr, _ = krigobj.loocvcalc()
    elapsed = time.time() - t
    print("elapsed time to train Kriging model: ", elapsed, "s")
    print("LOOCV error of Kriging model: ", loocverr, "%")

    return krigobj, loocverr, drm
Ejemplo n.º 4
0
    ax2.grid(which='both', axis='both', linestyle='--')
    ax2.set_title('Total Order ' + title, fontsize=15, fontweight='bold')
    ax2.set_xlim(xlim)
    ax2.xaxis.set_tick_params(labelsize=13, width=3)
    ax1.set_yticks(y_pos)
    ax1.set_yticklabels(vartot, fontsize=13, fontweight='bold')

    plt.subplots_adjust(wspace=0.1, hspace=0)
    plt.legend()
    plt.show()


if __name__ == '__main__':
    ub = np.array([5, 5])
    lb = np.array([-5, -5])
    init_samp = mcpopgen(lb=lb, ub=ub, ndim=2, n_order=6, n_coeff=1)
    dic = dict()

    nvar = 2
    n_krigsamp = 50
    problem = cust
    n_cpu = 12

    # Create Kriging model
    t = time.time()
    krigobj, loocverr, drm = generate_krig(lb, ub, n_krigsamp, nvar, problem,
                                           n_cpu)
    ktime = time.time() - t
    # Predict and UQ
    pred(krigobj, init_samp, problem, drmmodel=drm)
    # Sensitivity Analysis
Ejemplo n.º 5
0
    # Define AKMCS Information
    akmcsInfo = dict()
    akmcsInfo["init_samp"] = init_samp
    akmcsInfo["maxupdate"] = 70
    akmcsInfo["problem"] = problem

    # Run AKMCS
    t = time.time()
    akmcsobj = AKMCS(krigobj, akmcsInfo)
    akmcsobj.run(savedatato=filename)
    elapsed = time.time() - t
    print("elapsed time is : ", elapsed, "s")


if __name__ == '__main__':
    init_samp = mcpopgen(type="lognormal",
                         ndim=40,
                         n_order=6,
                         n_coeff=1,
                         stddev=0.2,
                         mean=1)

    nvar = 40
    n_krigsamp = 50
    problem = 'hidimenra'
    filename = "akmcshidimen.csv"

    krigobj, Pfreal = generate_krig(init_samp, n_krigsamp, nvar, problem)
    run_akmcs(krigobj, init_samp, problem, filename)
    print(Pfreal)
Ejemplo n.º 6
0
    print("elapsed time is : ", elapsed, "s")
    xtotal = akmcsobj.krigobj.KrigInfo['X']

    return xtotal


if __name__ == '__main__':

    nvar = 2
    n_krigsamp = 25
    problem = 'styblinski'
    filename = "akmcs2d.csv"
    figloc = 'akmcsupdate'
    init_samp = mcpopgen(type='normal',
                         ndim=nvar,
                         n_order=6,
                         n_coeff=1,
                         stddev=1.5)
    ysamp = evaluate(init_samp, problem)
    krigsamp = mcpopgen(type='normal',
                        ndim=nvar,
                        n_order=1,
                        n_coeff=2.5,
                        stddev=1.5)
    pos_MC = init_samp[ysamp.flatten() > 0, :]
    neg_MC = init_samp[ysamp.flatten() <= 0, :]

    krigobj, Pfreal = generate_krig(init_samp, krigsamp, nvar, problem)
    xtotal = run_akmcs(krigobj, init_samp, problem, filename, figloc, pos_MC,
                       neg_MC)
    print(Pfreal)