def predict_dataset(classifier, dataset, radius, alphabet): result = [] for data in dataset.data: predict_data = svm_tools.get_sequence_dataset(data.seq, radius, alphabet) predicted_result = svm_tools.filter_predicted_result(classifier.predict(predict_data)) result.append((str(data.seq), predicted_result)) return result
def predict_dataset(classifier, dataset, radius, alphabet): result = [] for data in dataset.data: predict_data = svm_tools.get_sequence_dataset(data.seq, radius, alphabet) predicted_result = svm_tools.filter_predicted_result( classifier.predict(predict_data)) result.append((str(data.seq), predicted_result)) return result
def learn_svm_classifier(dataset, radius): if not dataset.is_marked(): return None learn_dataset, learn_results = [], [] for record, markup in zip(dataset.data, dataset.markup): keys = svm_tools.get_sequence_dataset(record.seq, radius, dataset.alphabet) results = svm_tools.markup_sequence_dataset(keys, markup) learn_dataset.extend(keys) learn_results.extend(results) classifier = svm.SVC(kernel='rbf') classifier.fit(np.asarray(learn_dataset, float), np.asarray(learn_results, float)) return classifier
def predict_sequence(classifier, sequence, radius, alphabet): dataset = svm_tools.get_sequence_dataset(sequence, radius, alphabet) return svm_tools.filter_predicted_result(classifier.predict(dataset))