Ejemplo n.º 1
0
def plotpoledata():
    fcorner = "results/plots/poledata_corner2D.csv"
    fin = "results/plots/poledata_inside2D.csv"
    import matplotlib.pyplot as plt

    X1, X2 = tools.readData(fcorner)
    plt.scatter(X1[1:], X2[1:], label="$X^{(corner)}$", s=5)
    # print(np.c_[X1[1:10],X2[1:10]])
    X1, X2 = tools.readData(fin)
    plt.scatter(X1[1:500000], X2[1:500000], label="$X^{(in)}$", s=1)
    plt.legend()
    plt.savefig("results/plots/Ppoledata2D.png")

    X1, X2 = tools.readData(fin)
Ejemplo n.º 2
0
def plotsamplingstrategies():

    import matplotlib.pyplot as plt
    import matplotlib as mpl

    folder = "results/exp1/benchmarkdata/f1_"
    lhsfile = folder + "lhs.txt"
    splilhsfile = folder + "splitlhs.txt"
    sgfile = folder + "sg.txt"
    for file, name in zip([lhsfile, splilhsfile, sgfile],
                          ["LHS", "d-LHS", "SG"]):
        X, Y = tools.readData(file)
        mpl.rc('text', usetex=True)
        mpl.rc('font', family='serif', size=12)
        mpl.rc('font', weight='bold')
        mpl.rcParams['text.latex.preamble'] = [
            r'\usepackage{sfmath} \boldmath'
        ]
        # mpl.style.use("ggplot")
        plt.figure(0, figsize=(15, 10))
        plt.scatter(X[:, 0], X[:, 1], s=100, c='r')
        plt.xlabel("$x_1$", fontsize=44)
        plt.ylabel("$x_2$", fontsize=44)
        plt.tick_params(labelsize=28)
        plt.savefig("../../log/" + name + ".pdf", bbox_inches='tight')
        plt.clf()
        plt.close('all')
Ejemplo n.º 3
0
def runRappsipStrategy2(infile,runs, larr,l1strat="ho_p_q",box=np.array([[-1,1],[-1,1]]),trainingScale="0.5x",outfile="out.json",debug=0):

# l1strat="ho_p_q"
# l1strat="all_p_q"


	X, Y = tools.readData(infile)
	outJSON = {}

	# runs = [[2,2],[3,?3],[4,4],[5,5],[6,6]]
	for r in runs:
		for l in larr:
			pdeg=r[0]
			qdeg=r[1]
			if(l1strat == "ho_p_q"):
				ppenaltybin = np.ones(pdeg+1)
				ppenaltybin[pdeg] = 0

				qpenaltybin = np.ones(qdeg+1)
				qpenaltybin[qdeg] = 0
			elif(l1strat == "all_p_q"):
				ppenaltybin = np.zeros(pdeg+1)
				qpenaltybin = np.zeros(qdeg+1)


			rappsip = RationalApproximationSIP(
											X,
											Y,
											m=pdeg,
											n=qdeg,
											trainingscale=trainingScale,
											roboptstrategy="baron",
											box=box,
											strategy=2,
											penaltyparam=l,
				                            ppenaltybin=ppenaltybin.tolist(),
				                            qpenaltybin=qpenaltybin.tolist()

			)
			outJSON["p%s_q%s_%.E"%(str(pdeg),str(qdeg),l)] = rappsip.asDict
			if(debug == 1):
				import json
				with open("/tmp/s2_latest.json", "w") as f:
					json.dump(outJSON, f,indent=4, sort_keys=True)

	import json
	with open(outfile, "w") as f:
		json.dump(outJSON, f,indent=4, sort_keys=True)
Ejemplo n.º 4
0
        import json
        with open(fname, "w") as f:
            json.dump(self.asDict, f, indent=indent, sort_keys=sort_keys)

    def printDebug(self, msg):
        import datetime
        print("[d%d p%d q%d ts%s] [[%s]] %s" %
              (self._dim, self._m, self._n, self._trainingscale,
               datetime.datetime.now().strftime("%Y-%m-%d %H:%M"), msg))


if __name__ == "__main__":
    import sys
    infilePath11 = "../benchmarkdata/f16.txt"
    # infilePath1 = "../benchmarkdata/f1_noise_0.1.txt"
    X, Y = tools.readData(infilePath11)
    r = RationalApproximationSIPONB(
        X,
        Y,
        m=2,
        n=3,
        trainingscale="Cp",
        roboptstrategy='ms',
        localoptsolver='scipy',
        fitstrategy='filter',
        strategy=0,
    )

    r2 = apprentice.RationalApproximationSIP(
        X,
        Y,
Ejemplo n.º 5
0
def runCrossValidation(infile,box=np.array([[-1,1],[-1,1]]),outfile="out.json",debug=0):
	trainingScale = "Cp"

	X, Y = tools.readData(infile)

	# Some param overrides for debug
	larr = np.array([10**i for i in range(3,-13,-1)])
	# larr = np.array([10**i for i in range(0,-5,-1)])

	k=10
	# k=2

	outJSON = {}
	for pdeg in range(2,5):
	# for pdeg in range(3,5):
		ppenaltybin = np.zeros(pdeg+1)
		for qdeg in range(2,5):
		# for qdeg in range(3,5):
			qpenaltybin = np.zeros(qdeg+1)
			avgerror = np.zeros(len(larr))
			avgerror_k = np.zeros(len(larr))
			for index in range(len(larr)):
				l = larr[index]
				kfold = KFold(k)
				error_l = 0
				for train, test in kfold.split(X):
					rappsip = RationalApproximationSIP(
												X[train],
												Y[train],
				                                m=pdeg,
				                                n=qdeg,
				                                trainingscale=trainingScale,
				                                box=box,
				                                strategy=2,
				                                penaltyparam=l,
				                                ppenaltybin=ppenaltybin.tolist(),
				                                qpenaltybin=qpenaltybin.tolist()
				    )
					error_l_k = np.sum([(rappsip(X[test])-Y[test])**2])
					error_l += error_l_k
				avgerror[index] = error_l / len(X)
				avgerror_k[index] = error_l / len(X[test])
			stderror = np.std(avgerror_k)/np.sqrt(k)
			minIndex = np.argmin(avgerror)
			minv = avgerror[minIndex]
			minl = larr[minIndex]

			currIndex = minIndex
			while currIndex >= 0:
				if(minv + stderror == avgerror[currIndex]):
					break
				elif(minv + stderror > avgerror[currIndex]):
					currIndex -= 1
				else:
					currIndex += 1
					break
			if(currIndex == -1):
				currIndex = 0
			currl = larr[currIndex]

			# print(minIndex)
			# print(currIndex)
			#
			# print(avgerror)
			# print(avgerror_k)
			# print(stderror)
			#
			# print(minl)
			# print(currl)

			rappsip_min = RationalApproximationSIP(
										X,
										Y,
										m=pdeg,
										n=qdeg,
										trainingscale=trainingScale,
										box=box,
										strategy=2,
										penaltyparam=minl,
										ppenaltybin=ppenaltybin.tolist(),
										qpenaltybin=qpenaltybin.tolist()
			)
			rappsip_minpse = rappsip_min
			if(currl != minl):
				rappsip_minpse = RationalApproximationSIP(
											X,
											Y,
											m=pdeg,
											n=qdeg,
											trainingscale=trainingScale,
											box=box,
											strategy=2,
											penaltyparam=currl,
											ppenaltybin=ppenaltybin.tolist(),
											qpenaltybin=qpenaltybin.tolist()
			)
			rappsip = {"min":rappsip_min.asDict, "min plus SE":rappsip_minpse.asDict, "avgerror":avgerror.tolist(),
						"avgerror_k":avgerror_k.tolist(), "stderror":stderror,"minIndex":minIndex,"minl":minl,
						"minv":minv, "mpseIndex":currIndex, "mpsel":currl}

			outJSON["p%s_q%s"%(str(pdeg),str(qdeg))] = rappsip

			if(debug == 1):
				import json
				with open("/tmp/cv_latest.json", "w") as f:
					json.dump(outJSON, f,indent=4, sort_keys=True)
			# exit(1)

	import json
	with open(outfile, "w") as f:
		json.dump(outJSON, f,indent=4, sort_keys=True)
Ejemplo n.º 6
0
def runRappsipBaseStrategy(infile,runs, box=np.array([[-1,1],[-1,1]]),trainingScale="1x", roboptstrategy="ms",outfile="out.json",debug=0,debugfile="/tmp/s0_latest.json"):
	X, Y = tools.readData(infile)
	return runRappsipBaseStrategyFromPoints(X,Y,runs, box,trainingScale, roboptstrategy,outfile,debug,debugfile)