【问题标题】:Linear regression gives worse results after normalization or standardization线性回归在归一化或标准化后给出更差的结果
【发布时间】:2019-06-07 05:35:02
【问题描述】:

我正在对此数据集执行线性回归: archive.ics.uci.edu/ml/datasets/online+news+popularity

它包含各种类型的特征 - 比率、二进制、数字等。

我尝试过使用 scikit-learn Normalizer、StandardScaler 和 PowerTransformer,但结果都比不使用它们时更糟糕。

我是这样使用它们的:

from sklearn.preprocessing import StandardScaler
X = df.drop(columns=['url', 'shares'])
Y = df['shares']
transformer = StandardScaler().fit(X)
X_scaled = transformer.transform(X)
X_scaled = pd.DataFrame(X_scaled, columns=X.columns)
perform_linear_and_ridge_regression(X=X_scaled, Y=Y)

最后一行 perform_linear_and_ridge_regression() 的函数肯定是正确的,并且正在使用 GridSearchCV 来确定最佳超参数。

只是为了确保我也包含该功能:

def perform_linear_and_ridge_regression(X, Y):
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=10) 
    lin_reg_parameters = { 'fit_intercept': [True, False] }
    lin_reg = GridSearchCV(LinearRegression(), lin_reg_parameters, cv=5)
    lin_reg.fit(X=X_train, y=Y_train)
    Y_pred = lin_reg.predict(X_test)
    print('Linear regression MAE =', median_absolute_error(Y_test, Y_pred))

结果令人惊讶,因为它们都提供了更差的结果:

线性调节。原始数据:MAE = 1620.510555135375

线性调节。使用 Normalizer 后:MAE = 1979.8525218964242

线性调节。使用 StandardScaler 后:MAE = 2915.024521207241

线性调节。使用 PowerScaler 后:MAE = 1663.7148884463259

这只是一个特殊情况,标准化没有帮助,还是我做错了什么?

编辑:即使我将二进制特征排除在外,大多数转换器的结果也会更差。

【问题讨论】:

  • 我观察到完全相同的问题。我确信我的数据也是分类的。

标签: machine-learning scikit-learn linear-regression


【解决方案1】:

您的数据集具有许多分类和有序特征。您应该首先单独处理该问题。此外,您似乎也在对分类变量应用规范化,这是完全错误的。

这里是nice-link,它解释了如何处理回归问题的分类特征。

【讨论】:

  • 除 url 外,哪些特征是分类的,我已从 X 数据集中排除?
  • 除了分类数据,考虑标准化二进制值。您会得到非二进制值,例如 0.42,这是没有意义的。
  • 在那里您可以检查 (rstudio-pubs-static.s3.amazonaws.com/…),每个功能的类型。有20多个特征,需要改造。
  • 我将二进制值保持原样,但结果仍然更糟。
  • 这是多类问题,尝试在 ligistic-regression (scikit-learn.org/stable/modules/generated/…) 中使用多类选项。一点建议,在应用任何模型之前,请先探索数据集。因为数据理解可以帮助你拟合好的模型。
猜你喜欢
  • 2015-11-13
  • 2017-12-16
  • 2013-08-20
  • 2016-07-28
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 1970-01-01
相关资源
最近更新 更多