title: score() missing 1 required positional argument: 'y_true' scikitlearn, crossvalidation
body: <p>I am trying to make a simple crossvalidation process by scikitlearn, crossvalidate, and I get the following TypeError:</p>
  <pre><code>TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-59-0471fb78d8f0&gt; in &lt;module&gt;
        5 
        6 model = NMF(n_components=185, init='random', random_state=0)
  ----&gt; 7 scores = cross_validate(model, df4_array, cv=5, scoring=('neg_mean_squared_error'))
        8 W = model.fit_transform(df4_array)
        9 H = model.components_
  
  ~\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_validation.py in cross_validate(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, return_train_score, return_estimator, error_score)
      234             return_times=True, return_estimator=return_estimator,
      235             error_score=error_score)
  --&gt; 236         for train, test in cv.split(X, y, groups))
      237 
      238     zipped_scores = list(zip(*scores))
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in __call__(self, iterable)
      919             # remaining jobs.
      920             self._iterating = False
  --&gt; 921             if self.dispatch_one_batch(iterator):
      922                 self._iterating = self._original_iterator is not None
      923 
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in dispatch_one_batch(self, iterator)
      757                 return False
      758             else:
  --&gt; 759                 self._dispatch(tasks)
      760                 return True
      761 
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in _dispatch(self, batch)
      714         with self._lock:
      715             job_idx = len(self._jobs)
  --&gt; 716             job = self._backend.apply_async(batch, callback=cb)
      717             # A job can complete so quickly than its callback is
      718             # called before we get here, causing self._jobs to
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\_parallel_backends.py in apply_async(self, func, callback)
      180     def apply_async(self, func, callback=None):
      181         &quot;&quot;&quot;Schedule a func to be run&quot;&quot;&quot;
  --&gt; 182         result = ImmediateResult(func)
      183         if callback:
      184             callback(result)
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\_parallel_backends.py in __init__(self, batch)
      547         # Don't delay the application, to avoid keeping the input
      548         # arguments in memory
  --&gt; 549         self.results = batch()
      550 
      551     def get(self):
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in __call__(self)
      223         with parallel_backend(self._backend, n_jobs=self._n_jobs):
      224             return [func(*args, **kwargs)
  --&gt; 225                     for func, args, kwargs in self.items]
      226 
      227     def __len__(self):
  
  C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in &lt;listcomp&gt;(.0)
      223         with parallel_backend(self._backend, n_jobs=self._n_jobs):
      224             return [func(*args, **kwargs)
  --&gt; 225                     for func, args, kwargs in self.items]
      226 
      227     def __len__(self):
  
  ~\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_validation.py in _fit_and_score(estimator, X, y, scorer, train, test, verbose, parameters, fit_params, return_train_score, return_parameters, return_n_test_samples, return_times, return_estimator, error_score)
      542     else:
      543         fit_time = time.time() - start_time
  --&gt; 544         test_scores = _score(estimator, X_test, y_test, scorer)
      545         score_time = time.time() - start_time - fit_time
      546         if return_train_score:
  
  ~\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_validation.py in _score(estimator, X_test, y_test, scorer)
      587         scorer = _MultimetricScorer(**scorer)
      588     if y_test is None:
  --&gt; 589         scores = scorer(estimator, X_test)
      590     else:
      591         scores = scorer(estimator, X_test, y_test)
  
  ~\AppData\Roaming\Python\Python37\site-packages\sklearn\metrics\_scorer.py in __call__(self, estimator, *args, **kwargs)
       85             if isinstance(scorer, _BaseScorer):
       86                 score = scorer._score(cached_call, estimator,
  ---&gt; 87                                       *args, **kwargs)
       88             else:
       89                 score = scorer(estimator, *args, **kwargs)
  
  TypeError: _score() missing 1 required positional argument: 'y_true'
  </code></pre>
  <p>I do not know why, because I am trying to do a Recommender System for tue University using Non negative matrix factorization, which is an unsupervised method ... shouldn`t the code work without y?</p>
  <p>Code:</p>
  <pre><code>from sklearn.decomposition import NMF
  from sklearn.model_selection import cross_validate
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import  mean_absolute_error, mean_squared_error,  r2_score
  
  model = NMF(n_components=185, init='random', random_state=0)
  scores = cross_validate(model, df4_array, cv=5, scoring=('neg_mean_squared_error'))
  W = model.fit_transform(df4_array)
  H = model.components_     
  </code></pre>