def classification(classifier, context, blockList, decisions, scaler, returnQueue=None, shot=True, leaveout=-1): """ Returns a classification, no propabilities. """ feature_line = getSingleFeatureLine(context, blockList, decisions, shot, leaveout) class_from_file = feature_line.pop() feature_line = scaler.transform(feature_line) classification = classifier.predict(feature_line) if returnQueue: returnQueue.put(classification) returnQueue.close() return classification
def calculateDistributionAndClassification(classifier, context, blocks, decisions, scaler, shot_or_cut=True, returnQueue=None, leave_out_class=None): """ Calculates a distribution using the given classifier. From that distribution the highest Value is selected as classification. Both distribution and classification are returned. """ feature_line = getSingleFeatureLine(context, blocks, decisions, shot_or_cut, leave_out_class=leave_out_class) feature_line.pop() feature_vector = scaler.transform(np.array([feature_line])) distribution = classifier.predict_proba(feature_vector) classification = distribution[0].tolist().index(max(distribution[0].tolist())) #classification = int(classifier.predict(feature_vector)[0]) if returnQueue: returnQueue.put((distribution, classification)) returnQueue.close() return distribution, classification