def test_iris(self): """Treina um MLP e um SVM para classificação do conjunto de dados iris.""" # Lê arquivo de dados dataset = pandas.read_csv('../datasets/iris/iris.data', sep=',') X = dataset.ix[:, dataset.columns != 'class'].to_dict(orient='records') y = dataset.ix[:, dataset.columns == 'class'].as_matrix()[:, 0] vectorizer = DictVectorizer(sparse=False) X = vectorizer.fit_transform(X) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25) classifier = mlp.MLP(hidden_layer_size=10) classifier.fit(X_train, y_train) y_pred = classifier.predict(X_test) print(classification_report(y_test, y_pred)) classifier = svm.SVM(kernel='linear', C=1) classifier.fit(X_train, y_train) y_pred = classifier.predict(X_test) print(classification_report(y_test, y_pred)) assert True
def train_svm_rbf(self, X, y): """Treina um SVM RBF e retorna o classificador treinado.""" clf = svm.SVM(kernel='rbf') grid = {'C': [1], 'gamma': [0]} # Realiza busca em grid de parâmetros com 5x2 Fold cross-validation skf_inner = StratifiedKFold(n_splits=2) skf_outer = StratifiedKFold(n_splits=5) # Otimiza parâmetros (2-fold) clf = GridSearchCV(estimator=clf, param_grid=grid, cv=skf_inner, verbose=0, n_jobs=2) clf.fit(X, y) # Validação com parâmetros ótimos de treino (5-fold) validation_score = cross_val_score(clf, X=X, y=y, cv=skf_outer, verbose=0, n_jobs=1) print("SVM RBF - Acurácia de validação = %f" % validation_score.mean()) return clf