《机器学习与数据科学(基于R的统计学习方法)》——2.9 从网站中抓取数据

简介:

本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.9节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.9 从网站中抓取数据

将网站当成是一个数据源可能是个奇怪的想法,但是,一旦你想起网站是一组HTML文件,HTML可以更好地表示数据时,那么“读取”网站这一行为就会显得比较合理了。这一技术在需要的数据没有现成的CSV文件或者其他文件类型可供下载时特别有效。作为替代,我们可以直接从网页中“抓取”数据。

为了演示这一读取数据的工具,让我们来访问一个包含数据集的网站,并将其导入R进行处理。图2-3展示了制造业数据采购经理人指数(PMI,Purchasing Managers Index)的历史值。我们的目标是写一个R脚本,直接从网页中读取数据,然后将它载入数据框中进行更深入的分析。接着更进一步,将数据变形,转换成对我们的目标来说更容易使用的形式。

9ef74bd4661d92702627c252460cd58ad7f87854

下面的代码首先下载两个包:XML和reshape2。XML包中有一个对抓取网页来说非常有用的函数:readHTMLTable(),它能将数据从HTML表格中提取出来。HTML表格通常是数据在网页中的展现形式。为了方便使用,我们将这一函数的返回数据列表转换成数据框的形式。使用head(df)展示了现在在数据框中的数据,我们可以看到,与网页中的数据相同。

> library(XML)
> library(reshape2)
> webdata <- readHTMLTable('http://www.ism.ws/ISMReport/ content.cfm?ItemNumber=10752')
> df <- data.frame(webdata[[1]])
> names(df)[1] <- 'Year' # Add a name for first column
> head(df)
  Year JAN   FEB   MAR  APR  MAY   JUN  JUL  AUG   SEP  OCT  NOV   DEC
1 2014 51.3                            
2 2013 52.3 53.1 51.5 50.0 50.0 52.5 54.9 56.3 56.0 56.6 57.0 56.5
3 2012 52.8 52.4 53.0 53.7 53.2 51.0 50.6 51.1 52.2 51.2 49.5 50.4
4 2011 59.0 59.3 59.1 58.9 53.7 56.6 52.9 53.0 52.8 51.8 52.1 53.1
5 2010 57.2 55.8 58.8 58.1 58.3 56.4 56.4 58.0 56.3 57.7 57.6 57.5
6 2009 34.9 35.5 36.0 39.5 41.7 45.8 49.9 53.5 54.4 56.0 54.4 55.3```
让我们更进一步,改进从网页中抓取的数据。可以使用reshape2包中的melt()函数,它在快速转换数据框方面特别强大。在这种情况下,我们选择从网站中读入的列表格式,将其改造成有序三元组Year、Month和PMI。同时,也要将PMI转换成数值型,并移除PMI值为NA的观测行(有几个月的PMI没有值)。

df <- melt(df,id.vars='Year')
names(df) <- c('Year','Month','PMI')
df$PMI <- as.numeric(df$PMI)
df <- na.omit(PMI)`

相关文章
|
25天前
|
机器学习/深度学习 测试技术
阿里云入选Gartner数据科学和机器学习平台挑战者象限
Gartner® 正式发布了《数据科学与机器学习平台魔力象限》报告(Magic Quadrant™ for Data Science and Machine Learning Platforms),阿里云成为唯一一家入选该报告的中国厂商,被评为“挑战者”(Challengers)。
|
3天前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
11 2
|
27天前
|
机器学习/深度学习 数据采集 数据挖掘
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
因果推断方法为特征工程提供了一个更深层次的框架,使我们能够区分真正的因果关系和简单的统计相关性。这种方法在需要理解干预效果的领域尤为重要,如经济学、医学和市场营销。
52 1
特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计
|
24天前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
37 3
|
25天前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
27 2
|
30天前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
【10月更文挑战第5天】如何用贝叶斯方法来解决机器学习中的分类问题?
|
1月前
|
机器学习/深度学习 算法 API
机器学习入门(六):分类模型评估方法
机器学习入门(六):分类模型评估方法
|
1月前
|
机器学习/深度学习 算法 搜索推荐
机器学习入门(四):距离度量方法 归一化和标准化
机器学习入门(四):距离度量方法 归一化和标准化
|
2月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
28天前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
29 0
下一篇
无影云桌面