如何报报天气预报?
天气是随时在变的,一个小时一变化的那种,而且不同地区不同时刻的天气状况是不同的。所以,“明天的天气怎么样”这个问题是很难有准确答案的。 不过,我们可以尽可能多地搜集信息,利用数据挖掘等方法来预测明天天气的可能性情况!(这样是不是很有成就感!)
1.收集数据 在百度上输入“天气预报”,进入中国气象局官方网站。选择你想查看的地方及日期。 这里以北京最近一天的预报为例进行说明。点击“基本气象资料”可以下载得到近30天的逐小时气象观测数据,点选“详情”还可以看到具体的气象报告。 如果需要更详细的天气数据,可以到地方气象局网站上找找,比如北京市气象局网,就可以找到各个区县的详细气象监测数据。 当然,这些只是原始的数据,还需要做很多的准备才能运用。
2.整理数据 对数据进行清洗、整理,去除无用数据和错误数据。 比如因为时间间隔的问题,把第一小时的数值当成是最后一小时的数值删除。
3.建立模型 我在这里使用的模型是朴素贝叶斯模型,用R语言来完成计算。先导入需要的包并设置参数。 然后读取前面整理好的数据并生成新的Data Frame,最后调用函数来计算结果。 运行程序后,得到了各个分类概率值以及所有可能的结果。 我们想要知道的概率值就是每个分类概率值中的最大值,而所有可能的结果其实就是各种天气状况出现的频率 如果我们想预测明天的天气情况并且知道今天的情况(例如:今天是晴天且温度低于15℃),那么我们可以运用贝叶斯公式来推导明天的天气概率: 其中, P(A|B)表示在B发生的条件下A出现的概率,也就是先确定B再求A的概率;P(A)表示A出现的概率。 而我们今天已经知道B(即今天的情况),只需要求出P(A|B)就能得出A(即明天的天气)的概率了。 这个公式看起来比较复杂,但是使用计算机编程可以实现,我使用的是R语言,所以直接调用了R语言中的bayes函数。 在R中调用这个函数的时候,需要提供两个data frame,一个代表今天的天气(包括今天的情况和出现的时间),另一个代表过去24小时内各地点的天气。
4.输出预测结果 最后一步就是把各个地点的各个天气情况的概率值找出来,我这里是按照各个城市每天各个时间段出现天气情况的顺序来排列的。 所以如果有需要的话可以根据自己的需求来排序! 比如我想看北京的晴雨概率,直接把北京作为第一个参数传给函数就可以了。