【问题标题】:Standardizing only numerical columns仅标准化数字列
【发布时间】:2020-08-05 13:51:07
【问题描述】:

我有 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 的虚拟变量。我该怎么做?

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

【问题讨论】:

标签: python function dataframe standardization


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

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

【讨论】:

  • 非常有帮助,谢谢
猜你喜欢
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 2018-07-18
  • 2018-07-26
  • 1970-01-01
  • 2021-12-28
  • 2021-08-08
  • 2016-05-08
相关资源
最近更新 更多