Пример #1
0
        elif args.clasificador == "SGD":
            clasificador_usado = linear_model.SGDClassifier(shuffle=True)
        else:  # "SVM"
            clasificador_usado = svm.SVC()
            parameters_grid_search = parameters_svm

        if args.grid_search:
            grid_search = GridSearchCV(clasificador_usado, parameters_grid_search, cv=5, verbose=2, n_jobs=8)

            grid_search.fit(features, clases)
            print("Mejores parámetros encontrados para " + args.clasificador + ":")
            for nombre_parametro, valor_parametro in clasificador_usado.get_params().items():
                print("\t{clave}: {valor}".format(clave=nombre_parametro, valor=valor_parametro))
            print('')
            print("Acierto: {acierto}".format(acierto=grid_search.best_score_))
            grid_search.best_estimator_ = grid_search.best_estimator_.fit(features, clases)
            clasificador_usado = grid_search.best_estimator_
            print('')

        if args.parametros_clasificador:
            print('')
            print("Parametros del clasificador:")
            for nombre_parametro, valor_parametro in clasificador_usado.get_params().items():
                print("\t{clave}: {valor}".format(clave=nombre_parametro, valor=valor_parametro))
            print('')

        if args.cross_validation and not args.evaluar:
            cross_validation_y_reportar(clasificador_usado, features, clases, 5)

        print("Entrenando clasificador...")
        if args.ponderar_segun_votos:
Пример #2
0
    le = LabelEncoder()
    lb = LabelBinarizer()
    loader = NiftiMasker(mask='/tmp/mask.nii.gz',
                         memory=memory, memory_level=1)
    reporter = Reporter(report_dir='/tmp/reporter')

    cv = ShuffleSplit(len(target), n_iter=5)
    Cs = [1e-3, 1e-2, 1e-1, 1., 10, 1e2, 1e3]

    scaler = StandardScaler()
    n_x, n_y, n_z = mask.shape
    connectivity = grid_to_graph(n_x, n_y, n_z, mask=mask_array)
    ward = WardAgglomeration(n_clusters=2000,
                             connectivity=connectivity, memory=memory)
    svc = LinearSVC(penalty='l1', dual=False)
    # rand_svc = RandomizedWardClassifier(mask_array, n_iter=16,
    #                                     memory=memory, n_jobs=-1)

    pipe = Pipeline([('scaler', scaler), ('clf', svc)])
    grid = GridSearchCV(pipe, param_grid={'clf__C': Cs},
                        cv=cv, n_jobs=1)
    grid.best_estimator_ = grid.estimator
    ovr = OneVsRestClassifier(grid, n_jobs=1)

    # decoder = Decoder(ovr, loader, lb, reporter)
    # decoder.fit(niimgs, target).score(niimgs, target)

    # pipeline = Pipeline([('scaler', scaler), ('clf', clf)])
    decoder = Decoder(ovr, loader, lb, reporter)
    decoder.fit(niimgs, target).score(niimgs, target)
Пример #3
0
            grid_search = GridSearchCV(clasificador_usado,
                                       parameters_grid_search,
                                       cv=5,
                                       verbose=2,
                                       n_jobs=8)

            grid_search.fit(features, clases)
            print("Mejores parámetros encontrados para " + args.clasificador +
                  ":")
            for nombre_parametro, valor_parametro in clasificador_usado.get_params(
            ).items():
                print("\t{clave}: {valor}".format(clave=nombre_parametro,
                                                  valor=valor_parametro))
            print('')
            print("Acierto: {acierto}".format(acierto=grid_search.best_score_))
            grid_search.best_estimator_ = grid_search.best_estimator_.fit(
                features, clases)
            clasificador_usado = grid_search.best_estimator_
            print('')

        if args.parametros_clasificador:
            print('')
            print("Parametros del clasificador:")
            for nombre_parametro, valor_parametro in clasificador_usado.get_params(
            ).items():
                print("\t{clave}: {valor}".format(clave=nombre_parametro,
                                                  valor=valor_parametro))
            print('')

        if args.cross_validation and not args.evaluar:
            cross_validation_y_reportar(clasificador_usado, features, clases,
                                        5)