Example #1
0
def get_model(method, n=None, n_neighbors=None, max_iter=None, random_state=None, n_jobs=None, method_args=None):
    model = None

    kwargs = {}
    if method_args is not None:
        for arg_pair in method_args:
            arg_par = arg_pair.split('=')
            kwargs[arg_pair[0].trim()] = arg_pair[1].trim()

    if method == 'ICA':
        model = FastICA(whiten=True, **kwargs)
    elif method == 'ICAexp':
        model = FastICA(whiten=True, fun='exp', **kwargs)
    elif method == 'ICAcube':
        model = FastICA(whiten=True, fun='cube', **kwargs)
    elif method == 'PCA':
        model = PCA()
    elif method == 'SPCA':
        model = SparsePCA()
        if n_jobs is not None:
            model.n_jobs = n_jobs
    elif method == 'NMF':
        model = NMF(solver='cd')
    elif method == 'ISO':
        model = Isomap()
    elif method == 'KPCA':
        model = KernelPCA(kernel='rbf', fit_inverse_transform=False, gamma=1, alpha=0.0001)
    elif method == 'FA':
        #model = FactorAnalysis(svd_method='lapack') #(tol=0.0001, iterated_power=4)
        model = FactorAnalysis(tol=0.0001, iterated_power=4)
    elif method == 'DL':
        model = DictionaryLearning(split_sign=True, fit_algorithm='cd', alpha=1)
        if n_jobs is not None:
            model.n_jobs = n_jobs

    if n is not None:
        model.n_components = n
    if max_iter is not None:
        model.max_iter = max_iter
    if random_state is not None:
        model.random_state = random_state
    if n_neighbors is not None:
        model.n_neighbors = n_neighbors


    return model