哪个是将已知值外推到 table 中缺失值的最佳数据挖掘模型? (一般问题)

Which is the best Data Mining model to extrapolate known values to missing values in a table? (General question)

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

所以,假设我们有一个包含三列和大约 4000 行的 table:

YEAR COLOR NAME
1900 Green David
1901 Yellow Sarah
1902 Green ???
1902 Red Sarah
2020 Purple John

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

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

我的目标是将可用的名称值外推到整个 table 并获得每个名称值的出现范围(例如在箱线图中)

我想象过这样一个过程,虽然我不太确定它在统计上是否有意义(欢迎任何异议和建议):

  1. 对于每个未知的 NAME 值,算法会随机选择一个已知的 NAME 值。选择特定 NAME 值的几率取决于变量 YEAR 和 COLOR。例如,如果 'David' 值倾向于与较低的 Year 值相关并且与颜色的 'Green' 或 'Purple' 值相关,则算法给出 'David' 更高的概率被选择,如果年份和颜色的输入值为“1900,紫色”。

  2. 当上述过程结束后,统计每个名字出现的次数。

  3. 上述过程应用 30 次,每个名称的结果显示在绘图框中。

但是,我不知道哪个是实现类似想法的最佳模型。我把过程画在简单的画图中:

Possible output for the task

您认为哪种方法可以很好地完成这项任务?感谢您的帮助。

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

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

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

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

在构建代码之前,您似乎还需要提供年份和颜色的排名值。从这里开始,您只需在 for 循环中提供波段,例如 if year > 1985 等以指定名称。