Стандартизация только числовых столбцов - PullRequest
0 голосов
/ 05 августа 2020

У меня есть 2 функции для стандартизации моих данных, например:

def standartChanger(dataFrame):
    stdSc = preprocessing.StandardScaler()
    cols = dataFrame.columns
    dfscaled = stdSc.fit_transform(dataFrame)
    dfscaled = pd.DataFrame(dfscaled, columns=cols)
    return dfscaled, stdSc

def standartChangerwithMeanVar(dataFrame,stdSc):
    cols = dataFrame.columns
    dataFrame = stdSc.transform(dataFrame)
    dfscaled = pd.DataFrame(dataFrame, columns=cols)
    return dfscaled

Одна для стандартизации поезда, а другая для тестирования. У меня есть несколько фиктивных переменных в моем фрейме данных, которые я не хочу стандартизировать. Теперь мне нужно изменить эти функции, чтобы они не касались фиктивных переменных, равных 0-1. Как я могу это сделать?

Кроме того, в линейной регрессии у меня проблема из-за того, что коэффициенты моих фиктивных переменных слишком велики, что создает бессмысленные точки в прогнозах. У вас есть идеи на этот счет?

1 Ответ

0 голосов
/ 05 августа 2020
  1. Я бы предложил использовать MinMaxScaler, так как он оставит ваши фиктивные переменные такими, какие они есть, поскольку они уже «нормализованы».

  2. Если вы выполняете проблема регрессии, вам, возможно, стоит попробовать создать модель, которая штрафует большие коэффициенты, например, Лассо. Что дает ценную информацию об особенностях. В регрессии лассо у вас есть гиперпараметр для настройки: альфа, так же как быстрое примечание, чем больше альфа, тем больше модель штрафует большие коэффициенты, если вы установите альфа = 0, вы вернетесь к линейной регрессии. Лассо похоже на обычную регрессию, но с альфой, которая дает более разумные оценки и избегает больших коэффициентов.

...