@@ -421,7 +421,11 @@ def _legacy_fit_transform(self, X):
421
421
dtype = getattr (X , 'dtype' , None )
422
422
X = check_array (X , dtype = np .int )
423
423
if np .any (X < 0 ):
424
- raise ValueError ("X needs to contain only non-negative integers." )
424
+ raise ValueError ("OneHotEncoder in legacy mode cannot handle "
425
+ "categories encoded as negative integers. "
426
+ "Please set categories='auto' explicitly to "
427
+ "be able to use arbitrary integer values as "
428
+ "category identifiers." )
425
429
n_samples , n_features = X .shape
426
430
if (isinstance (self .n_values , six .string_types ) and
427
431
self .n_values == 'auto' ):
@@ -504,7 +508,11 @@ def _legacy_transform(self, X):
504
508
"""Assumes X contains only categorical features."""
505
509
X = check_array (X , dtype = np .int )
506
510
if np .any (X < 0 ):
507
- raise ValueError ("X needs to contain only non-negative integers." )
511
+ raise ValueError ("OneHotEncoder in legacy mode cannot handle "
512
+ "categories encoded as negative integers. "
513
+ "Please set categories='auto' explicitly to "
514
+ "be able to use arbitrary integer values as "
515
+ "category identifiers." )
508
516
n_samples , n_features = X .shape
509
517
510
518
indices = self ._feature_indices_
0 commit comments