本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第1章,第1.8节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.8 使用R包
R以一种非常积极的方式拥抱开源,通过使用所谓的“包”来扩展软件的基本功能。有大量的通用包(当前大约是7000个),其中很多涉及有用的统计方法,也有特定领域的包:金融、天文学、分子生物学、生态学等。你可以用下面给出的R脚本来找到当下可用的R包数目:
> dim(available.packages())
R包贡献在综合R归档网(CRAN,The Comprehensive R Archive Network)中,这是一个由世界各地的专家维护的资源库。为了找到离你地理位置最近的CRAN镜像,请访问www.r-project.org,点击CRAN链接,选择你的国家/位置。在那里,你可以看到一页按名称排列的可用CRAN包。这个网页非常长,所以你需要使用浏览器的Find工具来通过关键词来搜索。例如,有6个R包的名字中含有关键词“金融(finance)”。也有一些在CEAN上找不到的私有R包,你可以用谷歌来查找并下载安装到你本地配置中。
一旦找到了满足你需求的R包,你需要在本地配置中安装它。例如,这是安装lubridate包的命令:
> install.packages("lubridate")
一个包只能安装一次。安装完成后,你需要做的是用library()把它加载到内存中。library()函数用来加载基础R配置中未包括的函数库(函数和数据集的集合)。
> library(lubridate)```
一旦成功安装了一个新的包,你应该去访问CRAN上该R包的页面来下载参考手册和任何可能有帮助的简介。参考手册包括了简介和如何使用包中每个函数的示例,包含每个函数完整的参数列表。不过,手册只是用于参考,通常不适合作为学习材料。简介更像是一份学习指南或者在大学教育中使用的实际案例,因此在学习包的特征和使用方法时是非常有用的。遗憾的是,并不是所有的包都有简介。
对于本书中更深入的主题来说,R是机器学习资源中的一个宝库。在基础R环境以及许多针对机器学习算法的附加包中,你可以找到许多机器学习功能。举个例子,基础R包含有stats包,里面有常用算法,例如:lm()用来拟合一个简单的线性回归模型,glm()用来拟合广义的线性模型;如逻辑回归:hclust()用来做聚类分析,kmeans()用来做k均值聚类,prcomp()用来做基本的组成成分分析;还有其他很多功能。
除此之外,还有许多机器学习的附加包可以补充基础R包的功能。例如,class包中的knn()用来做k最近邻算法,tree包中的tree()用于拟合分类树或是回归树,randomForest包中的randomForest()用来实现随机树算法,e1071包中的svm()用来实现支持向量机,还有很多其他功能。