本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.4节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.4 从网络中下载数据集
就像在前面提到的,网络上有很多可供下载的机器学习数据源。其中对公众开放的一种数据类型是*数据。为了演示怎样从网络中下载数据,如图2-1所示,访问San Francisco Data网站(data.sfgov.org),上面包含了大量的市政数据集。要用到的Parking Meter数据集,包含了多方面的仪表特征。目标是直接从网站上下载CSV文件格式的数据集。为此,我们将使用download.file()指令。这里需要注意的是,并不是网络上提供的所有数据集都以一个很好的结构化格式存在。例如,每一行包含与单次观察相关的多个变量。通常情况下,你在网络上找到的数据需要进行大量的再加工,将它转换成适用于数据分析和机器学习的格式。
下面的代码定义了一个变量fileURL,并且将数据集的URL(网址)分配给它。URL是从San Francisco Data网站上获取的。下一步,download.file()命令用于下载文件,将它存放在工作目录下的data子目录中。接下来使用list.files()函数来确认下载已经完成。注意相对路径./data的使用,这指的是当前工作目录下的子目录。
> fileURL <- "https://data.sfgov.org/api/views/7egw-qt89/rows. csv?accessType=DOWNLOAD"
> download.file(fileURL, destfile="./data/SFParkingMeters. csv")
> list.files("./data")
[1] "SFParkingMeters.csv"```
下一步是使用read.table()函数将数据集读取到数据框中。然后我们可以使用head()来看看前几行数据,检查数据格式是否正确,同时也能熟悉数据元素:
SFParkingMeters <- read.table("./data/SFParkingMeters.csv", sep=", ", header=TRUE)
head(SFParkingMeters)
POST_ID MS_ID MS_SPACEID CAP_COLOR METER_TYPE SMART_METE ACTIVESENS
1 354-20160 - 0.0 Grey SS Y Y
2 354-21030 - 0.0 Green SS Y Y
3 354-21160 - 0.0 Yellow SS Y Y
4 363-05250 - 0.0 Grey SS N N
5 363-05270 - 0.0 Grey SS N N
6 464-04120 - 0.0 Grey SS Y Y
JURISDICTI ON_OFF_STR OSP_ID STREET_NUM STREETNAME STREET_SEG RATEAREA
1 SFMTA ON 0.0 2016.0 CHESTNUT ST 3977000.0 Area 5
2 SFMTA ON 0.0 2103.0 CHESTNUT ST 3979000.0 Area 5
3 SFMTA ON 0.0 2116.0 CHESTNUT ST 3979000.0 Area 5
4 SFMTA ON 0.0 525.0 COLUMBUS AVE 4295000.0 Area 3
5 SFMTA ON 0.0 527.0 COLUMBUS AVE 4295000.0 Area 3
6 SFMTA ON 0.0 412.0 HAYES ST 6816000.0 Area 5
SFPARKAREA LOCATION
1 Marina (37.800798, -122.43687)
2 Marina (37.800522, -122.438067)
3 Marina (37.800589, -122.438525)
4 (37.800053, -122.409985)
5 (37.800088, -122.410035)
6 Civic Center (37.776878, -122.423512)`