首页 > 解决方案 > 将已知值外推到表中缺失值的最佳数据挖掘模型是哪个?(一般问题)

问题描述

我正在从事一个小型数据挖掘项目(我仍然是数据科学专业的学生,​​而不是专业人士)。也许您可以帮助我为我的任务选择合适的模型。

因此,假设我们有一个包含三列和大约 4000 行的表:

颜色 姓名
1900 绿 大卫
1901 黄色的 莎拉
1902 绿 ???
1902 红色的 莎拉
…</td> …</td> …</td>
2020 紫色的 约翰

任何字段的任何值都可以在数据集中重复(也可以是年份值)

在前两列中,我们没有缺失值,但在第三列中我们只有大约 20% 的 Name 值。名称值在某种程度上取决于前两列(不是因果关系)。

我的目标是将可用的名称值外推到整个表,并为每个名称值获取一系列出现(例如在箱线图中)

我想象过这样的过程,虽然我不太确定它在统计上是否有意义(感谢任何反对和建议):

  1. 对于每个未知的 NAME 值,算法随机选择一个已知的 NAME 值。选择特定名称值的几率取决于变量 YEAR 和 COLOR。例如,如果“大卫”的值往往与较低的年份值相关,并且与颜色的“绿色”或“紫色”值相关,那么如果年份和颜色的输入值为“ 1900 年,紫色”。

  2. 当上述过程结束时,计算每个名称的出现次数。

  3. 上述过程应用了 30 次,每个名称的结果都显示在 plotbox 中。

但是,我不知道哪个是实现类似想法的最佳模型。我用一张简单的油漆画出了这个过程:

任务的可能输出

您认为哪种方法可能是完成这项任务的好方法?我很感激任何帮助。

标签: statisticsdata-sciencedata-analysisdata-miningexploratory-data-analysis

解决方案


我认为您已经完成了流程,它正在转换可能是第一个障碍的数据。

我会考虑使用from sklearn.preprocessing import OrdinalEncoder对数据进行编码以从分类转换为数字。

然后,您可以使用随机数生成器在编码定义的范围内生成一个数字,该编码将随机选择一个名称。

用 f 循环循环这 30 次以获得结果。

看起来您还需要在构建代码之前提供年份和颜色的排名值。从这里您只需在 for 循环中提供带,例如,if year > 1985等来指定名称。


推荐阅读