Пример #1
0
    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
Пример #2
0
 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