使用 ML 对纵向数据进行分类预测
Posted
技术标签:
【中文标题】使用 ML 对纵向数据进行分类预测【英文标题】:Classification prediction with ML for longitudinal data 【发布时间】:2020-06-29 22:58:01 【问题描述】:我有一个正在处理的项目,我不允许给出实际示例,所以我将使用代理示例。
我们拥有数月以来许多驾驶学生的数据。
对于每次观察(学生和月份),我们记录了许多变量,例如学习时间、智商、家庭收入等,以及一个虚拟变量,如果学生在该月通过考试,则为真,如果通过,则为假不是。
我想使用所有这些数据来预测未来几个月学生在该月通过的可能性。
例如,对于接下来的 6 个月,我们应该知道在任何给定月份,任何给定学生通过考试的可能性有多大。
我最初的研究表明 LSTM 可能是最好的方法。我希望使用 Python,有人可以为我指明一些第一步或指导的方向吗?
其他注意事项:
学生可以随时开始学习 通过测试的学生将不再被记录【问题讨论】:
你在建模之前有没有花一些时间做数据分析?你真的觉得需要从你的样本中“顺序”理解(因此建议使用 LSTM)来预测这种可能性吗?我可以看到你有多种特征,一些是连续的(每月时间戳),而另一些应该在整个期间保持不变(智商,家庭收入):我弄错了吗? @Arnaud 我做了,是的,有一些相当明显的趋势,其中一些指标尤其是连续指标。收入或智商等其他因素也包括在内,因为我认为可能存在一些互动效应。 【参考方案1】:这是一个非常广泛的问题。这是我对此的分析。
问题设置
监督分类问题是X
s 和y
的问题。在你的情况下,如果我理解得很好,这里有一个X
和y
的例子:
X
包含给定用户的所有可用静态和顺序数据:
X = [iq, income, time_spent_m-2, time_spent_m-1, time_spent_m]
- static - -------------------- sequential -------------
/!\ 不同的用户会有不同的历史数据。请记住,您必须决定无论如何都要使用的固定向量大小(例如 M=15),并练习 填充。
y
是未来 6 个月的概率分布,试图找出学生何时通过考试:
y = [0.1, 0.1, 0.4, 0.2, 0.1, 0.1] # should sum to 1?
--> X
的大小是可变的,而y
的大小是固定的。
训练数据
您可以利用所有通过和未通过测试的用户作为训练数据。而且,每个月都会翻译。如果您通常从用户那里收集数据超过六个月,通常会有很多 y
s,因此是 [0, 0, 0, 0, 0, 0],这意味着 您的最后一层不能像我之前假设的那样总和为一个。注意,训练数据可能有点不平衡(很多零,很少零)。
型号 LSTMs 确实是一个适合序列到序列关系的模型。网上有很多教程可以根据您选择的框架开始使用它们。 Python 中用于深度学习的著名框架是 Keras(在 TensorFlow 之上)和 PyTorch。
希望对您有所帮助。
【讨论】:
以上是关于使用 ML 对纵向数据进行分类预测的主要内容,如果未能解决你的问题,请参考以下文章