1) LabelEncoder необходим, поскольку ваша модель машинного обучения не может обрабатывать строки. Вам нужна последовательная цифра c метка (0, 1, 2, .. n-1). Но это только для части метки, вы можете использовать горячее кодирование или метки цифр c в зависимости от требований вашей модели.
2) StandardScalar делает ваши данные нулевыми и единичными отклонениями.
The standard score of a sample x is calculated as:
z = (x - u) / s
where u is the mean of the training samples or zero if with_mean=False, and s is the standard deviation of the training samples or one if with_std=False.
Стандартизация набора данных является распространенным требованием для многих оценщиков машинного обучения: они могут вести себя плохо, если отдельные функции не более или менее похожи на стандартные нормально распределенные данные (например, гауссиан с 0 средним и единицей дисперсия).
Например, многие элементы, используемые в целевой функции алгоритма обучения (например, ядро RBF машин опорных векторов или регуляризаторы L1 и L2 линейных моделей), предполагают, что все объекты сосредоточены вокруг 0 и иметь дисперсию в том же порядке. Если у признака есть отклонение, которое на несколько порядков больше, чем у других, оно может доминировать в целевой функции и сделать оценщика неспособным учиться на других признаках правильно, как ожидалось. (документация scikit-learn)
Таким образом, обычно это помогает вам правильно масштабировать данные, что может быть полезно для более быстрой конвергенции. Но, опять же, это зависит от используемой вами модели ML.