我正在数据科学和机器学习方面迈出第一步。我正在试验一个项目,我什至不知道我可以从什么方法开始,所以我很感激任何线索:
我有一个学生毕业的数据集(为了解释起见)。数据集是完整的,因为它包含了整个人口;所有记录都应有毕业日期。
但是,由于记录保存失败,较旧的记录缺少毕业日期。
它具有以下特点:
- 对于自 2014 年以来的毕业典礼,我们有一个毕业日期
- 对于 2014 年之前的毕业,缺少毕业日期
- 对于所有学生,我们都有出生日期
- 对于许多学生来说,毕业将与出生日期相关联。例如,他们通常可能在出生 21 年后毕业。但是,有些将是成熟的学生,以便他们可以在 21 岁后多年毕业。
- 证书 ID 或多或少是连续的和数字的。可以假设证书 ID 彼此接近,因此代表大致同时毕业的学生
- 这个比喻有些缺陷;假设学生可以在任何一天毕业
我的挑战是创建一种方法,可以根据出生日期推断所有学生的毕业日期。
我一直在考虑的方法是这样的:
- 对于两个日期都可用的所有学生,采用模式 (graduation_age)
- 根据顺序证书 ID 将学生分组到(比如说)1000 个容器中
- 找出每个垃圾箱中学生最常见的出生月份和年份
- 将模式 (graduation_age) 添加到特定 bin 的最常见月份/年份,并将其指定为 bin 中所有学生的毕业日期
pandas 中的示例可能如下所示:
graduations = [
# Old data with missing graduation dates
{'certificate_id': '090029, 'birth_date': '01/01/1983', 'graduation_date': NaT},
{'certificate_id': '090048, 'birth_date': '04/01/1983', 'graduation_date': NaT},
...
# This is 'normal' students graduating roughly 21 years after
# their birth date
{'certificate_id': '120015, 'birth_date': '01/01/1993', 'graduation_date': 01/03/2014},
{'certificate_id': '120019, 'birth_date': '01/04/1993', 'graduation_date': 04/03/2014},
# However there are many exceptions, mature students or those
# graduating early
{'certificate_id': '120150, 'birth_date': '01/01/1966', 'graduation_date': 05/03/2014},
{'certificate_id': '120155, 'birth_date': '01/04/1996', 'graduation_date': 06/03/2014},
]
df = pd.DataFrame(graduations)
任何帮助都将不胜感激,即使您能够告诉我这种问题被称为什么以便我可以进一步研究,或者让我知道这个数据集是不可能的。我目前什至不确定正确的标签是什么!