@@ -1567,18 +1567,22 @@ def _transform(self, X):
1567
1567
raise ValueError ("X needs to contain only non-negative integers." )
1568
1568
n_samples , n_features = X .shape
1569
1569
1570
- if (self .handle_unknown == 'error' and
1571
- self .n_values == 'auto' ):
1570
+ if (self .n_values == 'auto' ):
1572
1571
for i in range (n_features ):
1573
1572
found_classes = set (np .unique (X [:, i ]))
1574
1573
train_classes = set (self .unique_samples_ [i ])
1575
1574
1576
1575
if not found_classes .issubset (train_classes ):
1577
- new_classes = found_classes .difference (train_classes )
1576
+ if self .handle_unknown not in ['error' , 'ignore' ]:
1577
+ template = ("handle_unknown should be either error or "
1578
+ "unknown, got %s" )
1579
+ raise ValueError (template % self .handle_unknown )
1578
1580
1579
- msg = ("unknown categorical feature(s) present"
1580
- "during transform : %s" % str (new_classes ))
1581
- raise ValueError (msg )
1581
+ if self .handle_unknown == 'error' :
1582
+ new_classes = found_classes .difference (train_classes )
1583
+ msg = ("unknown categorical feature(s) present"
1584
+ "during transform : %s" % str (new_classes ))
1585
+ raise ValueError (msg )
1582
1586
1583
1587
indices = self .feature_indices_
1584
1588
if n_features != indices .shape [0 ] - 1 :
@@ -1593,9 +1597,7 @@ def _transform(self, X):
1593
1597
# ignored.
1594
1598
mask = (X < self .n_values_ ).ravel ()
1595
1599
if np .any (~ mask ):
1596
- if self .handle_unknown not in ['error' , 'ignore' ]:
1597
- raise ValueError ("handle_unknown should be either error or "
1598
- "unknown got %s" % self .handle_unknown )
1600
+
1599
1601
if self .handle_unknown == 'error' :
1600
1602
raise ValueError ("unknown categorical feature present %s "
1601
1603
"during transform." % X [~ mask ])
0 commit comments