我有 2 个数据集训练和测试:
print(f"""{type(X_train)} {X_train.shape}""")
print(f"""{type(Y_train)} {Y_train.shape}""")
print(f"""{type(Y_train.iloc[:,0])} {Y_train.iloc[:,0].shape}""")
<class 'pandas.core.frame.DataFrame'> (531456, 6)
<class 'pandas.core.frame.DataFrame'> (531456, 1)
<class 'pandas.core.series.Series'> (531456,)
我得到 ValueError: Supported target types are: ('binary', 'multiclass')。取而代之的是“未知”。当我从 sklearn.model_selection 调用 cross_val_score 函数时。
看起来参数类型不好。我有一个: <class 'pandas.core.frame.DataFrame'> (531456, 6) for X_train <class 'pandas.core.frame.DataFrame'> (531456, 1) for _train 我转换为 <class' pandas.core.series.Series'> (531456,) 用于 cross_valscore。
cross_val_score(SVC(random_state=random_state), X_train, y=Y_train.iloc[:,0], scoring='accuracy', cv=kfold, n_jobs=4)
我不知道会发生什么。如果你能帮助我,请。非常感谢。泰奥
完整日志:
Empty Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in dispatch_one_batch(self, iterator)
807 try:
--> 808 tasks = self._ready_batches.get(block=False)
809 except queue.Empty:
C:\ProgramData\Anaconda3\lib\queue.py in get(self, block, timeout)
166 if not self._qsize():
--> 167 raise Empty
168 elif timeout is None:
Empty:
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-180-8f14ca49d3fa> in <module>
----> 1 cross_val_score(SVC(random_state=random_state), X_train, y=Y_train.iloc[:,0], scoring='accuracy', cv=kfold, n_jobs=4)
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
71 FutureWarning)
72 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73 return f(**kwargs)
74 return inner_f
75
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py in cross_val_score(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, error_score)
399 scorer = check_scoring(estimator, scoring=scoring)
400
--> 401 cv_results = cross_validate(estimator=estimator, X=X, y=y, groups=groups,
402 scoring={'score': scorer}, cv=cv,
403 n_jobs=n_jobs, verbose=verbose,
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
71 FutureWarning)
72 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73 return f(**kwargs)
74 return inner_f
75
C:\ProgramData\Anaconda3\lib\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)
240 parallel = Parallel(n_jobs=n_jobs, verbose=verbose,
241 pre_dispatch=pre_dispatch)
--> 242 scores = parallel(
243 delayed(_fit_and_score)(
244 clone(estimator), X, y, scorers, train, test, verbose, None,
C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in __call__(self, iterable)
1027 # remaining jobs.
1028 self._iterating = False
-> 1029 if self.dispatch_one_batch(iterator):
1030 self._iterating = self._original_iterator is not None
1031
C:\ProgramData\Anaconda3\lib\site-packages\joblib\parallel.py in dispatch_one_batch(self, iterator)
817 big_batch_size = batch_size * n_jobs
818
--> 819 islice = list(itertools.islice(iterator, big_batch_size))
820 if len(islice) == 0:
821 return False
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py in <genexpr>(.0)
240 parallel = Parallel(n_jobs=n_jobs, verbose=verbose,
241 pre_dispatch=pre_dispatch)
--> 242 scores = parallel(
243 delayed(_fit_and_score)(
244 clone(estimator), X, y, scorers, train, test, verbose, None,
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_split.py in split(self, X, y, groups)
334 .format(self.n_splits, n_samples))
335
--> 336 for train, test in super().split(X, y, groups):
337 yield train, test
338
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_split.py in split(self, X, y, groups)
78 X, y, groups = indexable(X, y, groups)
79 indices = np.arange(_num_samples(X))
---> 80 for test_index in self._iter_test_masks(X, y, groups):
81 train_index = indices[np.logical_not(test_index)]
82 test_index = indices[test_index]
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_split.py in _iter_test_masks(self, X, y, groups)
695
696 def _iter_test_masks(self, X, y=None, groups=None):
--> 697 test_folds = self._make_test_folds(X, y)
698 for i in range(self.n_splits):
699 yield test_folds == i
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\model_selection\_split.py in _make_test_folds(self, X, y)
647 allowed_target_types = ('binary', 'multiclass')
648 if type_of_target_y not in allowed_target_types:
--> 649 raise ValueError(
650 'Supported target types are: {}. Got {!r} instead.'.format(
651 allowed_target_types, type_of_target_y))
ValueError: Supported target types are: ('binary', 'multiclass'). Got 'unknown' instead.