深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

知道吗,你购物时抢购到的爆款,很可能是数据预测推算的结果。没想到吧,你被套路了。

沃尔玛是世界上最大的零售商,在28个国家拥有超过20000家门店。它目前正在建设世界上最大的私有云,每小时可以处理2.5千兆字节的数据。沃尔玛之所以成功,是因为它能利用客户数据来了解客户的购物模式。

沃尔玛的数据分析师和数据科学家对客户的每一个细节都了如指掌。他们知道,如果顾客购买了商品A,他们也可能购买商品B。他们使用从所有客户那里获得的数据,并对其进行分析,以了解特定客户在寻找什么。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

万圣节期间,沃尔玛的销售分析师对数据进行了实时分析,发现尽管一种特定的曲奇在沃尔玛的所有门店都很受欢迎,但有2家门店根本就没有销售这种曲奇。这一情况立即就被调查,结果发现,简单的库存监管疏忽而导致了曲奇未能上架销售。这一问题立即得到纠正,避免了进一步的销售损失。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

另一个例子是通过关联规则挖掘,沃尔玛发现,在飓风来临之前,草莓馅饼的销量增长了7倍。沃尔玛的一位数据分析师通过数据挖掘发现了飓风和草莓馅饼之间的联系,并在飓风来临前把所有的草莓馅饼都放在收银台。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

不仅如此,沃尔玛还利用社交媒体数据来寻找趋势产品,以便将其引进到世界各地的沃尔玛商店。例如,沃尔玛分析了社交媒体数据,发现用户对“棒棒糖蛋糕”很着迷。沃尔玛对此数据分析迅速做出了反应,于是棒棒糖蛋糕在沃尔玛的门店大卖。沃尔玛掌握着大量的数据,还可以继续收集更多的资源。

将强大的数据与根据根据实时数据快速做出决策和实施更改的能力相结合,数据成为沃尔玛保持自身领先地位的关键。数据的预测功能就是这么牛!

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

什么是数据科学?

根据维基百科的说法,数据科学是一个跨学科的领域,它使用科学的方法、过程、算法和系统从各种形式的的数据中提取知识和见解,包括结构化与非结构化的数据。当组织面临问题时,它应该能够正确地应用数据来解决问题。这就是数据科学的工作原理。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

公司利用数据为日常业务增值。数据科学的基本目标是帮助公司更快、更好地做出决策,使其在市场上发展得更好。这使得数据科学成为最有前途的职业之一。

以下是数据科学帮助企业发展的4种方式:

  1. 指导管理人员做出更好的决策
  2. 根据趋势定义业务目标
  3. 确定机会
  4. 识别风险

在业务中实施数据科学还有许多加分点,如果你想发展业务,必须考虑参加数据科学培训。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

数据生命周期

数据科学的生命周期有6个步骤:

  1. 业务需求
  2. 数据采集
  3. 数据处理
  4. 数据探索
  5. 数据建模
  6. 部署

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

步骤1:业务需求

在开始一个数据科学项目之前,了解想要解决的问题是至关重要的。在这个阶段,应该通过识别需要预测的变量来确定项目的核心目标。

步骤2:数据采集

定义了项目的目标,下一步就是收集数据了。数据挖掘是从不同来源去收集数据的过程。在这个阶段,有一些值得考虑的问题:该项目需要什么数据?数据在哪里?怎样才能得到它?存储和访问所有数据的最有效方法是什么?

步骤3:数据处理(清理)

找到正确的数据需要时间和精力。如果所需数据都存储在数据库中,那就很幸运了。但是,如果数据不存在于数据库中,则需要对其进行处理。

这就是将数据转换为所需格式以便读取数据的地方。导入所有数据后,我们将进入最耗时的步骤——清理和准备数据。根据对数据科学家的采访,这个过程通常需要花费50%到80%的时间。

数据清理是指删除不相关和不一致数据的过程。在这一阶段,必须识别并纠正这些不一致的数据。

步骤4:数据探索

在数据探索阶段,可以了解数据中的模式,并从数据中检索所有有用的见解。你发现了隐藏的模式并开始形成关于你的数据的假设。你可以使用各种数据可视化包,如R中的ggplot2,以更清楚地了解数据。

步骤5:数据建模

在这一阶段,需要进行模型训练。模型训练包括将数据集分成两组,一组用于训练,另一组用于测试。之后,你必须使用训练数据集来构建模型。这些模型使用了K最近邻、支持向量机、线性回归等多种机器学习算法。

最后一步是评估这些模型的效率,并检查其预测结果的准确性。

步骤6:部署

此阶段的目标是将模型部署到生产或类似生产的环境中,以供最终用户接受。这是检查模型是否适合生产的地方。用户必须验证模型的性能,如果模型有任何问题,则必须在此阶段修复这些问题。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

机器学习导论

机器学习主要是让计算机通过数据学习到一些技巧而不需要明确编程来行动的科学。这听起来很像一个孩子学会区分水果。

让我们搭建一个模拟场景来理解机器学习。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

  • 一个孩子如果要学会区分如樱桃、苹果和橙子等水果的话,因为不熟悉水果的外观,他/她甚至不知道从哪里开始。
  • 随着成长,他/她收集了更多的信息,并开始开发区分各种水果的能力。之所以能够做出这种区分,唯一的原因是观察周围的环境,收集更多的数据,并从过去的经验中吸取教训。这是因为既然已经给大脑提供了大量的数据,大脑就有足够的能力思考和做出决定。
  • 这就是机器学习的工作原理。它不断地向机器提供数据,以便它能够解释这些数据、理解有用的见解、检测模式并识别解决问题的关键特征。这和大脑的工作方式非常相似!

现在,在研究机器学习的不同类型之前,先了解机器学习的过程。这一切都是从一个算法开始的。假设你想把宠物的图片输入电脑,希望电脑把这些图片分为两类。一类包含猫的图像,另一类包含狗的图像。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

首先要开发一个算法或逻辑,将输入图像分为两类。然后,利用训练数据集对算法进行训练以建立模型。然后使用测试数据集对该模型进行测试,以检查算法是否能够正确区分猫和狗。

如果该算法能够准确地将图像分为两类,则部署该算法。否则,对算法进行进一步的训练,直到达到一定的精度。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

机器学习类型

训练或教授机器的三种不同方法:

  1. 监督学习
  2. 无监督学习
  3. 强化学习

监督学习

监督是指监视或指导某项活动并确保其正确完成。在监督学习中,向模型提供一组数据,成为训练数据,其中包含输入数据和相应的预期输出。训练数据充当教师,并向模型传授特定输入的正确输出,以便在以后提供新数据时做出准确的决策。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

一旦机器经过训练,就给它另一组数据,称为测试数据。测试数据只包括输入数据,不包括相应的预期输出。所以,现在模型必须根据它在训练阶段学到的知识来预测输出。

监督学习用于可标记的数据。与将数据集分类为猫或狗的示例一样,训练数据集是有标签的。因此,如果给算法输入猫的图像,那么该图像将被标记为猫,狗的图像亦如此。这就是模型的教学方式,通过贴上标签告诉我们“这是一只猫”。教完算法后,再进行测试。

无监督学习

无监督是指在没有任何监督或指导的情况下采取行动。当一个孩子长大成人后,他不再需要别人来指导他的每一步。他在没有任何帮助的情况下观察和学习。这就是无监督学习的工作原理。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

在无监督学习中,给模型一个既未标记也未分类的数据集。该模型探索数据并从数据集中得出推论,以从未标记的数据定义隐藏结构。但它不能添加标签集群,就像它不能说这是一组猫或狗,但它将把所有的猫和狗分开。

强化学习

强化是指建立或鼓励一种行为模式。如果你被遗落在一个孤岛上会发生什么?

起初,你会惊慌失措,不确定该做什么,从哪里得到食物,如何生活等等。但是一段时间后,你必须适应,必须学会如何在岛上生活,适应不断变化的气候,学会吃什么以及不吃什么。

你在遵循“命中和追踪”的概念,因为周围环境很陌生,唯一的学习方法就是实践,然后从经验中学习。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

这就是强化学习。它是一种学习方法,其中一个代理人(你,被困在一个岛上)通过产生行为和发现错误或回报与它的环境(岛)交互。一旦得到训练,它就准备好对提供给它的新数据进行预测。

既然你已经对机器学习和数据科学有了很好的了解,那么来看看如何使用名为R的统计编程语言来实现数据生命周期。

R介绍

什么是数据科学的R编程?

很多人都有这个问题,R中的数据科学是什么?

还有人问,R在R编程中代表什么?

答案是,R是一种基本的开源编程和统计语言,用于数据分析、数据操作和数据可视化。它是数据科学领域中广泛使用的一种多用途编程语言。

大多数人都知道用于数据科学的两种主要语言是Python和R。但是应该选择哪种语言呢?

这就是应该选择R的原因:

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

R有更多的统计支持,R被建立为一种统计语言。这是一件好事,因为统计是数据科学的关键部分。Python中的状态模型包为统计方法提供了很好的覆盖,但是R生态系统要大得多。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

使用R,你可以轻松地将数据集塑造成一种格式,通过将大型多变量数据集切片,就可以轻松访问和分析该格式。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

R具有用于数据分析的内置函数

在R中,可以使用摘要内置函数来分析摘要统计信息。而在Python中,需要导入诸如statsmodels之类的包来实现这一点。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

8000多个包

R拥有8000多个包,可用于实现与假设测试、模型拟合、聚类技术和机器学习相关的各种统计分析工具。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

数据可视化

为了理解数据集以及各种变量之间的关系,可视化数据是很重要的。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

大量社区支持

因为其独创性和社区支持,R是最受欢迎的技术。超过250万用户正在使用R。很多公司如TechCrunch、Google、Facebook、Mozilla等也利用R。

R用于数据科学的实际实施

本文的前半部分,讨论了数据生命周期:从数据采集开始,到预测所需的输出结束。在本节中,我们将进行一个演示,以深入了解每一个数据生命周期阶段。

问题陈述:

研究印度房价指数(HPI)的变化。HPI将住宅价格的变化作为某个特定开始日期的百分比变化来衡量。HPI可以用于预测未来的房价。

数据集说明:

在这个演示中使用了HPI数据集。该数据集包含2011年至2013年期间印度各城市各季度的HPI信息。

逻辑:

在这个演示中,将执行数据生命周期的每个步骤。我们将从数据采集开始,然后是数据清理和探索、数据处理,最后以数据可视化结束。

既然已经清楚地了解了这个演示背后的逻辑,那么让我们从导入数据开始。有多种方法可以将数据导入RStudio。可以通过Web、数据库或使用本地文件导入数据。数据集存储在/Users/zulaikha/Desktop/path中,使用read.csv()方法从housing_index.csv文件中读取数据。

house <-read.csv('/Users/zulaikha/Desktop/housing_index.csv')

数据集被读取并存储在一个称为house的变量中。现在可以使用R中的

View()方法查看数据集。

View(house)

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

接下来,清理数据集。

house <- read.table(file = 'housing_index.csv', sep =',', header = TRUE, na.strings = 'NA') house <-na.omit(house)

read.table()函数具有以下属性:

  • file:要读取的文件的路径
  • sep:如何分隔数据,在我们的例子中,它是一个CSV文件(用逗号分隔)
  • header:默认为FALSE,表示数据是否包含header
  • na.strings:表示缺失值的字符串
  • na.omit()方法用于删除数据集中的N/A值。

在本例中,有一个N/A值会被删除。这是因为数据集若不一致可能会导致问题。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

一旦有了干净的数据集,下一个任务就是寻找数据类型,例如,我们希望住房指数具有数字数据类型。如果不是这样,就必须进行转换。这可以通过对数据集使用class()函数来实现。

sapply(house, class)

输出显示变量是数字格式的,因此不必进行转换。但是如果变量不是数字格式,那么可以使用as.numeric()函数将变量从字符数据类型转换为数字值。

summary(house)

R中的summary()函数查看数据集中不同变量的五点摘要。数据如下:

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

下一步是操作数据,包括创建新变量、转换数据、仅过滤数据集中的必需字段等。

让我们尝试操作数据集。我们将从2012年开始,只过滤掉HPI,下面的命令显示了这是如何完成的:

housing_2012 <- house[,c(1,5:11)]

使用以下命令查看过滤后的数据集:

housing_2012

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

现在,通过转置数据来执行更多的数据操作,这可以通过使用R中的t()函数来完成。转置意味着将行转换为列。下面的代码行将执行转置:

col_names <-housing_2012$Particulars
row_names<-colnames(housing_2012)
housing_data_transpose<-as.data.frame(t(housing_2012[,1]),row.names= F)colnames(housing_data_transpose) <- col_nameshousing_data_transpose$quarter<-row_names[-1] housing_data_transpose<-housing_data_transpose[,c(7,1:7)]

在下一步中,创建一个名为hpi_150的变量,它显示了在一个季度内超过150个住房指数的记录。按照以下命令执行此操作:

housing_data_transpose$hpi_150 <-apply(housing_data_transpose, MARGIN=1,FUN=function(x)length(which(x[c(-1,-2)]>150)))

接下来,尝试显示HPI超过150的记录的计数,得到:

housing_data_transpose

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

最后一步是可视化数据。在数据可视化方面,R有许多包,如ggplot、ggvis等。

让我们从使用boxplot开始。boxplot将提供数字数据的概述。这个boxplot将显示房屋指数在各个季度的变化情况。

boxplot(housing_2012[-1])

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

现在,绘制图表来显示印度各地各季度的房价走势。此图显示了各个季度的值。

plot(housing_data_transpose$`All India`)

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

下面使用折线图形式观察相同的图:

plot(housing_data_transpose$`All India`, type = 'l')

type属性设置为‘L’,表示折线图。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

如果想看到特定状态下HPI的变化,也可以这样做。为此,我们使用R提供的数据可视化包,称为ggplot2。

require(ggplot2) ggplot(housing_data_transpose,aes(quarter, Bangalore, fill = Bangalore)) +geom_bar(stat='identity',position='dodge')

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

上图显示了班加罗尔不同季度的价格。

完成了以上步骤,我们就使用了R执行了整个数据生命周期。

深入浅出!如果还看不懂这篇R数据科学,小编我就要下岗了

相关推荐