我正在使用回归来分析服务器数据以查找特征重要性。
我的一些 IV(自变量)或 X 以百分比表示,例如时间百分比、内核百分比、所用资源百分比,而其他则以字节数等数字表示。
我用(X-X_mean)/X_stddev
标准化了我所有的 X.(我这样做有错吗?
如果我的 IV 是数字和 %s 的混合,我应该在 Python 中使用哪种算法,并且在以下情况下我预测 Y:
情况 1:预测连续值 Y
a.使用套索回归就足够了吗?
二.如果 X 是标准化的并且是 数值?
三.如果 X 是标准化的并且是 %?
情况 2:预测 % ed 值 Y,例如"已用资源百分比"。
a. 我应该使用β回归吗?如果是这样,Python 中的哪个包提供了 这?
二.如果 X 是标准化的并且是 数值?
三.如果 X 是标准化的并且是 %?
如果我在标准化已经是%的X时是错误的,那么将这些数字用作0.30%的30%是否可以使它们落在0-1的范围内?所以这意味着我不标准化它们,我仍然会标准化其他数字 IV。
案例 1 和 2 的最终目标:
求出IV对Y的影响百分比。 例如:当 X1 增加 1 个单位时,Y 增加 21%
我从其他帖子中了解到,我们永远不能将所有系数加起来总共 100 来评估每个 IV 对 DV 的影响百分比。我希望我在这方面是正确的。
混合使用预测变量对于任何形式的回归都无关紧要,这只会改变您解释系数的方式。然而,重要的是 Y 变量的类型/分布
情况 1:预测连续值 Y a.使用套索回归就足够了吗?
常规 OLS 回归将对此正常工作
二.如果 X 是标准化的并且是 数值?
系数的解释总是遵循这样的格式:"对于 X 的 1 个单位变化,我们期望 Y 中的 x 系数变化量,保持其他预测变量不变">
因为您有标准化的 X,所以您的单位是标准差。因此,解释将是"对于 X 的 1 个标准差变化,我们预计 Y 中的 X 系数变化量......">
三.如果 X 是标准化的并且是 %?
同上。您的单位仍然是标准偏差,尽管它最初来自百分比
情况 2:预测 % ed 值 Y,例如已用资源百分比。
a. 我应该使用β回归吗?如果是这样,Python 中的哪个包提供了 这?
这很棘手。典型的建议是在 Y 结果为百分比时使用二项式逻辑回归之类的方法。
二.如果 X 是标准化的并且是 数值?
三.如果 X 是标准化的并且是 %?
与上述解释相同。但是,如果您使用逻辑回归,则它们以对数赔率为单位。我建议阅读逻辑回归,以更深入地了解它是如何工作的
如果我在标准化已经是%的X时是错误的,是不是 可以将这些数字用作 0.30 表示 30%,以便它们落在 范围 0-1?所以这意味着我不标准化它们,我仍然会 标准化其他数字 IV。
标准化对于回归中的变量是完全可以的,但就像我说的,它会改变你的解释,因为你的单位现在是标准差
两种情况 1 和 2 的最终目标:
例如:当X1增加1个单位时, Y 增长 21%
如果你的 Y 是一个百分比,并且你使用 OLS 回归之类的东西,那么这正是你解释系数的方式(对于 X1 的 1 个单位变化,Y 会改变一些百分比)
你的问题混淆了一些概念,混淆了很多术语。本质上,您是在询问a)(线性)回归的特征预处理,b)线性回归系数的可解释性,以及c)敏感性分析(特征X_i对Y的影响)。但要小心,因为你做了一个巨大的假设,即 Y 线性依赖于每个X_i,见下文。
- 标准化不是一种"算法",只是一种预处理数据的技术。
- 回归需要标准化,但基于树的算法(RF/XGB/GBT)不需要标准化 - 有了这些,您可以直接输入原始数字特征(百分比,总计等)。
(X-X_mean)/X_stddev
不是标准化,而是规范化。(- 另一种方法是(真正的)标准化,即:
(X-X_min)/(X_max-X_min)
,它将每个变量转换为范围 [0,1];或者您可以转换为 [0,1]。
- 另一种方法是(真正的)标准化,即:
- 最后你问回归中的敏感性分析:我们可以直接将X_i的回归系数解释为 Y 对X_i的敏感性吗?
- 停下来想想你在"两种情况1和2的最终目标:找到IV对Y的影响百分比"中的基本线性假设,例如:当X1增加1个单位时,Y增加21%"。
- 您假设因变量与每个自变量具有线性关系。但情况往往并非如此,它可能是非线性的。例如,如果你正在研究年龄对工资的影响,你通常会看到它增加到40多岁/50多岁,然后逐渐减少,当你达到退休年龄(比如65岁)时,急剧下降。
- 因此,你可以将年龄对工资的影响建模为二次或高阶多项式,通过加入 Age^2 和 Age^3 项(否则有时你可能会看到
sqrt(X)
、log(X)
、log1p(X)
、exp(X)
等项。任何最能捕捉非线性关系的东西。您可能还会看到变量-变量交互作用项,尽管回归严格假定变量彼此不相关。
显然,年龄对工资 - 有巨大的影响,但我们不会通过组合年龄、年龄^2、年龄^3的(绝对值)系数来衡量工资对年龄的敏感性。 如果我们只有一个线性的年龄项,年龄的
- 单一系数将大大低估年龄对工资的影响,它将"平均"出年龄<40政权的强正关系与年龄>50的负关系
- 因此,对于"我们可以直接将X_i的回归系数解释为 Y 对X_i的敏感性吗?"的一般答案是"仅当 Y 和该X_i之间的关系是线性的,否则没有"。
-
一般来说,进行灵敏度分析的更好、更简单的方法(无需假设线性响应,也不需要标准化 % 特征)是基于树的算法 (RF/XGB/GBT),它生成特征重要性。
- 顺便说一句,我知道你的练习告诉你使用回归,但一般来说,你可以从基于树的(RF/XGB)中获得更好的更快特征重要性信息,特别是对于浅树(max_depth值小,节点大小值大,例如>训练集大小的0.1%)。这就是人们使用它的原因,即使他们的最终目标是回归。
(你的问题是在交叉验证上会得到更好的答案,但离开这里很好,所以,有一个交叉)。