Skip to content

Commit

Permalink
Merge pull request #38 from arthurpaulino/issue-35
Browse files Browse the repository at this point in the history
a few small improvements
  • Loading branch information
arthurpaulino committed Apr 18, 2019
2 parents 0125700 + c2344e3 commit 0729413
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 38 deletions.
2 changes: 1 addition & 1 deletion miraiml/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
>>> from miraiml import HyperSearchSpace, Config, Engine
"""

__version__ = '1.0.0.3'
__version__ = '1.0.1.3'

from .main import HyperSearchSpace, Config, Engine

Expand Down
15 changes: 2 additions & 13 deletions miraiml/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,20 +324,9 @@ def interrupt(self):
def update(self):
"""
Updates the ensemble with the newest predictions from the base models.
:rtype: tuple
:returns: ``(train_predictions, test_predictions, score)``: Updated
predictions and score.
* ``train_predictions``: The ensemble predictions for the training dataset
* ``test_predictions``: The ensemble predictions for the testing dataset
* ``score``: The score of the ensemble on the training dataset
"""
train_predictions, test_predictions, score = self.ensemble(self.weights)
self.train_predictions_df[self.id] = train_predictions
self.test_predictions_df[self.id] = test_predictions
self.scores[self.id] = score
return (train_predictions, test_predictions, score)
self.train_predictions_df[self.id], self.test_predictions_df[self.id],\
self.scores[self.id] = self.ensemble(self.weights)

def gen_weights(self):
"""
Expand Down
37 changes: 13 additions & 24 deletions miraiml/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,11 @@ def __improvement_trigger__(self):
if not self.on_improvement is None:
self.on_improvement(self.request_status())

def __check_best__(self, score, id):
if self.best_score is None or score > self.best_score:
self.best_score = score
self.best_id = id

def __main_loop__(self):
"""
Main optimization loop.
Expand Down Expand Up @@ -431,20 +436,16 @@ def __main_loop__(self):
self.scores[id] = base_model.predict(self.train_data, self.train_target,
self.test_data, self.config)

if self.best_score is None or self.scores[id] > self.best_score:
self.best_score = self.scores[id]
self.best_id = id

base_models_ids = list(self.base_models)
self.__check_best__(self.scores[id], id)

will_ensemble = len(base_models_ids) > 1\
will_ensemble = len(self.base_models) > 1\
and not self.config.ensemble_id is None\
and not self.config.n_ensemble_cycles is None\
and self.config.n_ensemble_cycles > 0

if will_ensemble:
self.ensembler = Ensembler(
base_models_ids,
list(self.base_models),
self.train_target,
self.train_predictions_df,
self.test_predictions_df,
Expand All @@ -455,10 +456,7 @@ def __main_loop__(self):
ensemble_id = self.config.ensemble_id

if self.ensembler.optimize():
score = self.scores[ensemble_id]
if score > self.best_score:
self.best_score = score
self.best_id = ensemble_id
self.__check_best__(self.scores[ensemble_id], ensemble_id)

self.__improvement_trigger__()

Expand All @@ -481,28 +479,19 @@ def __main_loop__(self):
self.scores[id] = score
self.train_predictions_df[id] = train_predictions
self.test_predictions_df[id] = test_predictions
if score > self.best_score:
self.best_score = score
self.best_id = id
self.__check_best__(score, id)

if will_ensemble:
self.train_predictions_df[ensemble_id],\
self.test_predictions_df[ensemble_id],\
self.scores[ensemble_id] = self.ensembler.update()
if self.scores[ensemble_id] > self.best_score:
self.best_score = self.scores[ensemble_id]
self.best_id = ensemble_id
self.ensembler.update()
self.__check_best__(self.scores[ensemble_id], ensemble_id)

self.__improvement_trigger__()

dump(base_model, self.models_dir + id)

if will_ensemble:
if self.ensembler.optimize():
score = self.scores[ensemble_id]
if score > self.best_score:
self.best_score = score
self.best_id = ensemble_id
self.__check_best__(self.scores[ensemble_id], ensemble_id)

self.__improvement_trigger__()

Expand Down

0 comments on commit 0729413

Please sign in to comment.