Вопросы по стандартизации и масштабированию - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать модель, которая использует несколько физико-химических свойств молекулы (в том числе количество атомов, количество колец, объем и т. Д.), Чтобы предсказать числовое значение Y. Я хотел бы использовать регрессию PLS и я понимаю, что стандартизация здесь очень важна. Я программирую на Python, используя scikit-learn. Тип и диапазон функций варьируются. Некоторые из них int64, а другие с плавающей точкой. Некоторые функции обычно имеют небольшие (положительные или отрицательные) значения, в то время как другие имеют очень большое значение. Я пробовал использовать различные скейлеры (например, стандартный скейлер, нормализация, минимаксный скейлер и т. Д.). Тем не менее, R2 / Q2 по-прежнему низки. У меня есть несколько вопросов:

  1. Возможно ли, что при масштабировании некоторые из очень важных признаков теряют свою значимость и, следовательно, вносят меньший вклад в объяснение дисперсии переменной отклика?
  2. Если да, если я идентифицирую некоторые важные функции (исходя из экспертных знаний), можно ли масштабировать другие функции, кроме этих? Или масштабировать только важные функции?
  3. Некоторые из признаков, хотя и не всегда коррелированные, имеют значения, которые находятся в аналогичном диапазоне (например, 100-400), по сравнению с другими (например, от -1 до 10). Можно ли масштабировать только определенную группу объектов, которые находятся в одном диапазоне?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Вся идея масштабирования состоит в том, чтобы сделать модели более устойчивыми к анализу в пространстве признаков. Например, если у вас есть 2 функции как 5 Kg и 5000 gm, мы знаем, что оба они одинаковы, но для некоторого алгоритма, который sensitive метрического пространства, такого как KNN, PCA и т. Д., Они будет уделять больше внимания вторым функциям, поэтому для этих алгоритмов необходимо выполнить масштабирование.

Теперь перейдем к вашему вопросу,

  1. Масштабирование не влияет на значимость функций. Как я объяснил выше, это помогает лучше анализировать данные.
  2. Нет, вы не должны этого делать, причина объяснена выше.
  3. Если вы хотите включить знания о предметной области в свою модель, вы можете использовать ее в качестве предварительной информации. Короче говоря, для линейной модели это то же самое, что и regularization. У этого есть очень хорошие особенности. если вы думаете, что у вас много useless-features, вы можете использовать L1 регуляризацию, которая создает эффект sparse для пространства объектов, что является ничем иным, как назначением 0 веса бесполезным функциям. Вот ссылка для more-info .

Еще один момент, некоторые методы, такие как модель на основе tree, не нуждаются в масштабировании. Наконец, в основном это зависит от выбранной вами модели.

0 голосов
/ 15 января 2019
  1. Потерять значение? Да. Содействовать меньше? Нет.
  2. Нет, все не в порядке. Это либо все, либо ничего.
  3. Нет. Идея масштабирования не в том, чтобы уменьшить / увеличить значимость / влияние переменной. Это преобразование всех переменных в общую шкалу, которая может быть интерпретирована.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...