Использование LabelEncoder Scikit правильно в нескольких программах

Основная задача, которую я имею под рукой, – это

a) Прочитайте некоторые данные, разделенные вкладкой.

b) Проделайте основную предварительную обработку

c) Для каждого категориального столбца используйте LabelEncoder для создания сопоставления. Это немного похоже на это

 mapper={} #Converting Categorical Data for x in categorical_list: mapper[x]=preprocessing.LabelEncoder() for x in categorical_list: df[x]=mapper[x].fit_transform(df.__getattr__(x)) 

где df – это рамка данных pandas, а categorical_list – список заголовков столбцов, которые необходимо преобразовать.

d) Обучить классификатор и сохранить его на диск с использованием pickle

e) Теперь в другой программе загружена модель.

f) Загружаются тестовые данные и выполняется одна и та же предварительная обработка.

g) LabelEncoder's используются для преобразования категориальных данных.

h) Модель используется для прогнозирования.

Теперь вопрос, который у меня есть, будет ли шаг g) работать правильно?

Как говорится в документации LabelEncoder

 It can also be used to transform non-numerical labels (as long as they are hashable and comparable) to numerical labels. 

Таким образом, каждый хеш входа будет иметь одно и то же значение каждый раз?

Если «Нет», то это хороший способ. Любой способ получить отображения кодера? Или совсем другой путь от LabelEncoder?

2 Solutions collect form web for “Использование LabelEncoder Scikit правильно в нескольких программах”

В соответствии с реализацией LabelEncoder описанный вами конвейер будет работать корректно, если и только если вы fit LabelEncoders во время тестирования с данными, которые имеют точно такой же набор уникальных значений.

Есть несколько хакерский способ повторного использования LabelEncoders, который вы получили во время поездов. LabelEncoder имеет только одно свойство, а именно classes_ . Вы можете разложить его, а затем восстановить

Поезд:

 encoder = LabelEncoder() encoder.fit(X) numpy.save('classes.npy', encoder.classes_) 

Контрольная работа

 encoder = LabelEncoder() encoder.classes_ = numpy.load('classes.npy') # Now you should be able to use encoder # as you would do after `fit` 

Это кажется более эффективным, чем установка его с использованием одних и тех же данных.

Для меня работает LabelEncoder().fit(X_train[col]) , травление этих объектов для каждого категориального столбца col а затем повторное использование тех же объектов для преобразования одного и того же столбца col в наборе данных проверки. В основном у вас есть объект-кодер метки для каждой из ваших категориальных столбцов.

  1. Таким образом, fit() по данным обучения и рассортировать объекты / модели, соответствующие каждому столбцу в учебном X_train .
  2. Для каждого столбца в столбцах проверки установите X_cv , загрузите соответствующий объект / модель и примените преобразование, transform(X_cv[col]) к функции преобразования как: transform(X_cv[col]) .
  • автоматически вычислять кластеры автоматически для kmeans
  • Как вычислить точность, отзыв, точность и f1-score для многоклассового футляра с помощью scikit?
  • Reshape pandas.Df для использования в GridSearch
  • Регрессия OLS: Scikit против Statsmodels?
  • Оценка логистической регрессии с перекрестной проверкой
  • Python: UnicodeDecodeError: кодек 'utf8' не может декодировать байт
  • Расположение элементов в массиве numpy
  • вычислять попарные симфаши "расстояния"
  • Python scikit-learn: не может клонировать объект ... поскольку конструктор, похоже, не задает параметр
  • Отсутствующие ценности в обучении машинам scikits
  • scidit-learn GridSearchCV перестает работать, когда n_jobs> 1
  •  
    Interesting Posts for Van-Lav

    pandas применяют regex для замены значений

    Эффективный способ нормализации Scipy Sparse Matrix

    Ошибка компиляции пин-инструмента с помощью python включает в себя получение ошибки C2872: 'UINT32': неоднозначный символ

    Пул потоков Python, который обрабатывает исключения

    Программа Python для обнаружения пересечения одномерных сегментов линии

    Поведение IPython отличается для файлов .py и .ipy, несмотря на то, что скрипт является «чистым» python (пользовательский крюк обработчика исключений перестает работать)

    Pandas – преобразование мультииндекса данных в объект datetime

    Показывать индикатор выполнения для моего многопоточного процесса

    Как работает NumPy Sum (с осью)?

    Итерация через Pandas Groupby и слияние данных

    TensorFlow: Макс тензора вдоль оси

    Как запустить собственный фиксатор 2to3?

    Распространение большого приложения с поддержкой Python: лучшие практики

    Python: скомпилируйте в приложение командной строки Unix

    Python – настройка цвета фона на прозрачный в сюжетных графиках

    Python - лучший язык программирования в мире.