0

我有 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 的虚拟变量。我怎样才能做到这一点?

此外,在线性回归中,我有一个问题,即我的虚拟变量的系数太大,这会在预测中产生毫无意义的点。你对此有什么想法吗?

4

1 回答 1

0
  1. 我建议使用 MinMaxScaler,因为它会使您的虚拟变量保持原样,因为它们已经“标准化”。

  2. 如果您正在执行回归问题,您可能应该尝试做一个惩罚大系数的模型,例如 Lasso。它提供了有关这些功能的有价值的信息。在 Lasso 回归中,您有一个要调整的超参数:alpha,就像快速注意一样,alpha 越大,模型对大系数的惩罚越多,如果您设置 alpha = 0,您将得到线性回归。Lasso 类似于正态回归,但其 alpha 可以做出更合理的估计并避免大系数。

于 2020-08-05T14:51:15.973 回答