Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 11 additions & 33 deletions epftoolbox/data/_wrangling.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,56 +17,34 @@ def __init__(self):
self.fitted = False

def fit(self, data):

if len(data.shape)!=2:
raise IndexError('Error: Provide 2-D array. First dimension is datapoints and' +
' second features')
return -1

raise IndexError('Error: Provide 2-D array. First dimension is datapoints and second features')
self.median = np.median(data, axis=0)
self.mad = mad(data, axis=0)
self.fitted = True

def fit_transform(self, data):

self.fit(data)
return self.transform(data)

def transform(self, data):

if not self.fitted:
print('Error: The scaler has not been yet fitted. Called fit or fit_transform')
return -1
raise RuntimeError('Error: The scaler has not been yet fitted. Called fit or fit_transform')
if len(data.shape) != 2:
raise IndexError('Error: Provide 2-D array. First dimension is datapoints and second features')

if len(data.shape)!=2:
raise IndexError('Error: Provide 2-D array. First dimension is datapoints and' +
' second features')

transformed_data = np.zeros(shape=data.shape)
numerator = data - self.median
denominator = self.mad
return np.divide(numerator, denominator, out=np.zeros_like(numerator), where=denominator != 0)

for i in range(data.shape[1]):

transformed_data[:, i] = (data[:, i] - self.median[i]) / self.mad[i]

return transformed_data

def inverse_transform(self, data):

if not self.fitted:
print('Error: The scaler has not been yet fitted. Called fit or fit_transform')
return -1

raise RuntimeError('Error: The scaler has not been yet fitted. Call fit or fit_transform')
if len(data.shape)!=2:
raise IndexError('Error: Provide 2-D array. First dimension is datapoints and' +
' second features')

transformed_data = np.zeros(shape=data.shape)
raise IndexError('Error: Provide 2-D array. First dimension is datapoints and second features')

for i in range(data.shape[1]):

transformed_data[:, i] = data[:, i] * self.mad[i] + self.median[i]

return transformed_data
return data * self.mad + self.median


class InvariantScaler(MedianScaler):
Expand Down Expand Up @@ -343,4 +321,4 @@ def scaling(datasets, normalize):

datasets[i] = dataset

return datasets, scaler
return datasets, scaler
13 changes: 6 additions & 7 deletions epftoolbox/models/_dnn.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,13 @@ def __init__(self, neurons, n_features, outputShape=24, dropout=0, batch_normali
opt = 'adam'
else:
if optimizer == 'adam':
opt = kr.optimizers.Adam(lr=lr, clipvalue=10000)
opt = kr.optimizers.Adam(learning_rate=lr, clipvalue=10000)
if optimizer == 'RMSprop':
opt = kr.optimizers.RMSprop(lr=lr, clipvalue=10000)
opt = kr.optimizers.RMSprop(learning_rate=lr, clipvalue=10000)
if optimizer == 'adagrad':
opt = kr.optimizers.Adagrad(lr=lr, clipvalue=10000)
opt = kr.optimizers.Adagrad(learning_rate=lr, clipvalue=10000)
if optimizer == 'adadelta':
opt = kr.optimizers.Adadelta(lr=lr, clipvalue=10000)
opt = kr.optimizers.Adadelta(learning_rate=lr, clipvalue=10000)

self.model.compile(loss=loss, optimizer=opt)

Expand Down Expand Up @@ -161,20 +161,19 @@ def _build_model(self):
for k, neurons in enumerate(self.neurons):

if self.activation == 'LeakyReLU':
past_Dense = Dense(neurons, activation='linear', batch_input_shape=inputShape,
past_Dense = Dense(neurons, activation='linear',
kernel_initializer=self.initializer,
kernel_regularizer=self._reg(self.lambda_reg))(past_Dense)
past_Dense = LeakyReLU(alpha=.001)(past_Dense)

elif self.activation == 'PReLU':
past_Dense = Dense(neurons, activation='linear', batch_input_shape=inputShape,
past_Dense = Dense(neurons, activation='linear',
kernel_initializer=self.initializer,
kernel_regularizer=self._reg(self.lambda_reg))(past_Dense)
past_Dense = PReLU()(past_Dense)

else:
past_Dense = Dense(neurons, activation=self.activation,
batch_input_shape=inputShape,
kernel_initializer=self.initializer,
kernel_regularizer=self._reg(self.lambda_reg))(past_Dense)

Expand Down
2 changes: 1 addition & 1 deletion epftoolbox/models/_lear.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ def evaluate_lear_in_test_dataset(path_datasets_folder=os.path.join('.', 'datase
data_available = pd.concat([df_train, df_test.loc[:date + pd.Timedelta(hours=23), :]], axis=0)

# We set the real prices for current date to NaN in the dataframe of available data
data_available.loc[date:date + pd.Timedelta(hours=23), 'Price'] = np.NaN
data_available.loc[date:date + pd.Timedelta(hours=23), 'Price'] = np.nan

# Recalibrating the model with the most up-to-date available data and making a prediction
# for the next day
Expand Down
Loading