我假设您询问的是表格数据而不是视觉或 NLP。它不存在是因为 1) 有太多类型的数据和奇怪的问题,以及 2) 单变量 EDA 通常是不够的。如果有帮助,我可以详细说明我通常对单变量分析所做的工作。
在监督机器学习的背景下。我有一个通用的 R 降价文件,用于生成给定变量的 Word 报告。我喜欢 word 格式,因为我可以在专业环境中轻松地注释、评论和分享它们。我使用另一个 R 脚本为我的所有变量生成这些报告。在某些时候,我试图在 Python 中做同样的事情,但没有设法通过简单的格式化得到类似的东西。
在本报告中,我默认(括号中的调整)用于连续变量:
- 变量名,格式
- 生成单变量分布图和对数图(删除 0.001 和 0.999 分位数异常值,缺失值,如果变量为负数,可能会变得棘手 - 我经常使用 |x| * log(1+c*|x|) 转换 - 不是最佳的,而是行)。
- 相同的图表,但具有正/负类的分布(对于不平衡的问题,缩放可能很棘手)
- 某种部分依赖图(将变量分组在桶中并查看相关的正比率)
- 一个包含主要值的表(平均值、中值、最小值、最大值、极端分位数、缺失值计数、NA 的奇怪编码计数,它还检测某个值是否被超过 5% 的实例采用并给出该计数)和如上计算的相关阳性率
- 关于我的一些主要识别变量(想想性别或种族)、时间(看看是否有一些漂移)和一些平均值的地理分布的分布(通常以对数刻度)。
这是相对困难的,因为每个变量都是不同的,而且你总会有一个奇怪的变量导致一些错误,而且格式化很痛苦。如您所见,这完全取决于您的变量和问题。没有什么容易的(我花了大约 150 次尝试让它第一次处理我的所有变量)。
然后您必须单独查看每个报告,如果您想正确执行此操作可能需要几天时间,因为对于您要查找的内容没有任何规定。有时它是一个奇怪的分布颠簸,有时是缺失编码不正确的值,有时是类别差异,有时是一个非常倾斜的变量。由于问题通常取决于数据生成过程,因此它们的解决方案也取决于此,并且没有通用的规则来处理它们。
在某些时候,我试图为分类提供类似的东西,但没有得到任何令人满意的东西。如果类别数量非常低,我只是按类别和上面提到的一些主表计算正类。
然后,当您使用多元 EDA 时,事情会变得很奇怪。我通常做什么:
- 对 2D 绘图进行一些降维 (UMAP),以查看是否存在集群,如果输出也是集群的。
- 一些线性相关分析,相关矩阵+一些聚类/树状图,但很少删除任何东西,因为我有不平衡的数据集,其中信息可能来自两个高度相关变量之间的差异。
- 我放弃了迭代变量选择过程的任何想法,并使用一个带有十几个变量(由专家选择)的简单模型来创建基准(想想 glmnet),然后对我的所有变量使用具有强正则化的模型(xgboost 或 vanilla NN) .
- 然后我删除了在大模型中不重要的 50%-80% 的变量。
- 之后就没有规则了(除了正面回答你的经理)