如何量化分类变量的数值影响?

数据挖掘 机器学习 统计数据 数学
2022-01-27 23:35:24

我训练了一个简单的神经网络,根据三个输入进行预测。例如,假设我正在尝试计算“完成一项学术研究需要多少天”,其中数据可能是:

f1 = institution
f2 = student age
f3 = study topic

标签是完成的总天数。

如果您想象以下数据结构:

f1, f2, f3, label

A,  D,  G,   v
B,  E,  H,   w
C,  F,  I,   x
A,  E,  H,   y
A,  D,  G,   z

无论如何我可以计算出每个功能在完成总天数中增加了多长时间,例如,我想说如果您选择f1 = A完成研究的总天数将增加 4 天.

我可以计算出每个选择之间有多少差异,例如选择f1 = A可能比您选择的时间快 7 天f1 = B,但我不知道如何粗略(也许是平均)确定每个选择代表多长时间。

1个回答

是的,您正在谈论训练模型,然后进行敏感性分析以确定每个解释变量的数值影响:

一些注意事项/提示:

  • 你说这三个特征是分类的。大概student_age是有序的分类,另外两个是无序的。但是你没有说他们每个人有多少级别(基数),或者有多少垃圾箱。您不一定要(比如说)student_age将每个 1 年的垃圾箱装箱。您可能会以 2/3 年的增量或分位数(参见 Rcut命令)进行分类,例如student_age: [0-17, 18-20, 21-23, 24-28, 29-34, 35+]. 同样,如果您有一个长尾的小型机构,样本很少,您可以将它们放在一起,或者按国家/地区/规模/重点/排名进行分类。

  • 每个变量的基数与数据集大小的乘积是多少?对于每种可能的组合,您有 1 个示例吗?>10?<0.1? 如果您没有那么多数据,您可能更喜欢使用线性回归而不是 NN,或者至少使用更浅的 NN 而不是深度。使用线性回归,您可以再次允许二次交互项、非线性项等

  • (使用线性回归,您只需直接读取模型系数即可直接看到影响,例如Princeton: -1.4, Princeton.Age22_24: -3.6

  • 如果您特别想使用 NN,请参阅石灰另请参阅有关使用 NN 进行敏感性分析的许多文章/教程,以及有关敏感性分析的 CrossValidated 答案

  • 深度神经网络缺乏可解释性您可以查看许多单独的层权重,但几乎不可能描绘出它如何转化为对输出的影响。