Exemple #1
0
 def __init__(self, should_generate_regime_classifier=True):
     self.MH = ModelHelper.get_instance()  # type: ModelHelper
     if should_generate_regime_classifier:
         self.regime_classifier = RegimeClassifier()
     self.model_dict = {}
     for regime in self.MH.regime_indices:
         for header in self.MH.output_headers:
             self.model_dict[header + str(regime)] = Regressor(
                 header, regime)
Exemple #2
0
    def __init__(self):
        self.it = InterModel()
        self.fw = self.it.fwd_model

        self.MH = ModelHelper.get_instance()  # type: ModelHelper

        self.ranges_dict = self.MH.ranges_dict
        self.input_headers = self.MH.input_headers
        self.output_headers = self.MH.output_headers
Exemple #3
0
	def __init__(self):
		self.MH = ModelHelper.get_instance() # type: ModelHelper
		self.neuralnet = NeuralNetModel_regime()
		print("regime classifier")
		if load_model:
			print("Loading classifier")
			self.neuralnet.load_model()
		else:
			print("Training classifier")
			print("Data points: " + str(len(self.MH.train_features_dat_wholenorm)))
			self.neuralnet.train_model(self.MH.train_features_dat_wholenorm, self.MH.train_regime_dat)

		train_features = np.stack(self.MH.train_features_dat_wholenorm)
		train_labels = np.stack(self.MH.train_regime_dat)
		print("Train accuracy: " + str(sklearn.metrics.accuracy_score(train_labels-1,self.neuralnet.classifier_model.predict_classes(train_features))))
		print()
Exemple #4
0
	def __init__(self, output_name, regime):
		self.MH = ModelHelper.get_instance() # type: ModelHelper
		self.regime = regime

		regime_indices = self.MH.regime_indices[regime]
		regime_feature_data = [self.MH.train_features_dat_regnorm[x] for x in regime_indices]
		regime_label_data = [self.MH.train_labels_dat[output_name][x] for x in regime_indices]

		print("Regression model " + output_name + str(regime))
		if output_name == "generation_rate":
			if regime == 1:
				self.regression_model = NeuralNetModel_rate1()
			elif regime == 2:
				self.regression_model = NeuralNetModel_rate2()
		elif output_name == "droplet_size":
			if regime == 1:
				self.regression_model = NeuralNetModel_size1()
			elif regime == 2:
				self.regression_model = NeuralNetModel_size2()

		if load_model:
			print("Loading Regressor")
			self.regression_model.load_model(output_name, regime)
		else:
			print("Training Regressor")
			print("All data points: " + str(len(self.MH.train_features_dat_regnorm)))
			print("Train points: " + str(len(regime_indices)))
			self.regression_model.train_model(output_name, regime, regime_feature_data, regime_label_data)

		train_features = np.stack(regime_feature_data)
		train_labels = np.stack(regime_label_data)
		#print(",".join(self.MH.input_headers) + ",label,prediction")
		#for i,label in enumerate(list(train_labels)):
		#	print(",".join(list(map(str,list(train_features[i])))) + "," + str(label) + "," + str(self.regression_model.regression_model.predict(train_features)[i][0]))
		#print(train_labels)
		#print()
		#print(train_features)
		print("R square (R^2) for Train:                 %f" % sklearn.metrics.r2_score(train_labels, self.regression_model.regression_model.predict(train_features)))
		print()
Exemple #5
0
    def __init__(self):
        """Initialize the GUI components"""
        self.root = tkinter.Tk()
        self.root.title("DAFD")

        #Attach the interpolation model to the GUI
        self.di = DAFD_Interface()
        self.MH = ModelHelper.get_instance()  # type: ModelHelper

        # DAFD Logo
        img = Image.open(self.MH.resource_path("DAFD_logo.png"))
        img = ImageTk.PhotoImage(
            img.resize((int(0.1 * img.size[0]), int(0.1 * img.size[1])),
                       Image.ANTIALIAS))
        panel = tkinter.Label(self.root, image=img)
        panel.pack(side="top", fill="both")
        panel.configure(background="white")
        self.root.configure(background="white")

        # Pack all input constraint elements together
        inputs_frame = tkinter.Frame(self.root)
        inputs_frame.pack(side="top")
        inputs_frame.configure(background="white")

        inputs_header = tkinter.Label(inputs_frame)
        inputs_header.pack(side="top")
        inputs_header["text"] = "Constraints"
        inputs_header.config(font=("Times", 20))
        inputs_header.configure(background="white")

        self.entries_dict = {}
        self.tol_var = 0

        for param_name in self.di.input_headers:
            param_frame = tkinter.Frame(inputs_frame)
            param_frame.pack(side="top")
            param_frame.configure(background="white")
            param_label = tkinter.Label(param_frame, width=40, anchor="e")
            param_label.pack(side="left")
            param_label["text"] = param_name + " (" + str(
                round(self.di.ranges_dict[param_name][0], 2)) + "-" + str(
                    round(self.di.ranges_dict[param_name][1], 2)) + ") : "
            param_label.configure(background="white")
            param_entry = tkinter.Entry(param_frame)
            param_entry.pack(side="left")
            param_entry.configure(background="white")
            self.entries_dict[param_name] = param_entry

        regime_frame = tkinter.Frame(inputs_frame)
        regime_frame.pack(side="top")
        regime_frame.configure(background="white")
        regime_label = tkinter.Label(regime_frame, width=40, anchor="e")
        regime_label.pack(side="left")
        regime_label["text"] = "regime (1-2) : "
        regime_label.configure(background="white")
        regime_entry = tkinter.Entry(regime_frame)
        regime_entry.pack(side="left")
        regime_entry.configure(background="white")
        self.entries_dict["regime"] = regime_entry

        # Pack the desired output elements together
        outputs_frame = tkinter.Frame(self.root, pady=20)
        outputs_frame.pack(side="top")
        outputs_frame.configure(background="white")

        outputs_header = tkinter.Label(outputs_frame)
        outputs_header.pack(side="top")
        outputs_header["text"] = "Desired Values"
        outputs_header.config(font=("Times", 20))
        outputs_header.configure(background="white")

        for param_name in self.di.output_headers:
            param_frame = tkinter.Frame(outputs_frame)
            param_frame.pack(side="top")
            param_frame.configure(background="white")
            param_label = tkinter.Label(param_frame, width=40, anchor="e")
            param_label.pack(side="left")
            param_label["text"] = param_name + " (" + str(
                round(self.di.ranges_dict[param_name][0], 2)) + "-" + str(
                    round(self.di.ranges_dict[param_name][1], 2)) + ") : "
            param_label.configure(background="white")
            param_entry = tkinter.Entry(param_frame)
            param_entry.pack(side="left")
            param_entry.configure(background="white")
            self.entries_dict[param_name] = param_entry

        # Pack Tolerance Study Together
        tolerance_frame = tkinter.Frame(self.root, pady=20)
        tolerance_frame.pack(side="top")
        tolerance_frame.configure(background="white")

        tolerance_header = tkinter.Label(tolerance_frame)
        tolerance_header.pack(side="top")
        tolerance_header["text"] = "Tolerance Options"
        tolerance_header.config(font=("Times", 20))
        tolerance_header.configure(background="white")

        tol_frame = tkinter.Frame(tolerance_frame)
        tol_frame.pack(side="top")
        tol_frame.configure(background="white")
        tol_label = tkinter.Label(tol_frame, width=40, anchor="e")
        tol_label.pack(side="left")
        tol_label["text"] = "Perform Tolerance Study? "
        tol_label.configure(background="white")
        check_var = tkinter.IntVar(value=0)
        tol_entry = tkinter.Checkbutton(tol_frame, variable=check_var)
        tol_entry.pack(side="left")
        tol_entry.configure(background="white")
        self.entries_dict["tolerance_test"] = tol_entry

        tol_frame = tkinter.Frame(tolerance_frame)
        tol_frame.pack(side="top")
        tol_frame.configure(background="white")
        tol_label = tkinter.Label(tol_frame, width=40, anchor="e")
        tol_label.pack(side="left")
        tol_label["text"] = "Tolerance (1-50, default 10) : "
        tol_label.configure(background="white")
        tol_entry = tkinter.Entry(tol_frame)
        tol_entry.pack(side="left")
        tol_entry.configure(background="white")
        self.entries_dict["tolerance"] = tol_entry

        # Pack the results together
        results_frame = tkinter.Frame(self.root, pady=20)
        results_frame.pack(side="top")
        results_frame.configure(background="white")
        submit_dafd_button = ttk.Button(results_frame,
                                        text='Run DAFD',
                                        command=self.runInterp)
        submit_dafd_button.pack(side="top")
        submit_fwd_button = ttk.Button(results_frame,
                                       text='Run Forward Model',
                                       command=self.runForward)
        submit_fwd_button.pack(side="top")
        self.results_label = tkinter.Label(results_frame)
        self.results_label.pack(side="top")
        self.results_label.configure(background="white")

        # Start GUI
        self.root.mainloop()
Exemple #6
0
 def __init__(self):
     """Make and save the interpolation models"""
     self.MH = ModelHelper.get_instance()  # type: ModelHelper
     self.fwd_model = ForwardModel()
Exemple #7
0
 def __init__(self):
     self.MH = ModelHelper.get_instance()  # type: ModelHelper