Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro com o argumento 'random_state'

Estou executando exatamente o mesmo código que a instrutora passou no curso:

def random_gridsearch(param_list, n_sample, X_train, X_cv, Y_cv):
  f1_max = 0
  param_list = sample(param_list, n_sample)
  remaining_fits = n_sample

  for params in param_list:
    nu, gamma = params
    OCSVM = OneClassSVM(kernel = 'rbf', nu = nu, gamma = gamma, random_state = 1)
    print('Fitando modelo...')
    OCSVM.fit(X_train)

    cv_preds = OCSVM.predict(X_cv)
    f1 = f1_score(Y_cv.values, cv_preds, average='binary')

    if f1 > f1_max:
      f1_max = f1
      OCSVM_best = OCSVM

      remainings_fits -= 1

  return f1_max, OCSVM

f1_max, OCSVM_best = random_gridsearch(param_list, 10, X_train, X_cv, Y_cv)

Porém me deparo com o erro:

TypeError: __init__() got an unexpected keyword argument 'random_state'

Os sites de busca que procurei me informam que precisa atualizar a biblioteca scikit-learn. Olhei minha versão e está atualizada.

O ambiente que estou utilizando é o Google Colab e não o Jupyter.

Agradeço se puderem me ajudar!! :)

2 respostas
solução!

Bom dia Mariana, tudo bem? Espero que sim!

Na verdade esse parâmetro não existe mais em versões mais novas, foi removida na versão 0.22 e atualmente está na 0.24

random_state removido

Você pode instalar uma versão anterior à 0.20 para que esse parâmetro funcione e usar a função da maneira que está na aula.

Ou pode apagar esse parâmetro da função e usar a biblioteca numpy utilizando o método random.seed passando o valor 1 que foi usado na sua função.

Importe a biblioteca numpy:

import numpy as np

Você coloca uma linha antes de iniciar o seu modelo:

np.random.seed(1)

Estou à disposição. Bons estudos!

Obrigadaaaa