Изменить: см. Обсуждение комментариев о, возможно, лучшем ColumnTransformer
подходе. Может быть интересна сравнительная таблица, которую можно найти Здесь.
По сути, DataFrameMapper
(и весь пакет sklearn-pandas) нацелен на объединение преимуществ объектов pandas DataFrame
с мощью пакета машинного обучения sklearn.
sklearn.Pipeline
описывает упорядоченный список преобразований для выполнения в матричных форматах (предоставляемых пакетами numpy и scipy). Эти преобразования будут выполняться для всей матрицы одно за другим в последовательности и будут кодировать весь процесс обучения и прогнозирования от начала до конца.
Первая часть кортежа преобразования конвейера (также известная как шаг) - это его имя, и оно не оказывает фактического влияния на процесс, оно просто используется для удобства чтения.
С другой стороны, DataFrameMapper
работает с объектами DataFrame, созданными пакетом pandas, и может применять преобразования к определенным частям фрейма данных (не обязательно ко всему набору данных). DataFrames похожи на матрицы numpy и scipy, с одной заметной разницей в отслеживании меток и метаданных строк и столбцов. Операции DataFrames обеспечивают доступ к строкам и столбцам, управление ими и чтение с использованием логических идентификаторов вместо индексов.
Первая часть кортежа преобразования DataFrameMapper
описывает, какие столбцы должны пройти преобразование.
Три больших отличия:
DataFrameMapper
- более гибкий инструмент, он позволяет выполнять различные преобразования в разных столбцах и больше ориентирован на преобразование сложных структур данных, а sklearn.Pipeline
больше ориентирован на выполнение преобразований, связанных с машинным обучением, на однородном наборе данных.
DataFrameMapper
позволит вам сохранить аннотации и метки, которые вы присвоили своему объекту pandas DataFrame
, а sklearn.Pipeline
уменьшит любой результат до массива / матрицы numpy / scipy.
sklearn.Pipeline
является частью гораздо более стабильного и хорошо известного пакета и поэтому может быть более безопасным выбором, если важны такие соображения, как стабильность и обслуживание.
person
NirIzr
schedule
01.11.2016