Skip to content
Snippets Groups Projects
Commit a774bc10 authored by dmt's avatar dmt
Browse files

Initialize pragmatic machine learning models with meta information.

parent 0b14346b
No related branches found
No related tags found
No related merge requests found
......@@ -95,10 +95,16 @@ class Reconstructor:
self.ml_models = ml_models
self.knowledge_domain = knowlege_domain
self._category = None
self._free_id = None
self.__reconstruction = None
def reconstruct(self, learnblock):
reliabilities_to_model = self.__reconstruction(learnblock)
def reconstruct(self, learnblock, which_models=None, meta=None):
if not which_models:
which_models = [m.abbreviation for m in self.ml_models]
reliabilities_to_model = self.__reconstruction(learnblock,
which_models,
meta)
if reliabilities_to_model.keys():
return determine_winner(reliabilities_to_model)
raise NoModelReconstructedError()
......@@ -118,9 +124,22 @@ class Reconstructor:
else:
raise ValueError()
def _reconstruct_conceptual(self, learnblock, krippen=None):
@property
def free_id(self):
return self._free_id
@free_id.setter
def free_id(self, value):
self._free_id = iter(value)
def _reconstruct_conceptual(self,
learnblock,
which_models,
krippen=None,
meta=None):
reliability_to_model = defaultdict(list)
for model in self.ml_models:
if model.abbreviation not in which_models: continue
# train model
train_block, eval_block = self.split(learnblock)
......@@ -134,12 +153,25 @@ class Reconstructor:
learnblock,
krippen)
if reliability >= self.settings.min_reliability:
# TODO (dmt): Fix the knowledge tier after first iteration!
prag_meta_data = Metadata(
"C",
1,
next(self.free_id),
learnblock.indexes,
learnblock.min_timestamp,
learnblock.max_timestamp,
[model.subject],
[".".join(["C", '1', learnblock.purpose])]
)
reliability_to_model[reliability].append(
PragmaticMachineLearningModel(trained_model,
PragmaticMachineLearningModel(prag_meta_data,
trained_model,
learnblock))
return reliability_to_model
def _reconstruct_procedural(self, learnblock, krippen=None):
def _reconstruct_procedural(self, learnblock, krippen=None, meta=None):
reliability_to_model = defaultdict(list)
for model in self.ml_models:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment