Exemple #1
0
	def find_similar(self, data, num_similar=5, return_distance=False):
		data = format_data(data)
		check_data(data)

		X = self.transform(data)
		dist, ind = self.knn.kneighbors(X=X, n_neighbors=num_similar, return_distance=True) 

		if return_distance:
			return ind, dist

		return ind
Exemple #2
0
	def fit_transform(self, data, patient_ids=None):
		data = format_data(data)
		check_data(data)

		X = pad(data)
		X = self.model.predict(X)
		X = X.reshape(-1, X.shape[-1])

		if patient_ids is None:
			patient_ids = np.arange(len(data))
			
		self.patient_ids = {i: patient_ids[patientint(i / SEQ_LENGTH)] for i in range(len(X))}
		self.patient_offsets = {i: patient_ids[patientint(i % SEQ_LENGTH)] for i in range(len(X))}

		self._fit_X = X
		self._fit_pca_X = self.pca.fit_transform(X)
		self.knn.fit(self._fit_pca_X)
Exemple #3
0
    if args.freq:
        if not args.load or not model:
            print(
                "No model loaded. Please load a model with --load or -l before doing frequency analysis."
            )
            exit()

        magnitudes = []

        for i in range(3, 6):
            for j in range(1, 10):
                frequency = j * 10**i
                print("Frequency: " + str(j) + "x10^" + str(i))

                data_obj_test = create_freq_data(frequency)
                (x_test, y_test) = format_data(data_obj_test, args.timesteps)
                magnitudes.append(
                    compute_magnitude(model, x_test, data_obj_test,
                                      args.batch_size, frequency, model_name,
                                      args.plot))

                print("\n")

        print("-- Low Pass Magnitudes --")
        for mag in magnitudes:
            print(mag[0])
        print("\n")

        print("-- Network Magnitudes --")
        for mag in magnitudes:
            print(mag[1])
Exemple #4
0
from model import load_model
from data import create_data, format_data
import matplotlib.pyplot as plt
import numpy as np

data_obj_test = create_data("OOK", "LPF")
(x_test, y_test) = format_data(data_obj_test, 32)

fig, axs = plt.subplots(8, 1)

model = load_model("CNN3232")
output = model.predict(x_test, batch_size=32)

axs[0].plot(output, label="CNN3232")

plt.show()
Exemple #5
0
		X = self.model.predict(X)
		X = X.reshape(-1, X.shape[-1])

		if patient_ids is None:
			patient_ids = np.arange(len(data))
			
		self.patient_ids = {i: patient_ids[patientint(i / SEQ_LENGTH)] for i in range(len(X))}
		self.patient_offsets = {i: patient_ids[patientint(i % SEQ_LENGTH)] for i in range(len(X))}

		self._fit_X = X
		self._fit_pca_X = self.pca.fit_transform(X)
		self.knn.fit(self._fit_pca_X)


	def transform(self, data)
		data = format_data(data)
		check_data(data)
		assert self.pca is not None and self.knn is not None, 'Must call function "fit_transform" before using "transform"'

		ends = np.clip([len(array) for array in data], 0, SEQ_LENGTH - 1)
		X = pad(data)
		X = self.model.predict(X)
		X = X[np.arange(len(X)), ends]

		return self.pca.transform(X) 


	def find_similar(self, data, num_similar=5, return_distance=False):
		data = format_data(data)
		check_data(data)
def generate_graphs(weighing_method='RS'):
    ''' Generate all the graphs and associated layout
    based on the provided weighing method, RS if none is provided
    '''
    # Try if the default files are located in the root dir, otherwise initiate with example data
    try:
        csv_data = pd.read_csv('input_data.csv')
        with open('input_data_labels.json') as input_data_labels_file:
            input_data_labels = json.load(input_data_labels_file)
            csv_labels = input_data_labels['csv_labels']
            csv_type = input_data_labels['csv_type']

        attributes = format_data(csv_data, csv_labels, csv_type,
                                 weighing_method)
    except:
        attributes = format_data()

    # Generate pie char for weights with header
    weights_labels = [k for k, v in attributes.items()]
    weights_values = [v['weight'] for k, v in attributes.items()]

    weights_fig = go.Figure(data=[
        go.Pie(labels=weights_labels,
               values=weights_values,
               textinfo='label+percent',
               insidetextorientation='radial')
    ],
                            layout_margin=dict(l=50, r=50, t=50, b=50),
                            layout_showlegend=False)

    # weights_fig.write_image('images/Ranks.eps')

    weights_graph = [
        html.Div(children=[
            html.H1(children='Weights', style={'textAlign': 'center'}),
            dcc.Dropdown(options=[{
                'label': 'RS - Rank Sum',
                'value': 'RS'
            }, {
                'label': 'ROC - Rank Order Centroid',
                'value': 'ROC'
            }],
                         value=weighing_method,
                         id='weights-selector'),
            dcc.Graph(figure=weights_fig, id='weights-graph')
        ])
    ]

    # Generate Dash graphs from figures for each attribute, with title in a <div>
    attribute_graphs = [
        graph_element(key, attribute) for key, attribute in attributes.items()
    ]

    # Generate overall title and attributes title
    title = [
        html.H1(children='SMARTER Preference Elicitation Analysis Tool',
                style={'textAlign': 'center'}),
        html.Hr()
    ]
    title_attributes = [
        html.Hr(),
        html.H1(children='Attributes', style={'textAlign': 'center'})
    ]

    graphs = title + weights_graph + title_attributes + attribute_graphs

    return graphs