def training_and_test(token, train_data, test_data, num_classes, result): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ model = RandomForestClassifier(n_estimators=20, criterion="entropy") model.fit(train_data[0], train_data[1].flatten()) # Test predicted_y = model.predict(test_data[0]) predicted_proba = model.predict_proba(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) result.add_record(model.get_params(), key=token, confusion_matrix=confusion_matrix) # In case any label is missing, populate it if predicted_proba.shape[1] != num_classes: temp_array = np.zeros((predicted_proba.shape[0], num_classes), np.float32) for i in range(len(model.classes_)): temp_array[:, model.classes_[i]] = predicted_proba[:, i] predicted_proba = temp_array return predicted_y, predicted_proba
def training_and_test(token, train_data, test_data, num_classes, result, model, log_dir): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ train_y = np.zeros((train_data[1].shape[0], num_classes)) test_y = np.zeros((test_data[1].shape[0], num_classes)) for i in range(train_data[1].shape[0]): train_y[i, train_data[1].flatten()[i]] = 1 for i in range(test_data[1].shape[0]): test_y[i, test_data[1].flatten()[i]] = 1 model.fit(train_data[0], train_y, iter_num=5000, summaries_dir=log_dir, test_x=test_data[0], test_y=test_y, criterion='monitor_based') # Test predicted_y = mlp.predict(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) variable_file = os.path.join(log_dir, token + '_save.ckpt') saver.save(mlp.sess, variable_file) result.add_record(variable_file, key=token, confusion_matrix=confusion_matrix) return predicted_y
def training_and_test(token, train_data, test_data, num_classes, result, model, log_dir): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ train_y = np.zeros((train_data[1].shape[0], num_classes)) test_y = np.zeros((test_data[1].shape[0], num_classes)) for i in range(train_data[1].shape[0]): train_y[i, train_data[1].flatten()[i]] = 1 for i in range(test_data[1].shape[0]): test_y[i, test_data[1].flatten()[i]] = 1 model.fit(train_data[0], train_y, pretrain_iter_num=5000, tuning_iter_num=5000, summaries_dir=log_dir, test_x=test_data[0], test_y=test_y, summary_interval=50) # Test predicted_y = model.predict(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) variable_file = os.path.join(log_dir, token + '_save.ckpt') saver.save(model.sess, variable_file) result.add_record(variable_file, key=token, confusion_matrix=confusion_matrix) return predicted_y
def training_and_test(token, train_data, test_data, num_classes, result): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ svm_model = sklearn.svm.SVC(kernel='rbf') svm_model.fit(train_data[0], train_data[1].flatten()) # Test predicted_y = svm_model.predict(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) result.add_record(svm_model, key=token, confusion_matrix=confusion_matrix) return predicted_y
def training_and_test(token, train_data, test_data, num_classes, result): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ decision_tree = DecisionTree(train_data[0].shape[1], num_classes, log_level=logging.WARNING) decision_tree.build(train_data[0], train_data[1].flatten()) # Test predicted_y = decision_tree.classify(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) result.add_record(decision_tree.export_to_dict(), key=token, confusion_matrix=confusion_matrix) return predicted_y
def training_and_test(token, train_data, test_data, num_classes, result): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ decision_tree = sklearn.tree.DecisionTreeClassifier( min_samples_leaf=4, min_samples_split=4 ) decision_tree.fit(train_data[0], train_data[1].flatten()) # Test predicted_y = decision_tree.predict(test_data[0]) predicted_proba = decision_tree.predict_proba(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) result.add_record(decision_tree.get_params(), key=token, confusion_matrix=confusion_matrix) return predicted_y, predicted_proba
def training_and_test(token, train_data, test_data, num_classes, result): """Train and test Args: token (:obj:`str`): token representing this run train_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of training feature and label test_data (:obj:`tuple` of :obj:`numpy.array`): Tuple of testing feature and label num_classes (:obj:`int`): Number of classes result (:obj:`pyActLearn.performance.record.LearningResult`): LearningResult object to hold learning result """ decision_tree = sklearn.tree.DecisionTreeClassifier(min_samples_leaf=4, min_samples_split=4) decision_tree.fit(train_data[0], train_data[1].flatten()) # Test predicted_y = decision_tree.predict(test_data[0]) predicted_proba = decision_tree.predict_proba(test_data[0]) # Evaluate the Test and Store Result confusion_matrix = get_confusion_matrix(num_classes=num_classes, label=test_data[1].flatten(), predicted=predicted_y) result.add_record(decision_tree.get_params(), key=token, confusion_matrix=confusion_matrix) return predicted_y, predicted_proba