如何预测是否下雨?

人工智能 训练 预言 楷模
2021-11-08 12:32:10

我正在建造一个气象站,在那里我可以感知温度、湿度、气压、亮度,CO2,但我没有雨滴传感器。

是否有可能在上面给出的数据的帮助下创建一个 AI 来判断是否下雨,并可能分析过去一小时的坡度或其他什么?我应该使用哪种特定技术以及如何训练它?

1个回答

这听起来像是一个很棒的项目,尽管这种精确的设置在一定程度上限制了您的选择。监督机器学习方法被有效地排除在外,因为您没有必要的训练数据来开发模型(即因变量:是否下雨)。您可以查看访问包含降水信息的类似数据(来源取决于您的地理位置),并尝试在此基础上训练模型,然后再将其应用于您自己的数据以“预测”当前状况。

如果您想要一个模型来确定是否下雨(而不是尝试定义降水的类型、速率或其他特征),那么您需要一个二元分类模型。如果您可以获得数据来训练监督模型,那么有很多这样的模型可用。选择哪一个取决于许多因素——足够多的因素使它既是一门艺术又是一门科学(通常最好的选择方法就是尝试几个并选择最好的一个)。XGBoost 是广泛的问题的流行选择,包括二进制分类。状态向量分类器(SVC,状态向量机的一个子类型,SVM)也很常见。当然也有神经网络。根据因变量与独立变量的相关性,您可能会发现更简单的模型更有效。

或者,您可以尝试一种无监督的方法,该方法通常采用聚类的形式。在这种情况下,您将尝试尝试聚类算法,例如 DBSCAN,以查看自变量是否自然形成组(聚类)以区分何时下雨。当然,您可以使用无监督模型对数据进行聚类,但您仍然需要将其与降雨量关联起来才能理解模型。

您可能需要克服许多挑战。例如,根据采样和存储数据的频率,您可能需要将其下采样到可管理的大小。大概您也有收集数据的时间。如果没有,您还需要使用亮度传感器来区分白天和黑夜,这可能会混淆或过度使用降雨带来的任何冷却效果。(您可以查看根据温度和亮度对数据进行聚类,以创建指示白天和黑夜的新功能。)

总而言之,您可以采取多种方法,所有这些方法在某些时候都需要有关是否下雨的数据才能训练模型。如果您有适当的本地化天气数据可用,您可以使用它来训练模型,通过时间和/或您将收集的其他数据同步。如前所述,问题是一个二元分类问题(与时间序列预测问题相反,例如天气预报)。因此,分别研究有监督和无监督机器学习的分类和聚类模型。 Scikit Learn for python 或Caret for R 是我所描述的模型类型的常用包。