Внутренне все оценщики scikit используют LabelEncoder для кодирования меток класса строки в целые числа.LabelEncoder по умолчанию использует numpy.unique для получения всех уникальных классов, а numpy.unique возвращает их в алфавитном порядке.
Вы также можете использовать это (или расширить) для выполнения своих требований.
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit(['bar', 'foo', 'bar', 'bar', 'bar', 'foo'])
le.classes_
#Output: array(['bar', 'foo'], dtype='|S3')
le.transform(['bar', 'foo', 'bar'])
#Output: array([0, 1, 0])
le.inverse_transform([0, 1, 1])
#Output: array(['bar', 'foo', 'foo'], dtype='|S3')