本文转载至:https://github.com/royguo/ml_hackers/blob/master/1.1.3.md
现在有很多正被支持和维护的优秀机器学习R包。对于我们要进行的案例学习来说,也有很多我们需要的多维数据处理,文本分析,网络结构以及web交互的扩展包。我们将会在很大程度上依赖这些包的内置功能。
在R中加载包是非常容易的,有两个函数可以做到:library 和 require。他们之间有一些细微的差别,但是对于在本书中的使用来说,主要的区别在于 require 会返回一个布尔值(True或False)来表示被加载的包是不是可用,而 library 函数会根据调用方式不同而有不同返回结果(这点在本书不重要)。比如,在第六章我们会使用tm包来处理文本。要加载这些包我们可以用library或require任意一种。在下面的例子中,我们用library加载tm包,用require加载xml包。我们可以看到在xml包加载完成后print函数打印了True:
library(tm)
print(require(XML))
#[1] TRUE
如果我们还没有安装XML包,也就是说require返回False,那么我们需要在继续之前先安装这个包。
如果你的R是全新安装的,那么你需要安装一系列的包来进行本书后面的案例。
在R中安装包有两种途径:直接使用图形化界面或者在命令行使用install.packages函数。考虑到这本书的目标读者,我们会在案例学习的过程中仅仅使用控制台来操作。但是告诉大家如何从图形界面安装包也是有必要的:在菜单栏(Menu)找到Packages & Data -> Package Installer,你会看到一个新窗口(如Figure 1-4显示),按照上面的提示操作即可,如果你有必要的编译器,我们建议你从源码安装这些包。
install.packages函数是用来安装扩展包的更好选择,这是因为它提供了更多的灵活性让你可以选择如何安装和在哪儿安装。install.packages的一个重要的优点是,如果你要安装一个CRAN上没有的包或希望用自己的包,它允许你从本地直接安装。在下面这些例子中你需要从源码安装:
install.packages("tm", dependencies=TRUE)
setwd("~/Downloads/")
install.packages("RCurl_1.5-0.tar.gz", repos=NULL, type="source")
在第一个例子中,我们使用默认的设置从CRAN来安装tm包,tm包提供了一个用来做文本挖掘的功能,我们将在第三章用来演示邮件文本的分类。install.packages的一个有用的参数dependencies默认是FALSE,如果设置为TRUE的话就会告诉R把当前安装的包所需要的其他包也都下载下来。作为最佳实践,我们建议总是把这个值设置为TRUE,尤其是新安装的R环境。
另外,我们也可以直接从压缩源码包安装,在之前的例子中,我们就从RCurl作者的网站提供的源码进行了安装。使用setwd函数来确保R的工作空间和下载源码用的文件夹是一样的,然后简单的用前面一行代码直接安装。需要注意的是,我们使用了install.packages的两个参数,其中repos=NULL表示我们要从CRAN官网进行安装,type="source"表示我们的安装类型时源码安装。
如之前提到的,本书中我们会使用一些扩展包, Table 1-2 列出了我们需要的所有包并且进行了简单的介绍,同时提供一个链接用来进一步了解。鉴于我们需要的包比较多,为了确保安装完整,我们提供了一个简短的R脚本帮助进行检测完整性。如果有任何包没有被安装,脚本将会尝试自动从CRAN下载并安装。要执行这个脚本,需要切换到脚本所在的目录,使用setwd函数设置当前目录为工作目录,然后执行以下命令:
source("package_installer.R")
如果你从来没有这么做过,你可能会被提示要选择一个CRAN镜像。做好之后脚本会继续,然后你会看到所有还没有安装的必须扩展包的安装进度。现在,我们已经准备好开始使用R进行机器学习的探索了!但是,在我们开始案例学习之前,我们需要复习一些将会经常使用的R函数和操作。