8个你不使用的数据科学R包(但绝对应该使用)

15 篇文章 0 订阅
2 篇文章 0 订阅

Introduction

我是R的忠实粉丝 - 这不是什么秘密。 自从我在大学学习统计数据以来,我一直依赖它。 实际上,R仍然是机器学习项目的首选语言。

R有三件事主要吸引我:

  • 易于理解和使用的语法
  • 令人难以置信的RStudio工具
  • R套餐!

R提供了大量用于执行机器学习任务的软件包,包括用于数据操作的’dplyr’,用于数据可视化的’ggplot2’,用于构建ML模型的’caret’等。

在这里插入图片描述

甚至还有用于特定功能的R套餐,包括信用风险评分,从网站上搜集数据,计量经济学等等。这就是为什么R在世界各地的统计学家中都很受欢迎的原因 - 可用的R套餐数量太多,这使得生活变得更加容易。

在本文中,我将展示8个R软件包,这些软件包已经被数据科学家们所忽视,但对于执行特定的机器学习任务非常有用。 为了帮助您入门,我提供了一个示例以及每个包的代码。

相信我,你对R的爱将要经历另一场革命!

The R Packages We’ll Cover in this Article

I have broadly divided these R packages into three categories:

  • Data Visualization
    • DataExplorer
    • esquisse
  • Machine Learning
    • MLR
    • parsnip
    • Ranger
    • purrr
  • Other Miscellaneous R Packages
    • rtweet
    • Reticulate
  • Bonus: More R Packages!
    • InstallR
    • GitHubInstall

Data Visualization

在这里插入图片描述
R是一个用于可视化数据的神奇工具。 我们只用一两行代码就能轻松生成各种图形? 真正节省时间。

R提供了看似无数的可视化数据的方法。 即使我在某个任务中使用Python,我也会回到R来探索和可视化我的数据。 我相信大多数R用户都有同感!

让我们看一些用于执行探索性数据分析的可怕但鲜为人知的R包。

DataExplorer

这是我进行探索性数据分析的首选方案。 从绘制数据结构到Q-Q图,甚至为数据集创建报告,这个包完成了所有工作。

让我们看看DataExplorer可以使用一个例子做些什么。 考虑到我们已将数据存储在数据变量中。 现在,我们想要计算出每个要素中缺失值的百分比。 当我们处理大量数据集并计算缺失值的总和可能非常耗时时,这非常有用。

您可以使用以下代码安装DataExplorer:

install.packages("DataExplorer")

现在让我们看看DataExplorer可以为我们做些什么:

library(DataExplorer)
data(iris)
plot_missing(iris)

我们得到了一个非常直观的缺失值图:

在这里插入图片描述
我最喜欢的DataExplorer方面之一是我们只需一行代码即可生成的综合报告:

create_report(iris)

以下是我们在本报告中获得的各种因素:

在这里插入图片描述

You can access the full report through this link. A VERY useful package.

esquisse

用于在R中生成绘图的“拖放”插件怎么样? 这是正确的 - esquisse是一个包,让你继续创建绘图而无需编写它们。
在这里插入图片描述

Esquisse建立在ggplot2包之上。 这意味着您可以通过生成ggplot2图表以交互方式探索esquisse环境中的数据。

使用以下代码在您的机器上安装和加载esquisse:

# From CRAN
install.packages("esquisse")

#Load the package in R
library(esquisse)

esquisse::esquisser() #helps in launching the add-in

您还可以通过RStudio菜单启动esquisse加载项。 esquisse的用户界面如下所示:

在这里插入图片描述

很酷,对吗? 来吧,玩弄不同类型的情节 - 这是一个令人大开眼界的体验。

Machine Learning

在这里插入图片描述

啊,在R中构建机器学习模型。当我们开始新的机器学习项目时,数据科学家们正在努力实现这一目标。 您可能以前使用’插入’包来构建模型。

现在,让我向您介绍一些可能会改变您接近模型构建过程的方法。

MLR – Machine Learning in R

Python在R之前飙升的最大原因之一是它的机器学习重点库(如scikit-learn)。 很长一段时间,R缺乏这种能力。 当然你可以使用不同的包来执行不同的ML任务,但是没有一个包可以完成所有任务。 我们不得不调用三个不同的库来构建三个不同的模型。

不理想。

然后MLR包出现了。 这是一个令人难以置信的包,它允许我们执行各种机器学习任务。 MLR包括我们在项目中使用的所有流行的机器学习算法。
在这里插入图片描述

我强烈建议您仔细阅读以下文章深入了解MLR:

让我们看看如何在iris数据集上安装MLR并构建随机森林模型:

install.packages("mlr")
library(mlr)

# Load the dataset
data(iris)
# create task
task = makeClassifTask(id = ”iris”, iris, target = ”Species”)

# create learner
learner = makeLearner(”classif.randomForest”)

# build model and evaluate
holdout(learner, task)

# measure accuracy
holdout(learner, task, measures = acc)
Output:
Resample Result
Task: iris
Learner: classif.randomForest
Aggr perf: acc.test.mean=0.9200000          # 92% accuracy - not bad!
Runtime: 0.0239332
parsnip

R中可用的不同函数(执行相同的操作)的常见问题是它们可以具有不同的接口和参数。 以随机森林算法为例。 你在randomforest包和插入符包中使用的代码是不同的,对吧?

与MLR一样,parsnip消除了为特定机器学习算法引用多个包的问题。 它成功地在R中模仿Python的scikit-learn包。

让我们看一下下面的简单示例,让您深入了解parsnip如何适用于线性回归问题:

install.packages("parsnip")
library(parsnip)

#Load the dataset
data(mtcars)

#Build a linear regression model
fit <- linear_reg("regression") %>% 
set_engine("lm") %>% 
fit(mpg~.,data=mtcars)
fit #extracts the coefficient values
Output:
parsnip model object
Call:
stats::lm(formula = formula, data = data)

Coefficients:
(Intercept)          cyl         disp           hp         drat           wt         qsec  
   12.30337     -0.11144      0.01334     -0.02148      0.78711     -3.71530      0.82104  
         vs           am         gear         carb  
    0.31776      2.52023      0.65541     -0.19942
Ranger

Ranger是我最喜欢的R套餐之一。 我经常使用随机森林来建立基线模型 - 特别是当我参与数据科学黑客马拉松时。

这是一个问题 - 你有多少次遇到R中大型数据集的慢随机森林计算? 它在我的旧机器上经常发生。

插入符号,随机森林和rf等包都需要花费大量时间来计算结果。 “Ranger”软件包加速了随机森林算法的模型构建过程。 它可以帮助您在更短的时间内快速创建大量树木。

让我们使用Ranger编写一个随机森林模型:

install.packages("ranger")

#Load the Ranger package
require(ranger) 

#Load the dataset
data(iris)
## Classification forest 
ranger(Species ~ ., data = iris,num.trees=100,mtry=3)

## Prediction 
train.idx <- sample(nrow(iris), 2/3 * nrow(iris)) 
iris.train <- iris[train.idx, ] 
iris.test <- iris[-train.idx, ] 
rg.iris <- ranger(Species ~ ., data = iris.train) 
pred.iris <- predict(rg.iris, data = iris.test) 

#Build a confusion matrix
table(iris.test$Species, pred.iris$predictions)
Output:
             setosa versicolor virginica
  setosa         16          0         0
  versicolor      0         16         2
  virginica       0          0        16

相当令人印象深刻的表现。 您应该在更复杂的数据集上尝试Ranger,看看您的计算速度有多快。

purrr

在数据的不同部分运行线性回归模型并计算每个模型的评估指标时,会筋疲力尽吗? purrr包来救你。

您还可以为不同的数据块构建广义线性模型(glm),并以列表的形式为每个要素计算p值。 purrr的优点是无穷无尽的!

让我们看一个例子来了解它的功能。 我们将在此建立一个线性回归模型,并对R平方值进行子集化:

#First, read in the data mtcars
data(mtcars)

mtcars %>%
   split(.$cyl) %>% #selecting cylinder to create three sets of data using the cyl values
   map(~ lm(mpg ~ wt, data = .)) %>%
   map(summary) %>%
   map_dbl("r.squared")
Output
    4         6         8 
0.5086326 0.4645102 0.4229655

所以你观察到了吗? 这个例子使用purrr来解决一个相当现实的问题:

  • 将数据框拆分为多个部分
  • 为每件作品安装模型
  • 计算摘要
  • 最后,提取R平方值

给我们节省了很多时间,对吧? 我们只使用一行代码,而不是运行三个不同的模型和三个命令来对R平方值进行子集化。

Utilities: Other Awesome R Packages

让我们来看看其他一些不一定属于“机器学习”保护伞的软件包。 我发现这些在使用R方面很有用。

rtweet

情感分析是机器学习中最受欢迎的应用之一。 在当今的数字世界中,这是一个不可避免的现实。 Twitter是提取推文和构建模型以理解和预测情绪的主要目标。

现在,有一些R包用于提取/抓取推文和执行情绪分析。 'rtweet’包也是如此。 那么它与其他包装有什么不同呢?
在这里插入图片描述

'rtweet’还可以帮助您检查R本身的推文趋势。真棒!

# install rtweet from CRAN
install.packages("rtweet")

# load rtweet package
library(rtweet)

必须授权所有用户与Twitter的API进行交互。 要获得授权,请按照以下说明操作:

1.制作Twitter应用程序

2.创建并保存访问令牌

有关从Twitter获取身份验证的详细分步过程,请点击此链接。

您可以使用下面提到的代码行搜索带有某些主题标签的推文。 让我们尝试使用标签#avengers搜索所有推文,因为Infinity War已全部发布。

#1000 tweets with hashtag avengers 

tweets <- search_tweets(
  "#avengers", n = 1000, include_rts = FALSE)

You can even access the user IDs of people following a certain page. Let’s see an example:

## get user IDs of accounts following marvel

marvel_flw <- get_followers("marvel", n = 20000)

你可以用这个包做更多的事情。 尝试一下,如果您发现令人兴奋的事情,请不要忘记更新社区。

Reticulate

喜欢R和Python编码,但想坚持RStudio? 网纹就是答案! 该软件包通过在R中提供Python接口解决了这个突出的问题。您可以轻松地使用R本身内的主要python库,如numpy,pandas和matplotlib!

您还可以使用一行代码轻松地将数据从Python转换为R和R转换为Python。 这不是很棒吗? 查看下面的代码块,看看在R中运行python是多么容易。

在这里插入图片描述

在继续在R中直接安装网状网之前,您必须先安装TensorFlow和Keras。

install.packages("tensorflow")
install.packages("keras")

library(tensorflow)
library(keras)
install_keras()
install.packages("reticulate")
library(reticulate)

你很高兴去! 运行我在屏幕截图中提供的命令,并以类似的方式尝试您的数据科学项目。

BONUS

这里有两个其他实用程序R包,适合所有编程书呆子!

Installr

你是否单独更新你的R套餐? 这可能是一项繁琐的任务,尤其是当有多个包在起作用时。

'InstallR’包允许您只使用一个命令更新R及其所有包! 我们可以使用InstallR一次性更新所有软件包,而不是检查每个软件包的最新版本。

# installing/loading the package:
if(!require(installr)) {
install.packages("installr"); require(installr)} #load / install+load installr
 
# using the package:
updateR() # this will start the updating process of your R installation. 
# It will check for newer versions, and if one is available, will guide you through the decisions you'd need to make

GitHubInstall – An Easy Way to Install R Packages from GitHub

您使用哪个包从GitHub安装库? 我们大多数人长期依赖’devtools’套餐。 这似乎是唯一的方式。 但有一点需要注意 - 我们需要记住开发人员的名字来安装软件包:

install_github("DeveloperName/PackageName")

使用’githubinstall’包,不再需要开发人员名称。

install.packages("githubinstall")

#Install any GitHub package by supplying the name
githubinstall("PackageName")

#githubinstall("AnomalyDetection")

该软件包还为GitHub上托管的R软件包提供了一些有用的功能。 我建议查看包文档(上面链接)以获取更多详细信息。

End Notes

这绝不是一份详尽的清单。 还有很多其他R套件可以提供有用的功能,但却被大多数人忽略了。

你知道我在这篇文章中遗漏的任何套餐吗? 或者您是否在项目中使用了上述任何一种? 我很乐意听到你的消息! 在下面的评论部分与我联系,让我们谈谈R!

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adam婷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值