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: ...@@ -95,10 +95,16 @@ class Reconstructor:
self.ml_models = ml_models self.ml_models = ml_models
self.knowledge_domain = knowlege_domain self.knowledge_domain = knowlege_domain
self._category = None self._category = None
self._free_id = None
self.__reconstruction = None self.__reconstruction = None
def reconstruct(self, learnblock): def reconstruct(self, learnblock, which_models=None, meta=None):
reliabilities_to_model = self.__reconstruction(learnblock) 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(): if reliabilities_to_model.keys():
return determine_winner(reliabilities_to_model) return determine_winner(reliabilities_to_model)
raise NoModelReconstructedError() raise NoModelReconstructedError()
...@@ -118,9 +124,22 @@ class Reconstructor: ...@@ -118,9 +124,22 @@ class Reconstructor:
else: else:
raise ValueError() 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) reliability_to_model = defaultdict(list)
for model in self.ml_models: for model in self.ml_models:
if model.abbreviation not in which_models: continue
# train model # train model
train_block, eval_block = self.split(learnblock) train_block, eval_block = self.split(learnblock)
...@@ -134,12 +153,25 @@ class Reconstructor: ...@@ -134,12 +153,25 @@ class Reconstructor:
learnblock, learnblock,
krippen) krippen)
if reliability >= self.settings.min_reliability: 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( reliability_to_model[reliability].append(
PragmaticMachineLearningModel(trained_model, PragmaticMachineLearningModel(prag_meta_data,
trained_model,
learnblock)) learnblock))
return reliability_to_model 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) reliability_to_model = defaultdict(list)
for model in self.ml_models: 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