本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.4节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。
就像在前面提到的,网络上有很多可供下载的机器学习数据源。其中对公众开放的一种数据类型是政府数据。为了演示怎样从网络中下载数据,如图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 Y2 354-21030 - 0.0 Green SS Y Y3 354-21160 - 0.0 Yellow SS Y Y4 363-05250 - 0.0 Grey SS N N5 363-05270 - 0.0 Grey SS N N6 464-04120 - 0.0 Grey SS Y Y
JURISDICTI ON_OFF_STR OSP_ID STREET_NUM STREETNAME STREET_SEG RATEAREA1 SFMTA ON 0.0 2016.0 CHESTNUT ST 3977000.0 Area 52 SFMTA ON 0.0 2103.0 CHESTNUT ST 3979000.0 Area 53 SFMTA ON 0.0 2116.0 CHESTNUT ST 3979000.0 Area 54 SFMTA ON 0.0 525.0 COLUMBUS AVE 4295000.0 Area 35 SFMTA ON 0.0 527.0 COLUMBUS AVE 4295000.0 Area 36 SFMTA ON 0.0 412.0 HAYES ST 6816000.0 Area 5
SFPARKAREA LOCATION1 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)`