Source code for pySPACE.missions.nodes.classification.random_classifier
""" Contains nodes that classify randomly """
import random
from pySPACE.missions.nodes.base_node import BaseNode
# the output is a prediction vector
from pySPACE.resources.data_types.prediction_vector import PredictionVector
[docs]class RandomClassifierNode(BaseNode):
""" Assign data randomly with probability 0.5 to the classes
**Parameters**
**Exemplary Call**
.. code-block:: yaml
-
node : Random_Classifier
:Author: Jan Hendrik Metzen (jhm@informatik.uni-bremen.de)
:Created: 2009/07/03
:Last change: 2010/08/13 by Mario Krell
"""
[docs] def __init__(self, *args, **kwargs):
super(RandomClassifierNode, self).__init__(*args, **kwargs)
self.set_permanent_attributes(labels = [])
[docs] def is_trainable(self):
""" Returns whether this node is trainable. """
return True
[docs] def is_supervised(self):
""" Returns whether this node requires supervised training """
return True
[docs] def _execute(self, data):
""" Executes the classifier on the given data vector x"""
# Classify randomly
label = random.choice(self.labels)
return PredictionVector(label=label,
prediction=self.labels.index(label),
predictor=self)
[docs] def _train(self, data, class_label):
""" Trains the classifier on the given data
It is assumed that the class_label parameter
contains information about the true class the data belongs to
"""
# Remember the labels
if class_label not in self.labels:
self.labels.append(class_label)
_NODE_MAPPING = {"Random_Classifier": RandomClassifierNode}