Qual é a diferença entre cross_validate e cross_val_score?

12

Entendo cross_validate e como ele funciona, mas agora estou confuso sobre o que cross_val_score realmente faz. Alguém pode me dar um exemplo?

Taimur Islam
fonte

Respostas:

12

cross_val_score é uma função auxiliar no estimador e no conjunto de dados.

Explicaria isso com um exemplo:

>>> from sklearn.model_selection import cross_val_score
>>> clf = svm.SVC(kernel='linear', C=1)
>>> scores = cross_val_score(clf, iris.data, iris.target, cv=5)
>>> scores                                              
array([ 0.96...,  1.  ...,  0.96...,  0.96...,  1.        ])

Este exemplo demonstra como estimar a precisão de uma máquina de vetores de suporte de kernel linear no conjunto de dados da íris dividindo os dados, ajustando um modelo e computando a pontuação 5 vezes consecutivas (com divisões diferentes a cada vez)

A função cross_validate difere de cross_val_score de duas maneiras:

  1. Permite especificar várias métricas para avaliação.
  2. Ele retorna um ditado que contém pontuações de treinamento, tempos de ajuste e tempos de pontuação, além da pontuação do teste.

Nota: Quando o argumento cv é um número inteiro, cross_val_score usa as estratégias KFold ou StratifiedKFold por padrão, sendo esta última usada se o estimador deriva de ClassifierMixin

Você pode acessar este link para entender melhor

Exemplos diferentes usando Cross_val_score, você pode analisar suas diferentes implementações.

Toros91
fonte
-1
  1. cross_val_score: calcular pontuação para cada divisão do CV
  2. cross_validate: calcule uma ou mais pontuações e tempos para cada divisão do CV
Amomokoo
fonte