machine-learning - 将所有特征置于与目标变量相同的范围内对性能有何影响?

标签 machine-learning regression categorical-data dimensionality-reduction feature-engineering

假设我有以下数据集。 (数据完全随机)

Colour  Size       Shape        Pre booking number  Price
White   24         Square          600              1400
Blue    35         Circle          435              1854
Black   16         Square          873              1272
White   43         Triangle        221              1777
White   20         Oval            532              1434
Black   35         Triangle        221              ????

我必须预测 [颜色、尺寸、形状、预订编号] 的特定组合的价格

考虑以下特征工程方法 我选择颜色与价格。我按颜色分组以找出每个组(颜色)的平均价格,然后简单地将颜色变量替换为其各自的平均值。我对每个分类变量都这样做。对于非分类变量,我保持原样。

Colour  Size        Shape   Pre booking number      Price
1536    1400        1336        600                 1400
1854    1854        1854        435                 1854
1272    1272        1336        873                 1272
1536    1777        1777        221                 1777
1536    1434        1434        532                 1434
1272    1854        1777.       221                 ????

现在我将这些数据提供给任何机器学习回归模型。

我的问题是:

  1. 这种方法有多好/坏?内部发生了什么?

  2. 一般来说,使所有变量与目标变量(也许在同一尺度上)具有强相关性有多有效?

  3. 最重要的是,如果我仅通过添加/相乘来减少维度来合并两个或多个分类列,它将如何影响预测?

谢谢。

最佳答案

  1. 据我所知,对颜色和形状等名义特征的一种热编码表现更好。像您所做的那样输入整数值会为蓝色而不是白色添加附加值,这是没有意义的。您已经假设颜色和价格之间存在高度相关性,这可能是错误的,也可能不是错误的。我将运行顺序向后选择来检查功能的实际重要性。如果颜色和价格高度相关,您的方法可能是正确的,您现在应该缩放功能。
  2. 将功能调整到相同的规模非常有效,因为这有助于赋予每个功能合理的重要性。如果某个特征的数量级为数千个并且未缩放,则权重可能会过度重视该特征。显然,与目标变量相关性较高的特征应该包含在训练中。
  3. 合并两个不相关的分类列会影响您的结果。另一方面,如果它们高度相关,那么你可以将它们合并。 然而,我不确定您是否应该为这个没有太多特征列的数据集进行降维。 不过,如果您想知道如何组合两个彼此相关性较弱但与目标变量高度相关的特征,这里有一个线程: https://stats.stackexchange.com/q/110984

这是另一篇关于数据过滤的好文章: https://towardsdatascience.com/data-correlation-can-make-or-break-your-machine-learning-project-82ee11039cc9

最后,对某种方法的评论可能不准确。您始终需要了解它们的相关程度并尝试不同的方法和模型。检查您的数据是否具有线性或非线性相关性,并相应地选择您的模型。对相对简单的数据进行复杂的修改并使用不必要的复杂模型可能并不总是一个好方法。

关于machine-learning - 将所有特征置于与目标变量相同的范围内对性能有何影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51785074/

相关文章:

java - Deeplearning4j 神经网络配置

tensorflow - 将张量输入 CNN 时是否应该转置它

评估 elat 和 apriori 项集时删除具有空值的行

r - 用 R 中的 anova() 比较两个线性模型

R 正则化回归中的系数

python - 推特/通用分类训练语料库

r - R 中的空间面板回归 : non conformable spatial weights?

machine-learning - XGBoost/CatBoost 中具有大量类别的分类变量

python - 传递 dtype= 'category' 的系列作为 Pandas 分类函数的类别

r - 用分类变量拟合 nls 模型