哪个是将已知值外推到 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 并获得每个名称值的出现范围(例如在箱线图中)
我想象过这样一个过程,虽然我不太确定它在统计上是否有意义(欢迎任何异议和建议):
对于每个未知的 NAME 值,算法会随机选择一个已知的 NAME 值。选择特定 NAME 值的几率取决于变量 YEAR 和 COLOR。例如,如果 'David' 值倾向于与较低的 Year 值相关并且与颜色的 'Green' 或 'Purple' 值相关,则算法给出 'David' 更高的概率被选择,如果年份和颜色的输入值为“1900,紫色”。
当上述过程结束后,统计每个名字出现的次数。
上述过程应用 30 次,每个名称的结果显示在绘图框中。
但是,我不知道哪个是实现类似想法的最佳模型。我把过程画在简单的画图中:
Possible output for the task
您认为哪种方法可以很好地完成这项任务?感谢您的帮助。
我认为您已经完成了流程,它正在转换数据,这可能是第一个障碍。
我会考虑使用 from sklearn.preprocessing import OrdinalEncoder
对数据进行编码,以便将分类数据转换为数字数据。
然后您可以使用随机数生成器在编码定义的范围内生成一个数字,该编码将随机 select 一个名称。
用 f 循环循环 30 次以获得结果。
在构建代码之前,您似乎还需要提供年份和颜色的排名值。从这里开始,您只需在 for 循环中提供波段,例如 if year > 1985
等以指定名称。
我正在做一个小的数据挖掘项目(我仍然是一名数据科学专业的学生,不是专业人士)。也许你可以帮助我为我的任务选择一个合适的模型。
所以,假设我们有一个包含三列和大约 4000 行的 table:
YEAR | COLOR | NAME |
---|---|---|
1900 | Green | David |
1901 | Yellow | Sarah |
1902 | Green | ??? |
1902 | Red | Sarah |
… | … | … |
2020 | Purple | John |
任何字段的任何值都可以在数据集中重复(也包括年份值)。
在前两列中我们没有缺失值,但在第三列中我们只有大约 20% 的 Name 值。名称值在某种程度上取决于前两列(不是因果关系)。
我的目标是将可用的名称值外推到整个 table 并获得每个名称值的出现范围(例如在箱线图中)
我想象过这样一个过程,虽然我不太确定它在统计上是否有意义(欢迎任何异议和建议):
对于每个未知的 NAME 值,算法会随机选择一个已知的 NAME 值。选择特定 NAME 值的几率取决于变量 YEAR 和 COLOR。例如,如果 'David' 值倾向于与较低的 Year 值相关并且与颜色的 'Green' 或 'Purple' 值相关,则算法给出 'David' 更高的概率被选择,如果年份和颜色的输入值为“1900,紫色”。
当上述过程结束后,统计每个名字出现的次数。
上述过程应用 30 次,每个名称的结果显示在绘图框中。
但是,我不知道哪个是实现类似想法的最佳模型。我把过程画在简单的画图中:
Possible output for the task
您认为哪种方法可以很好地完成这项任务?感谢您的帮助。
我认为您已经完成了流程,它正在转换数据,这可能是第一个障碍。
我会考虑使用 from sklearn.preprocessing import OrdinalEncoder
对数据进行编码,以便将分类数据转换为数字数据。
然后您可以使用随机数生成器在编码定义的范围内生成一个数字,该编码将随机 select 一个名称。
用 f 循环循环 30 次以获得结果。
在构建代码之前,您似乎还需要提供年份和颜色的排名值。从这里开始,您只需在 for 循环中提供波段,例如 if year > 1985
等以指定名称。