单个模型能否返回连续或分类结果?

时间:2018-12-05 16:20:25

标签: python machine-learning scikit-learn

对于标题措辞不好,我感到抱歉,我只是不确定如何表达我的问题。解释我的问题可能更容易。另外,我对此还很陌生,只参加过一些Python的Udemy课程,并且没有该领域的专业经验。

TL; DR:我想创建一个模型来预测航班会延迟多少分钟,或者是否会取消。

我正在使用2015 Flight Delays dataset on Kaggle,并将此数据与一个发现的站点结合在一起,该站点提供了机场的历史天气数据。我正在尝试结合这两套数据来构建更好的延迟预测器。

我的假设是恶劣的天气是造成延误的主要原因,但确实,恶劣的天气是造成取消的主要原因。

我要解决这个问题的第一个想法是,我可以创建一个线性模型,该模型将天花板,能见度,风作为连续的自变量,并将始发机场,出发机场和降水强度作为分类自变量,并将到达延迟输出为因变量。 但是,这并不代表航班取消。

在数据集中,已取消的航班的出发和到达时间为NaN,然后​​为已取消的单点编码列。我可以编辑数据集,并做一些事情,例如,如果“已取消”列为1,则将到达延迟设为999,但这与线性模型有关。

我的模型是否可以输出一个数值(连续的)值来表示航班会延迟多少分钟,或者是否将其完全取消(分类的)?

如果没有,我可以以某种方式堆叠模型吗?即,做一个像随机森林模型这样的事情,它只能预测“取消”或“未取消”,然后将“未取消”航班送入一个线性模型,该模型预测航班会延迟多少分钟?

一个不相关的问题:我认为上限/可见度/风之间没有线性关系,但是我确实认为可能存在对数关系。例如,可见度0.5、1.0和1.5英里之间存在巨大差异,但可见度8和10英里之间存在零差异。风和天花板也一样。在scikit-learn中我可以使用哪种模型来说明这一点?

1 个答案:

答案 0 :(得分:0)

这里有很多问题,但让我回答与堆叠式机器学习模型有关的问题。

答案是肯定的,您训练了一个可以同时解决这两个任务的神经网络。这就是所谓的多任务学习。我只知道使用深度神经网络实现多任务学习,并且不难实现。最重要的部分是输出层,在这种情况下,您将拥有带有两个激活单元的输出层。一个S型输出单元和一个Relu输出单元(如果您打算仅预测正延迟)。

您提出的另一种解决方案。只需将延迟设置为一个大数字,然后在代码中设置一个条件,例如“如果延迟小时数大于n天,则航班已取消”。

最后我看到的解决方案是实现两个神经网络。一种确定是否取消航班,另一种确定延迟时间。如果第一个返回true,则不要使用第二个。

请随时提问