《机器学习与数据科学(基于R的统计学习方法)》——2.13 从谷歌分析中读取数据
本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.13节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.13 从谷歌分析中读取数据另一个非常有用的数据源是谷歌分析。很多公司使用谷歌的网站统计服务来观察网站的使用情况。谷歌分析的成熟程度是令人惊讶的,其中最大的优点是:这项服务是免费使用的。一旦植入到网站中(使用谷歌提供的一个可以添加到网站中的代码片段),就能收集大量数据,用于后续分析。虽然谷歌提供了一套令人印象深刻的工具来分析网站统计数据,你也可以直接连接数据,这样就能用这些数据执行自己定制的机器学习算法。在本节中,我们会介绍如何连接谷歌分析数据。
有两种方法连接谷歌分析数据。第一,你可以使用你用来跟踪网站的账户来登录谷歌分析。你运行的每一份报表都有一个Export按钮,可以用来下载报告中的原始数据。我们的想法是,用一段长时间范围的数据运行得到一份详细的报表,这样你就能得到一份优良的数据样本,可用于后续的机器学习分析。我们将在下面的案例中看到这样的示例。连接谷歌分析的另一种方法是使用RGoogleAnalytics包,其中包含了大量R函数,能帮助你使用谷歌分析Data Export API。我们也能在下面的例子中看见这种用法。
让我们首先用导出工具连接谷歌分析数据。在这个例子中,我用一个监控客户端网站的账号登录谷歌分析。我通过Traffic Sources - Sources - All Traffic这一路径选择一种标准报表。在查看了报表之后,我从顶端的水平菜单选择Export - Excel(XLSX),将文件保存在工作目录下面的data文件夹中。谷歌分析生成的Excel文件有多个工作表,通常有一个Summary表和一个或多个Datasheets表。取决于你想用数据做什么事情,你必须决定把哪个表读入R中。谷歌分析使用的一些列名和xlsx包不兼容,所以你需要在Excel中打开文件,手动编辑一个或者多个可能造成冲突的列名。例如,你需要把列名Pages/Visit改成更适合R的表述,例如Pages_Visit。图2-4展示了一个准备读入到R中使用的表格:
library(xlsx) GA - read.xlsx2("./data/Analytics_All_Traffic.xlsx", sheetIndex=2) head(GA) Source_Medium Visits Pages_Visit Avg_Visit_Duration 1 google / organic 1349.0 5.638991845811712 151.54558932542625 2 (direct) / (none) 562.0 4.119217081850533 114.98220640569394 3 fashiondistrict.org / referral 242.0 3.9214876033057853 140. 30578512396696 4 yahoo / organic 73.0 3.6301369863013697 66.53424657534246 5 bing / organic 71.0 5.549295774647887 104.14084507042253 6 oohlaluxe.net / referral 36.0 4.361111111111111 116. 80555555555556 Percent_New_Visits Bounce_Rate 1 0.614529280948851 0.5181616011860638 2 0.597864768683274 0.5747330960854092 3 0.8099173553719008 0.45041322314049587 4 0.684931506849315 0.410958904109589 5 0.647887323943662 0.29577464788732394 6 0.8888888888888888 0.3611111111111111``` 现在让我们看看使用RGoogleAnalytics包中的RGoogleAnalytics API。在R中,你需要用OAuth2例行程序来认证你的身份,创建一个查询,并把结果保存在数据框中。在开始之前,RGoogleAnalytics库依赖于另外两个库:RCurl提供了在R中的https支持;RJSON提供了解析API返回的RJSON的功能。 div img src="https://yqfile.alicdn.com/6f72af38069089feea74ee263927c385c8332c74.png" width="" height="" /div
install.packages("RCurl")
install.packages("RJSON")
library("RGoogleAnalytics")`
使用下面这段语句能打开一个浏览器窗口,这样就可以用谷歌的OAuth2认证身份。参照页面上的指示,将Access Token复制到剪贴板中,然后将它粘贴到R控制台中。
query - QueryBuilder() access_token - query$authorize()``` 接下来,这段语句会使用你上面得到的access_token来创建一个新的谷歌分析API对象。
ga - RGoogleAnalytics()
ga.profiles - ga$GetProfileData(access_token)
ga.profiles # List the GA profiles`
下面这段代码是将谷歌分析作为数据源读取过程的主要部分。你建立了一个查询字符串,并使用配置文件设置其索引值。
query$Init(start.date = "2013-07-01", end.date = "2013-07-01", dimensions = "ga:date,ga:pagePath", metrics = "ga:visits,ga:pageviews,ga:timeOnPage", sort = "ga:visits", #filters="", #segment="", max.results = 99, table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","), access_token=access_token) ga.data - ga$GetReportData(query) [1] "Your query matched 88 results that are stored to dataframe ga.data" head(ga.data) # date pagePath 1 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 127 CategoryID=0 2 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 130 CategoryID=0 3 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 175 CategoryID=0 4 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 181 CategoryID=0 5 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 184 CategoryID=0 6 20130701 /SearchResult.asp?Type=ALL String= CompanyID= 186 CategoryID=0 visits pageviews timeOnPage 1 0 3 11 2 0 4 20 3 0 2 13 4 0 1 1 5 0 2 11
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 神经网络与机器学习 笔记—支持向量机(SVM)(上)
- 机器学习-随机性、概率论、多元统计、特征间的相关性
- 机器学习系统构建
- (《机器学习》完整版系列)第4章 线性模型——4.4 连续变量的决策树(以属性为轴的坐标系)
- 阿里面试——机器学习岗四个面试案例
- 大数据与机器学习:实践方法与行业案例.2.2 数据缓冲区
- 构建你的数据科学作品集:机器学习项目
- 获取mips32机器的各数据类型的取值范围
- 《机器学习与数据科学(基于R的统计学习方法)》——第1章 机器学习综述
- 《机器学习与数据科学(基于R的统计学习方法)》——1.11 小结
- 《机器学习与数据科学(基于R的统计学习方法)》——2.2 数据文件的种类
- 《机器学习与数据科学(基于R的统计学习方法)》——2.5 读取CSV文件
- 《机器学习与数据科学(基于R的统计学习方法)》——2.6 读取Excel文件
- 《机器学习导论》和《统计机器学习》学习资料:张志华教授
- 张志华教授《机器学习导论》和《统计机器学习》课程讲义
- 数据挖掘与机器学习的区别
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
- 机器学习——深度学习之卷积神经网络(CNN)——LeNet卷积神经网络结构
- ARM公司推出AI与机器学习用新型微处理器
- Logz.io提供了基于机器学习的日志分析