- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用机器学习预测天气(第一部分).docx
概述??本章是使用机器学习预测天气系列教程的第一部分,使用Python和机器学习来构建模型,根据从Weather Underground收集的数据来预测天气温度。该教程将由三个不同的部分组成,涵盖的主题是:数据收集和处理(本文)线性回归模型(第2章)神经网络模型(第3章)??本教程中使用的数据将从Weather Underground的免费层API服务中收集。我将使用python的requests库来调用API,得到从2015年起Lincoln, Nebraska的天气数据。 一旦收集完成,数据将需要进行处理并汇总转成合适的格式,然后进行清理。 ??第二篇文章将重点分析数据中的趋势,目标是选择合适的特性并使用python的statsmodels和scikit-learn库来构建线性回归模型。 我将讨论构建线性回归模型,必须进行必要的假设,并演示如何评估数据特征以构建一个健壮的模型。 并在最后完成模型的测试与验证。 ??最后的文章将着重于使用神经网络。 我将比较构建神经网络模型和构建线性回归模型的过程,结果,准确性。Weather Underground介绍??Weather Underground是一家收集和分发全球各种天气测量数据的公司。 该公司提供了大量的API,可用于商业和非商业用途。 在本文中,我将介绍如何使用非商业API获取每日天气数据。所以,如果你跟随者本教程操作的话,您需要注册他们的免费开发者帐户。 此帐户提供了一个API密钥,这个密钥限制,每分钟10个,每天500个API请求。 ??获取历史数据的API如下:/api/API_KEY/history_YYYYMMDD/q/STATE/CITY.json API_KEY: 注册账户获取YYYYMMDD: 你想要获取的天气数据的日期STATE: 州名缩写CITY: 你请求的城市名调用API??本教程调用Weather Underground API获取历史数据时,用到如下的python库。名称描述来源datetime处理日期标准库time处理时间标准库collections使用该库的namedtuples来结构化数据标准库pandas处理数据第三方requestsHTTP请求处理库第三方matplotlib制图库第三方??好,我们先导入这些库:fromdatetimeimport datetime, timedelta importtimefromcollectionsimport namedtuple importpandasaspdimportrequestsimportmatplotlib.pyplotasplt接下里,定义常量来保存API_KEY和BASE_URL,注意,例子中的API_KEY不可用,你要自己注册获取。代码如下:API_KEY =7052ad35e3c73564# 第一个大括号是API_KEY,第二个是日期BASE_URL =/api/{}/history_{}/q/NE/Lincoln.json然后我们初始化一个变量,存储日期,然后定义一个list,指明要从API返回的内容里获取的数据。然后定义一个namedtuple类型的变量DailySummary来存储返回的数据。代码如下:target_date = datetime(2016, 5, 16) features = [date, meantempm, meandewptm, meanpressurem, maxhumidity, minhumidity, maxtempm, mintempm, maxdewptm, mindewptm, maxpressurem, minpressurem, precipm]DailySummary = namedtuple(DailySummary, features) 定义一个函数,调用API,获取指定target_date开始的days天的数据,代码如下:defextract_weather_data(url, api_key, target_date, days): records = []for _ inrange(days): request = BASE_URL.format(API_KEY, target_date.strftime(%Y%m%d)) response = requests.get(request)if response.status_code ==200: data = response.json()[history][dailysummary][0] records.append(DailySummary(
文档评论(0)