В чем разница между стандартным калькулятором и нормализатором в модуле sklearn.preprocessing? Разве оба не делают то же самое? i) удалить среднее значение и масштаб с использованием отклонения?
Разница между стандартным калькулятором и нормализатором в sklearn.preprocessing
Ответ 1
Из Normalizer docs:
Каждый образец (т.е. каждая строка матрицы данных) с по меньшей мере одним ненулевым компонентом перемасштабирован независимо от других выборок, так что его норма (l1 или l2) равна единице.
Стандартизировать функции, удалив среднее значение и масштабирование для дисперсии единиц
Иными словами, Normalizer действует по-разному и по столбцам StandardScaler. Нормализатор не удаляет среднее и масштабное отклонение, а масштабирует всю строку до единичной нормы.
Ответ 2
Эта визуализация и статья Бена очень помогают в иллюстрации идеи.
StandardScaler предполагает, что ваши данные обычно распределяются внутри каждой функции. "Удаляя среднее значение и масштабируя до единичной дисперсии", вы можете видеть на рисунке теперь, что они имеют одинаковый "масштаб" независимо от его исходного.
Ответ 3
StandardScaler стандартизирует функции, удаляя среднее значение и масштабирование до единицы дисперсии, Normalizer выполняет масштабирование каждого образца.
Ответ 4
StandardScaler() стандартизирует функции (такие как данные о человеке, например, рост, вес), удаляя среднее значение и масштабируя до единичной дисперсии.
(Разница в единицах: Разница в единицах означает, что стандартное отклонение выборки, а также дисперсия будут стремиться к 1, поскольку размер выборки стремится к бесконечности.)
Normalizer() изменяет масштаб каждого образца. Например, пересчет цены акций каждой компании независимо от другой.
Некоторые акции дороже, чем другие. Чтобы учесть это, мы нормализуем это. Нормализатор отдельно преобразует цену акций каждой компании в относительную шкалу.
Ответ 5
В дополнение к прекрасному предложению @vincentlcy просмотреть эту статью, теперь есть пример в документации Scikit-Learn здесь. Важным отличием является то, что Normalizer()
применяется к каждому образцу (то есть к строке), а не к столбцу. Это может работать только для определенных наборов данных, которые соответствуют предположению о похожих типах данных в каждом столбце.
Ответ 6
стандартное масштабирование я означает, что StandardScaler используется для нормализации данных, чтобы вести себя как нормальные распределенные данные. Он широко используется в процессе машинного обучения, потому что предположим, что если u учитывает высоту как функцию, она ведет себя случайным образом, так как u преобразует ее от cm к ногам в сравнении с так что нормализация данных придет нам на помощь. В этом случае нормализация выполняется по-разному.