TowardsDataScience 博客中文翻译 2020(二百六十三)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

R 中的数据清理、合并和争论

原文:https://towardsdatascience.com/data-cleaning-merging-and-wrangling-in-r-26c2cd3649f4?source=collection_archive---------31-----------------------

这里有一些整理数据和在 r 中进行常见数据操作的有用技巧。

在任何上下文中处理数据的一个大问题是数据清理和数据集合并的问题,因为通常情况下,您会发现自己必须整理多个文件中的数据,并且需要依赖 R 来执行通常在 Excel 中使用 VLOOKUP 等命令执行的功能。

下面是一些关于 R 如何用于数据操作的有用例子。虽然 Python 的 pandas 库传统上被认为是这一领域的赢家,但 R 经常使用的数据操作技术实际上非常强大。

让我们来看看其中的一些。

数据清理和合并功能

对于示例 1–7,我们有两个数据集:

  • sales: 该文件包含变量 Date、ID(即产品 ID)和 sales。我们将它加载到 R 中,命名为 mydata。
  • **客户:**该文件包含变量 ID、年龄和国家。我们将它加载到 R 中,命名为 mydata2。

这些数据集可以在下面的 GitHub 仓库获得。

下面是 R 中用来清理数据集的流行技术的例子,以及如何有效地格式化变量以方便分析。以下函数特别适用于面板数据集,其中混合了横截面和时间序列数据。

1。在数据帧中存储变量

从一个简单的例子开始,让我们选择客户数据集。假设我们只希望在数据中包含变量 ID 和 Age。为此,我们将数据框定义如下:

dataframe<-data.frame(ID,Age)

2。使用合并功能模拟 VLOOKUP

通常,有必要将不同数据集中的两个变量组合起来,类似于在 Excel 中使用 VLOOKUP 根据特定标准连接两个变量。如果你不熟悉 VLOOKUP 函数,你可能会发现 Spreadsheeto 的这个指南特别有用。

在 R 中,这可以使用 merge 函数来完成。

例如,假设我们希望将 sales 数据集中的 Date 变量与 customers 数据集中的 Age 和 Country 变量链接起来,用 ID 变量作为公共链接。

因此,我们做如下工作:

mergeinfo<-merge(mydata[, c("ID", "Sales")],mydata2[, c("ID", "Age", "Country")])

这样做后,我们看到在 R 中形成了一个新的数据集,它连接了我们选择的变量:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3。使用 as.date 格式化日期并计算持续时间

假设我们现在希望计算当前日期和销售文件中列出的销售日期之间的天数。为了实现这一点,我们可以使用 as.date,如下所示:

currentdate=as.Date('2016-12-15')
dateinfile=as.Date(Date)
Duration=currentdate-dateinfile

回到上面的例子,假设我们现在希望将这个持续时间变量与其余的数据结合起来。

因此,我们现在可以将我们的新 Duration 变量与上面的 merge 函数结合起来,并且可以这样做:

durationasdouble=as.double.difftime(Duration, units='days')
updateddataframe=data.frame(ID,Sales,Date,durationasdouble)
updateddataframe

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4。使用 as。POSIXct 和 format 来计算秒之间的差异

虽然在上面的例子中情况并非如此,但在我们拥有包含时间的日期的情况下,经常会出现这样的情况,例如“2016–10–13 19:30:55”。

有时,我们可能希望找出两个日期的秒数之间的差异。对此,作为。POSIXct 是比 as.Date 更合适的选项。

date_converted<-format(Date, format="%Y-%m-%d %H:%M:%S")
new_date_variable<-as.POSIXct(date_converted)
seconds<-diff(new_date_variable,1)

当我们定义秒变量时,它会给出两个日期之间的秒差。然后,这是一个简单的算术问题,以获得分钟和秒的差异。

minutes<-seconds/60
hours<-minutes/60

5。grepl:从变量中删除一个字符串的实例

让我们看看国家变量。假设我们希望从变量中删除所有“Greenland”的实例。这是使用 grepl 命令完成的:

countryremoved<-mydata2[!grepl("Greenland", mydata2$Country),]

6。使用头尾功能删除观察值

如果我们希望从变量中删除某些观察值,例如销售额,可以使用 head 和 tail 函数。head 函数允许我们删除前 30 行,而 tail 函数允许我们删除后 30 行。

当使用以这种方式编辑的变量进行计算时,例如回归,as.matrix 函数也用于将变量转换为矩阵格式:

Salesminus30days←head(Sales,-30)
X1=as.matrix(Salesminus30days)
X1

Salesplus30days<-tail(Sales,-30)
X2=as.matrix(Salesplus30days)
X2

7。使用“聚集”功能复制 SUMIF

names <- c("John", "Elizabeth", "Michael", "John", "Elizabeth", "Michael")
webvisitsframe <- cbind("24","32","40","71","65","63")
webvisits=as.numeric(webvisitsframe)
minutesspentframe <- cbind("20", "41", "5", "6", "48", "97")
minutesspent=as.numeric(minutesspentframe)

假设我们已经创建了如下表格,并希望获得在任何特定时间段内网站访问量和在网站上花费时间的总和:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这种情况下,我们可以通过使用 r 中的聚合函数来复制 Excel 中的 SUMIF 函数(其中与特定标识符相关联的值被求和),这可以按如下方式完成(其中 raw_table 是上面指定的表):

sumif_table<-aggregate(. ~ names, data=raw_table, sum)
sumif_table

因此,与标识符(在本例中是名称)相关联的值总结如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

根据堆栈溢出中的示例,plyr 和 data.table 库也可用于实现相同的结果,如下所示:

library(plyr)
ddply(nametable, .(names), summarise, Sum_webvisits = sum(webvisits), Sum_minutesspent = sum(minutesspent))

library(data.table)
DT <- as.data.table(nametable)
DT[ , lapply(.SD, sum), by = "names"]

8。使用 diff()函数计算滞后

当进行时间序列分析时,经常需要计算特定变量的滞后时间。为了在 R 中做到这一点,我们使用 diff()函数。

在本例中,我们创建一个矩阵,以价格数据作为列名,以年份作为行名:

pricedata <- matrix(c(102, 90, 84, 130, 45), ncol=1)
colnames(pricedata) <- c('Price')
rownames(pricedata) <- c('2012', '2013', '2014', '2015', '2016')
pricedata.table <- as.table(pricedata)
pricedata.table
Year	Price
2012	102
2013	90
2014	84
2015	130
2016	45
2\. Lag = 1diff(pricedata.table,1)
Year	Price
2013	-12
2014	-6
2015	46
2016	-85
3\. Lag = 2diff(pricedata.table,2)
Year	Price
2014	-18
2015	40
2016	-39
4\. Differences = 2diff(pricedata.table,differences=2)
Year	Price
2014	6
2015	52
2016	131

9。按列表分隔(对面板数据集有用)

假设我们有一个需要分离的数据集,例如通过 ID。手动操作会导致一个相当混乱的过程。相反,我们可以使用 unique 和 split 函数来形成一个列表。这里有一个如何做到这一点的例子。

使用包含日期、姓名和 id 的数据框:

> Date<-c("20/02/2017","21/02/2017","22/02/2017","20/02/2017","21/02/2017","22/02/2017")
> ID<-c("20","20","20","40","40","40")
> Name<-c("Brian","Brian","Brian","Adam","Adam","Adam")
> df<-data.frame(Date,ID,Name)
> df
        Date ID  Name
1 20/02/2017 20 Brian
2 21/02/2017 20 Brian
3 22/02/2017 20 Brian
4 20/02/2017 40  Adam
5 21/02/2017 40  Adam
6 22/02/2017 40  Adam

但是,我们希望通过按 ID 过滤将观察结果分成两个单独的列表。我们将这样做,如下所示:

> listofids=as.character(unique(df$ID))
> mylist <- split(df, df$ID)
> mylist

$`20`
        Date ID  Name
1 20/02/2017 20 Brian
2 21/02/2017 20 Brian
3 22/02/2017 20 Brian$`40`
        Date ID Name
4 20/02/2017 40 Adam
5 21/02/2017 40 Adam
6 22/02/2017 40 Adam

这是完整的列表。如果我们希望一次调用一个(通过 ID 作为我们的唯一标识符,我们可以这样做:

> mylist[1]
$`20`
        Date ID  Name
1 20/02/2017 20 Brian
2 21/02/2017 20 Brian
3 22/02/2017 20 Brian
> mylist[2]
$`40`
        Date ID Name
4 20/02/2017 40 Adam
5 21/02/2017 40 Adam
6 22/02/2017 40 Adam

结论

上面的例子说明了我们在 R 中进行数据操作过程的各种方法,以及复制普通 Excel 函数(如 VLOOKUP)的技术。非常感谢您的宝贵时间,上面例子的相关 GitHub 库再次在这里可用。

你也可以在 michael-grogan.com 的找到更多我的数据科学内容。

免责声明:本文是在“原样”的基础上编写的,没有担保。本文旨在提供数据科学概念的概述,不应以任何方式解释为专业建议。

Python 数据清理系列:第 1 部分

原文:https://towardsdatascience.com/data-cleaning-series-with-python-part-1-24bb603c82c8?source=collection_archive---------33-----------------------

数据预处理

回到基础——处理缺失值

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“计算机上的代码”由马库斯·斯皮斯克Unsplash 上发表

垃圾进,垃圾出——嘿

几个月前,我和我的一个朋友聊天,他最近申请了班加罗尔一家 IT 公司的高级数据科学职位。作为面试过程的一部分,为了解决一个业务问题,他得到了一个数据集。他开始解释他的方法,很快就被面试官打断了。当我问他原因时,他说,“他们关心的只是我选择的用于数据的算法。”

数据科学领域已经存在了相当一段时间。尽管如此,仍然有很多人低估了干净数据的价值。机器学习算法的好坏取决于输入的数据。
因此,在将你的数据输入你的算法之前,对其进行清理和辩论是至关重要的。

本系列将有助于向该领域的新手灌输有关数据预处理的最佳实践,并为社区中的老成员提供全面的复习。

缺少值的情况

研究人员在进行研究时通常会采取非常谨慎的措施。许多此类研究的主要结果是收集数据。不幸的是,许多研究最终都丢失了信息。必须处理缺失值,因为它们会对我们的机器学习算法的预测能力产生负面影响。然而,某些算法会绕过丢失的值。

数据中缺少值的原因很多。调查数据集的参与者可能选择不共享信息,数据录入人员可能会犯错误,收集数据的自动机器可能会出错等。

我们必须接受人为错误是不可避免的——并围绕这一事实进行设计——唐纳德·伯威克

维基百科定义了三种缺失数据:

  • 完全随机失踪(MCAR)
  • 随机失踪(3 月)
  • 非随机缺失(MNAR)

我不会详细说明其中的复杂性,但是你可以在这里阅读。

通常,我们会发现数据中缺失值的多种表现形式。有时它们由单个特殊字符表示,如.(句号)、*(星号)。其他时候可以用N/ANaN或者-999来代表。

让我们看一个这样的数据集。

资料组

我们将使用的数据集是来自 UCI 机器学习知识库的糖尿病数据集。可以从这里下载。让我们快速地看一看。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

糖尿病数据集的前 10 个值。

# Check number of rows and columns after removing outcome variable.diabetes.shapeOutput:
(768, 8)

该数据具有 768 个观察值/行和 8 个变量/列。这里面似乎也没有缺失的价值。让我们通过在每一列中随机插入缺失值来解决这个问题。我们将以 0.1 或 10%的因子在每一列中引入缺失值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意数据中的某些观察值是如何被称为NaN的。这是 Python 中缺失值的默认表示法。接下来,让我们讨论一些处理这些值的技术。

处理缺失值

移除观察值

也称为 列表式删除 ,这种技术简单地涉及删除整个观察值,如果它有一个或多个丢失的值。如果在非常大的数据集中有少量缺失值,可以选择这种方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们观察到,在列表式删除之后,超过一半的数据集被擦除。看起来我们已经失去了很多有价值的信息让我们的准模特去学习。
此外,它还会影响 统计检验 的功效,因为它们需要大样本量。显然,在这种情况下,这种方法似乎不太合适。

用 0 插补

在这种方法中,数据中所有缺失的值(用NaN表示)都被替换为数字0

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python 中的 pandas 库有一个名为 *pandas.DataFrame.fillna* 的方法可以帮助我们完成这个任务。

起初,这种方法似乎是一个有吸引力的选择,因为我们能够保留我们所有的观察结果。此外,这是一种快速的估算方法。然而,仔细观察各个列,我们可以看到,将 0 加到一堆行上会在数据集中引入大量的偏差。实际上,那些丢失的条目可能具有远离数字 0 的值。

中心值插补

中心值插补是一种将缺失值替换为各自的中心趋势度量值的方法,又称均值中位数众数。对于数值变量,最好使用平均值或中值,而对于分类变量,则使用众数。
这背后的原因是,对于分类变量而言,均值和中值没有意义,因为分类变量具有定性属性而非定量属性。因此,为了说明集中趋势,我们使用 Mode,因为它是最频繁出现的值。

Python 的scikit-learn库有一个名为SimpleImputer的模块,它执行中心值插补。
strategy参数用于设置我们需要的插补类型。

这种形式的插补有其优点,特别是对于低方差数据。如果我们有非常不稳定的特征,用这种方法估算可能不是一个好主意。然而,与以前的技术相比,它通常是一种快速且更好的估算方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由艾米丽·莫特Unsplash 上拍摄

作为输入者的学习算法

到目前为止,我们只研究了处理缺失值的简单方法。当我们的数据变得复杂时,我们需要更好的估算方法。
在这一部分,我们将看看几个我们喜爱的学习算法,以及它们如何帮助我们估算缺失值。

回归插补

回归插补是相当不言自明的。这种形式的插补使用多元线性回归原理来插补数值。如果你需要线性回归的复习,那么看看我的线性回归系列。

[## 线性回归:钱球—第 1 部分

大众体育故事的统计案例研究

towardsdatascience.com](/linear-regression-moneyball-part-1-b93b3b9f5b53)

为了概括线性回归,我们挑选一个因变量或输出 y ,并使用多个自变量 X 来拟合一个能够预测y 的函数。*使用 X 中的变量作为输入量或回归量来预测。***

回归插补中,带有缺失值的一列被选作我们的 y ,其余的列被用作输入变量X来拟合y .该函数用于预测 y. scikit-learn列中的缺失值。****

虽然回归插补似乎可行,但它也有局限性。由于我们使用拟合值作为插补的输出,我们的插补值将非常精确。
这是因为与正常的线性回归模型不同,回归插补缺少一个 误差 项。完全消除了这些估算值的不确定性。

k-最近邻插补

也被称为 Knn 插补,这种插补形式使用K-最近邻算法来插补数值。

这个算法很好解释。它查看 k 个条目,并比较它们与有缺失值的条目之间的“距离”。这里的 k 值由用户定义。k 的合适值的经验法则是取观察次数(N)的平方根。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

乔恩·泰森在 Unsplash 上的照片

k-NN 算法使用距离度量来选择与我们感兴趣的行最近的邻居。
用于数字属性的最常见的距离度量通常是曼哈顿距离( L1 范数)或者欧几里德距离( L2 范数)。在分类变量中,最流行的距离度量是余弦相似度雅克卡距离汉明距离。计算距离后,缺失值由“相邻”行的多数投票(分类)或平均值/加权平均值(数值)确定。

在上面的例子中,k=3

k-NN 插补是一种非常有效的插补方法。对于小型、中型数据集,它通常能获得非常好的结果。在大数据集上,算法的运行时间大大增加。此外,对于特别具有大量特征(列)的数据集,会出现维数灾难问题。

结论

在这篇博文中,我们来看看一些插补方法,以处理缺失数据。作为数据科学领域的从业者,我们必须理解每种方法的优势和局限性。这将帮助我们在构建数据预处理管道时做出明智的决策。
请注意,以上插补技术列表并非详尽无遗。还有许多其他的高级方法来处理缺失值,这超出了本文的范围。一种这样的插补类型是小鼠插补

如果你喜欢这个帖子,请在媒体上关注我,并在 LinkedIn 上给我发一个邀请。查看我关于数据科学的其他帖子。下次见。✋

参考文献:

[1]https://sci kit-learn . org/stable/modules/classes . html # module-sk learn . impute
【2】https://en . Wikipedia . org/wiki/attubation _(统计)

使用 Python Pandas 清理数据

原文:https://towardsdatascience.com/data-cleaning-using-python-pandas-f6fadc433535?source=collection_archive---------12-----------------------

使用内置 Pandas 函数在分析前清理数据的综合指南

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

斯坦 YUnsplash 上拍照

介绍

随着时间的推移,公司会产生和收集大量数据,根据公司的不同,这些数据可能以多种不同的形式出现,如用户生成的内容、求职者数据、博客帖子、传感器数据和工资单交易。由于可以生成数据的源系统数量巨大,以及参与数据生成的人数众多,我们永远无法保证我们接收到的数据是干净的记录。这些记录可能由于缺少属性而不完整,它们可能在用户输入的文本字段中有不正确的拼写,或者它们可能有不正确的值,例如将来的出生日期。

作为一名数据科学家,在探索阶段尽早发现这些数据质量问题,并在进行任何分析之前进行清理,这一点非常重要。由于允许未经清理的数据通过我们的分析工具,我们可能会因基于不正确的数据得出质量低劣的调查结果而承担错误地代表公司或用户数据的风险。今天我们将使用 PythonPandas 来探索一些可用于清理数据集的内置函数。

入门指南

对于今天的文章,我们使用的是为 Python 构建的集成开发环境 PyCharm 。对于初学者来说,这是一个非常好的工具,因为它简化了虚拟环境的创建和特定 Python 包(如 Pandas)的安装。使用虚拟环境允许您管理项目依赖性,而不会影响操作系统的默认 Python 安装。

首先打开 Pycharm 并从导航栏中选择File > New Project。在这里,您可以使用Location命名您的项目,或者创建一个新的虚拟环境,或者引用一个现有的虚拟环境。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PyCharm 的“新项目”对话框显示了命名项目的位置和虚拟环境创建路径。

为了让你开始,我们在下面创建了一个基本的 Python 脚本和一个 CSV 文件,这两个文件在整篇文章中都将被引用。这两个文件都可以下载并保存到您的项目根目录下。最终的剧本可以在这里找到。

Python 代码片段读取 CSV 文件,将特定列转换为默认数据类型,并重命名列。

上面的脚本演示了在将文件读入内存后的一些数据帧操作。在第 5–7 行,我们覆盖了许多 Pandas 的默认配置,这些配置在处理较大的文件时会在打印时截断控制台输出。为了将数据读入内存,我们在第 10 行使用 Pandas 内置函数read_csv(),它将一个文件名作为参数。在第 13–15 行,我们设置了三列的数据类型,这有很多好处。首先,通过减少内存占用,设置数据类型可以提高处理数据帧行的性能。其次,丰富了我们在运行 Pandas .describe()内置函数时得到的描述性统计输出。在第 18 行,我们执行了一个列重命名,这是一个将通用列名转换成更有意义的名称的常用方法。

清理数据帧

为了了解数据集的哪些方面需要清理,我们首先需要了解我们正在处理哪些数据。最好的方法是使用熊猫内置函数.info().describe()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

调用熊猫内置函数后的控制台输出。信息()。

上面的.info()的结果清楚地显示了非空元素的数量,因此可以使用第一行的 RangeIndex 推导出空元素的数量。总结这一点的一个快速方法是调用df.isnull().sum(),它对每一列中的空元素的数量进行求和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

调用熊猫内置后的控制台输出。isnull()。sum()函数。

如果我们需要知道空元素占整个数据集的百分比,那么我们可以做以下事情。

用于计算缺失元素占整个数据集的百分比的 Python 代码片段。

删除列

调用.info().isnull().sum()后跳出的一个元素是跨越 1000 条记录有 1000 个空值的tax_file_no。移除这些类型的行最简单的方法是使用 Pandas .dropna().dropna()功能采用.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)的形式。axis参数决定该函数是应用于行axis='index'还是列axis='columns'how参数可以是how='any'how='all',这意味着如果任何所有元素都为空值,则可以删除该列或行。thresh参数允许您设置列或行中所需的非空元素的最小数量,否则将被删除。subset参数是可选的,可以接收列名列表,如果列表为空,那么.dropna()函数将应用于所有列或行。inplace可以是True也可以是False,如果是True则返回None。对于我们的例子,我们将使用df.dropna(axis='columns', how='all', inplace=True)。执行.dropna()并将数据帧信息打印到控制台后,您会注意到tax_file_no列不再包含在内。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自的控制台输出。执行后的 info()。显示 tax_file_no 列的 dropna()已被删除。

删除行

在检查完完全为空的列之后,有必要检查是否有任何行没有包含足够的可用元素。我们可以通过使用.dropna(thresh=2)删除任何少于两个元素的行来实现这一点。

Python 代码片段显示了如何检查将被移除的少于两个元素的行。

在第 2 行,我们删除所有少于两个元素的行。然后,第 3 行返回原始数据帧中其索引不存在于under_threshold_removed中的任何行,即被删除的行。它通过否定~熊猫内置的.index.isin()功能来实现这一点。在我们的示例中,返回一条只包含雇员编号的记录。

填充缺失值

在某些情况下,我们可能希望保留包含缺失值的行,而不是在缺失时给它们一个默认值。对于这个例子,我们将把性别列中的空值映射到未知的 U 。熊猫提供了一个内置功能,可以实现这个.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

熊猫.fillna()在清理数据或操作数据帧时是一个非常强大的功能。value参数可以接受一个字典,该字典允许您指定将在特定列上用来填充空值的值。这样做的好处是当您不希望对数据帧中的所有空元素应用相同的空填充值时。method参数允许您根据序列中的其他值填充空值。您可以将方法设置为ffill,它将使用序列中存在的最后一个有效值来填充空值。bfill方法选项执行类似的功能,但填充值取自系列中出现的下一个有效值。axisinplace参数获得与上述.dropna()功能相同的结果。如果您已经设置了method参数,您可以使用limit参数告诉.fillna()向前/向后检查连续空值的最大数量,以达到有效值。如果method参数为None,则limit参数可用于设置系列中空值的最大数量,该数量将由传递的值填充。

由于gender列具有分类数据类型,在我们将缺失值映射到 U 之前,我们首先需要在序列中创建一个新的类别。

Python 代码片段显示了如何在映射系列中缺失的值之前添加新类别。

要添加一个新的类别,我们需要将gender列隔离为一个系列,并调用.add_categories()。这将允许你使用接受列表的new_categories=[]来传递新的类别。一旦创建了新类别,您就可以使用.fillna()并引用新类别。要查看所做的更改,您可以调用df['gender'].value_counts(),这将隔离gender列,并为系列中的每个类别提供一个值计数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示 206 个缺失值的控制台输出现在映射到性别列中的新类别 U。

提高可读性

在这种情况下,我们理解类别 M、F 和 U 背后的含义,但是,接收数据的利益相关者可能不理解。为了提高分析的可读性,我们可以将类别重命名为更有意义的名称。

Python 代码片段显示了如何重命名性别列中的类别。

上面的代码片段使用了内置函数.rename_categories(),该函数接受一个将当前类别映射到新类别的字典。下面显示了重命名的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示性别列中新重命名的类别的值计数的控制台输出。

摘要

作为一名数据科学家,在你的职业生涯中,你会遇到不完整和质量差的数据集。为了生成高质量的分析,我们需要确保我们正在清理数据,以便准确地表示数据集。Pandas 提供了各种各样的内置功能,可用于在分析之前清理和操作数据集。它允许您删除不完整的行和列,填充缺失的值,并通过类别重命名提高数据集的可读性。

感谢您花时间阅读我们的故事,我们希望您觉得它很有价值。

用熊猫清理数据——避免这个错误!

原文:https://towardsdatascience.com/data-cleaning-with-pandas-avoid-this-mistake-7af559657c2c?source=collection_archive---------18-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

https://unsplash.com/photos/FOsina4f7qM

Pandas 是 Python 中一个非常有用的数据操作包。在很大程度上,函数是直观的,快速的,易于使用的。但是有一次,我花了几个小时调试管道,发现在 Pandas 列中混合类型会导致管道中出现各种问题。多读一点去发现我的意思,避免以后这样做。

什么是混合型栏目

混合类型正是您所想的:它们是具有多种类型(string、integer、float 等)的列。在 pandas 中,创建混合型列非常容易:

import pandas
df = pd.DataFrame({"price": [9.99, "$9.99"]})
print(list(map(type, df["price"])))

这输出**【浮点,str】**。这些混合类型列将始终使用“object”数据类型作为其 d type:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是因为 Pandas 在幕后使用了 Numpy 数组,Numpy 的 dtypes 之一就是 Python 对象本身。因此,当多个类型被引入到一个列中时,Pandas 将使用这个“全部捕获”选项,而不是抛出一个错误(当您有字符串时,请参阅下面的参考资料,了解为什么它是一个对象数据类型,至少在 Pandas 1.0 之前是这样)。如果创建一个全是整数的熊猫序列,然后添加一个字符串,就可以看到这一点。

import pandas as pd
int_series = pd.Series([1, 2, 3])
print(int_series.dtype)  # dtype('int64')
int_series.loc[3] = "4"
print(int_series.dtype)  # dtype('O')

这是由设计决定的,类似于将数据输入 Excel 电子表格的设计模式。

这会导致问题

假设您有几个文件要合并。

sales_data = pd.read_csv("data/sales_data.csv", parse_dates=["date"])census_data = pd.read_csv("data/population_by_zip_2010.csv")
population = census_data.groupby("zipcode")["population"].sum().reset_index()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们需要合并邮政编码,但是为了这样做,我们需要首先清理 sales_data 邮政编码。让我们从 9 位数的邮政编码中提取出前 5 位数。有一些缺失值,假设经过调查,我们知道 2018 年之前所有缺失的邮政编码是 90001,之后所有缺失的邮政编码是 90002。

sales_data["zip_code"] = sales_data["zip_code"].str[:5]sales_data.loc[sales_data["zip_code"].isna() & (sales_data["date"] < pd.to_datetime("2018-01-01")), "zip_code"] = 90001sales_data.loc[sales_data["zip_code"].isna() & (sales_data["date"] >= pd.to_datetime("2018-01-01")), "zip_code"] = 90002

现在,我们准备合并

sales_and_population = pd.merge(sales_data, population, left_on="zip_code", right_on="zipcode")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看起来不错,对吧?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

嗯,这似乎太低了。现在你可能想知道这是不是因为右边的数据框人口中缺少数据。但不是,这是因为左边的 dataframe sales_datazip_code 列中有混合类型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们用 90001 和 90002 替换缺失的邮政编码时,引入了我们的 int。这些是唯一成功连接到人口数据框架的行,该数据框架的 dtype 为 int 。为了避免这个问题,我们需要在合并之前将我们的类型转换为 int 类型。

sales_data = sales_data.astype({"zip_code": int})sales_and_population = pd.merge(sales_data, population, left_on="zip_code", right_on="zipcode")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关键提示:用熊猫清理数据的时候要小心——类型不是强制的,以后可能会让人头疼,所以要经常检查你的类型,必要的时候进行强制转换!

参考

[## sm 14159/熊猫-混合型

此时您不能执行该操作。您已使用另一个标签页或窗口登录。您已在另一个选项卡中注销,或者…

github.com](https://github.com/sm14159/pandas-mixedtype/blob/master/notebook/pandas-mixedtypes.ipynb)

数据清理—从哪里开始?

原文:https://towardsdatascience.com/data-cleansing-where-to-start-90802e95cc5d?source=collection_archive---------44-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PublicCoPixabay 上的照片

数据清理/争论指南和清单

事实证明,数据科学家和数据分析师将把大部分时间花在数据预处理和 EDA 上,而不是训练一个机器学习模型。作为最重要的工作之一,数据清洗的确非常重要。

我们都知道我们需要清理数据。我想大多数人都知道。但是从哪里开始呢?在本文中,我将提供一个通用的指南/清单。因此,一旦我们开始一个新的数据集,我们就可以像这样开始数据清理。

方法论(C-R-A-I)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 geraltPixabay 上拍摄

如果我们问自己“为什么我们需要清理数据?”我认为,很明显,这是因为我们希望我们的数据遵循一些标准,以输入某种算法或以一致的规模可视化。因此,让我们首先总结一下我们希望我们的数据有哪些“标准”。

在这里,我总结了清洗数据集应该具备的 4 个主要标准。我会称之为“CRAI”。

  • 一致性

每一列数据在同一比例尺上应该是一致的。

  • 合理性

每列中的所有值都应符合常识。

  • 原子数

数据条目不应重复,数据列不应分割。

  • 完整性

数据条目应该具有所有可用的特性,除非空值有意义。

好的。请记住这 4 个标准。我会用更多的例子来解释它们,希望它们能成为你能记住的东西。

一致性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

absolute visionPixabay 上拍摄的照片

不管是连续的还是分类的,绘制柱状图都是很有帮助的。我们需要注意最小值/最大值、平均值和分布的形状。然后,用常识去发现是否有潜在的不一致。

例如,如果我们对一些人进行抽样,其中一列数据是他们的体重。假设直方图如下。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很明显 80 到 100 之间几乎没有。运用我们的常识就足以找出问题所在。也就是说,一些重量以千克为单位,而另一些重量以磅为单位。

当我们有多个数据源时,这种问题很常见。其中一些可能对相同的数据字段使用不同的单位。

清洗之后,我们可能最终会得到一个这样的分布,看起来不错。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

合理性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拍摄的照片在上展示

这也要靠我们的常识,但通常更容易被发现。一些常见的例子:

  • 人的年龄、体重、身高不应该是负数。
  • 一些分类数据(如性别)会有特定的枚举值。否则,它是无效的。
  • 大多数类型的文本值(如人名和产品名)不应该有前导空格和尾随空格。
  • 有时候我们可能还需要注意特殊字符。大多数情况下,它们应该被剥离出来。

原子数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Pixabay 上的 WikimediaImages 拍摄

这个很好理解。我们的数据集中不应该有任何重复的行。当我们有多个数据源时,不同的数据源可能会存储重叠的数据,这种情况很常见。

将唯一性检查留在一致性和合理性检查之后是很重要的,因为如果我们不解决一致性和合理性问题,将很难找出重复的行。例如,一个人的名字可能在不同的数据源中以不同的方式呈现,比如GonzálezGonzalez。一旦我们意识到一些非英语名字的存在,我们需要注意这类问题。

因此,尽管删除重复的行通常并不难,但是这样做的另一个问题可能会影响清理后的数据的最终质量。

违反原子性的另一种类型是一列可能是可分的,这意味着一列中隐藏了多个特性。为了最大化数据集的价值,我们应该把它们分开。

例如,我们可能有一个表示客户名称的列。有时可能需要将它分为名和姓。

完整

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pixabay 上的absolute vision拍摄的照片

根据数据源和数据结构的设计方式,我们可能会在原始数据集中丢失一些数据。这种数据丢失有时并不意味着我们丢失了一些数据条目,而是我们可能丢失了某些列的一些值。

发生这种情况时,确定“null”或“NaN”值在数据集中是否有意义非常重要。如果没有,我们可能需要删除该行。

但是,消除缺少值的行并不总是最好的主意。有时,我们可能会使用平均值或其他技术来填补空白。这取决于实际情况。

CRAI 方法的使用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 blickpixelPixabay 上拍摄

好吧,我希望上述例子分别解释了什么是“CRAI”。现在,让我们举一个真实的例子来练习!

假设我们的数据集中有一个地址列,我们应该做什么来确保它是干净的?

C — 一致性

  1. 地址可能包含街道后缀,如“street”和“St”、“Avenue”和“Ave”、“Crescent”和“Cres”。检查我们是否在那些对中有两个术语。
  2. 同样,如果我们在地址中有州名,我们可能需要确保它们是一致的,比如“VIC”和“Victoria”。
  3. 检查地址的单元号表示。“Abc 街 24 号第 9 单元”应与“Abc 街 9/24 号”相同。

R —合理性

  1. 例如,在一个国家,邮政编码必须遵循特定的格式。例如,在澳大利亚必须是 4 位数。
  2. 如果地址字符串中有国家,我们可能需要注意这一点。例如,数据集是关于在几个国家开展业务的一家国际公司的所有客户。如果出现不相关的国家,我们可能需要进一步调查。

a——原子性

  1. 最明显的原子性问题是我们应该将地址分成几个字段,比如街道地址、郊区、州和邮政编码。
  2. 如果我们的数据集是关于家庭的,比如一份健康保险。更值得注意的是不同数据条目的重复地址。

一、诚信

  1. 这是关于数据集中的整个数据条目(按行)。当然,我们需要删除重复的行。
  2. 检查是否有任何数据条目的地址丢失。根据业务规则和数据分析目标,我们可能需要删除没有找到地址的行。此外,地址通常不应该能够被导出,所以我们不应该需要填补空白,因为我们不能。
  3. 如果在原子性检查中,我们发现一些行具有相同的地址,并且根据业务规则这可以被确定为重复的,我们可能需要合并或消除它们。

摘要

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pixabay 上的像素拍摄的照片

这是我第一次使用新数据集时通常遵循的“CRAI”方法。

事实证明,这种方法是通用的,这意味着它应该适用于几乎所有的场景。然而,也正是因为它的普遍性,我们应该更加关注将影响如何应用 CRAI 清理数据集的领域知识。

[## 通过我的推荐链接加入 Medium 克里斯托弗·陶

作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…

medium.com](https://medium.com/@qiuyujx/membership)

如果你觉得我的文章有帮助,请考虑加入灵媒会员来支持我和成千上万的其他作家!(点击上面的链接)

数据加工:为什么我们都应该玩数据

原文:https://towardsdatascience.com/data-crafting-how-play-craft-changes-data-comprehension-9e5839f90e48?source=collection_archive---------35-----------------------

从一个新的角度看待数据和数据表示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个很好的数据加工的例子来自我们的一个参与者,周天琦。

我最近主持了一个关于数据加工的研讨会。这个想法(通过制作数据来弄脏我们的手)是在我和哈佛医学院的定量研究员娜塔莉·弗拉迪斯的一次谈话中自发产生的。

事情是这样的:娜塔莉热爱手工艺,生活在数据中。我爱数据可视化,偶尔大杂烩的东西,相信大人玩不够。在一月份,我们希望促成一个有创意的、动手操作的数据约会——让数据变得平易近人 并建立一个专家可以探索其数据的新方面的空间。

玩耍的价值是有科学依据的。但是在数据的背景下玩?那是比较新的。该领域的大多数文献都专注于培养儿童的数据素养,虽然设计经常整合游戏的各个方面来激发新的工作,但它未能有效地渗透到其跨学科邻居数据可视化中。

游戏来自好奇、探究和探索。通过保持好奇心并允许自己去探索,我们在没有期望或竞争压力的情况下学习新技术,并且发现世界未知的一面。当我们被某样东西吓倒时,或者当我们已经习惯了它,把它与世俗联系起来时,这一点尤其重要。

但是我们认为数据是严峻的——完美的——这使得它很难处理。

将普通大众所认为的数据的复杂性(如果你愿意,可以说是一种内在的信念)与可视化的 修辞力量 结合起来——这是我们发现很难对其进行事实检查、调试和评论的主要原因——我们发现了一个难题:数据及其表示是不可接近的。

我指的是数据,作为一个无形的大概念,很可怕。人们回避它。那些经常与数据打交道的人(如分析师、研究人员和科学家)通常只理解一个概念,一个角度,即数据是什么,因此他们在表示和处理所述数据的方式上受到限制。因为数据感觉很难处理。

这就是数据加工的由来。数据应该有趣,应该平易近人,应该被玩弄。娜塔莉和我能想到的最好的方法就是手工制作。

但是首先为什么要制作?什么是手工艺?和数据物理化有什么区别?

“工艺是纪律和想象力、奉献和灵感的结合。当这些东西互相缠绕,并对这种炼金术给予认真的关注,那么一个人的手艺就可以实现了”——罗莎妮·卡什

从历史上看,手工艺是一种熟练的劳动,为未来的观众维护传统艺术。为了应对 19 世纪有害的工厂环境,手工艺的定义演变成了反工业化,提升了消费者和生产者的福祉。然后(在 20 世纪)工作室工艺增加了新的含义:对一致性的反叛。

我们对工艺的现代理解建立在传统艺术的基础上——从绗缝到其他。手工艺通过创造任何东西,不管是材料还是技术,从定制的椅子到手工啤酒到手工制作的绒球,充当一种个人代理的形式。最重要的是,现代手工艺是任何人都能做的事情*。*

让我们回到最初的问题:*什么是数据加工?*它代表数据,这里有:

  • 一个对工艺的强调,因此期望和规范的限制被忽略,所有的感官被给予空间和参与。
  • 一个强调发挥,让数据变得平易近人。通过使用各种媒介——传统的和非传统的——在一个不完美的空间里,我们可以使探索正常化。

不是什么?

可及性的论证。虽然使用多种媒体可以促进与更广泛受众的联系,但在可访问数据表示领域还有许多工作要做。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

另一个手工艺的例子,这个是斯蒂芬妮 h。

但是数据加工和数据物理化有什么不同呢?对我和娜塔莉来说,这就是游戏。正如数据物理化维基所说,“数据的物理表示已经存在了数千年。”印加 Quipus,马绍尔群岛棒图,亚卡马时间球是说明这一点的少数例子。从历史的角度来看,这些都是数据加工的产物。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

马绍尔群岛棒图示例。来源:库珀·休伊特

数据物理化在研究社区中被重新定义,以描述计算机支持的物理数据表示。在不涉及计算机的情况下,表现仍然是精心策划的,看起来“完美”。正如我们已经讨论过的,感知到的完美让我们很难演奏。

虽然数据物理化和数据加工之间肯定有重叠,但物理化并不强调玩耍。这就是我们如此兴奋的原因!

我们将数据加工描述为与数据物理化相邻或者是数据物理化的一个子集,其中的重点不是一个完美的、随时可以拍照的对象,而是做的过程——用你的手玩,用所有五种感官体验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为,正如阿尔伯特·爱因斯坦曾经说过的,“玩耍是研究的最高形式。”当数据是一切研究的基础时,我们怎么能不想玩它呢?考虑到这一点,我鼓励你们所有人都来玩数据——也许还需要一点技巧;)

这是我将要写的关于数据加工的两篇文章之一。这第一篇文章为为什么我们想要精心制作数据奠定了基础。下一个的探索我们如何做到这一点,并分享一些要点,这样你也可以玩数据。敬请期待!

数据民主为组织释放价值。以下是开始的方法

原文:https://towardsdatascience.com/data-democracy-unlocks-value-for-organizations-heres-how-to-start-7c05fb09ce9d?source=collection_archive---------57-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Pixaby

87% 的组织在分析和商业智能(BI)成熟度方面较低,根据 Forrester 的说法,这意味着大多数数据和分析计划都是孤立于各个业务部门的独立项目。

这种情况多久发生一次?你是一名营销人员,正在创建一个关于现有客户的案例研究,但是你必须通过重重困难才能获得正确的数据。或者,您可能是一名分析师,因为团队之外的任何人都无法访问您的报告,所以您的见解是孤立的。在我们的职业生涯中,我们都经历过类似的事情。

组织知道更好地利用数据会带来明显的好处,但很少有组织将数据有效地集成到他们的业务中。事实上, 88% 的高管感到投资大数据的紧迫性;然而10 个 中有 7 个说他们既没有创建一个数据驱动的组织,也没有在公司内部打造一种数据文化。

数据文化的一部分包括访问、共享和利用数据的方式。大多数公司都是数据君主和数据贵族和*,在这些公司中,数据访问受到严格控制,只保留给组织中特定的一部分人。但人们越来越渴望另一种数据文化——一种让尽可能多的人能够接触到数据,从而为公司创造最大价值机会的文化。*

引入数据民主

**数据民主是让组织内的非技术和非 IT 人员可以使用数据的概念。这种方法的核心是释放任何员工通过访问数据创造本地价值的潜力。

会是什么样子?一个例子是可通过搜索发现的项目的有组织的目录。考虑到治理和隐私法规遵从性,公司中的任何人都可以访问他们需要的任何内容。在受控的形式下,这甚至可以扩展到外部共享数据。

虽然数据民主的实施可能具有挑战性,但好处是相当可观的。此外,这里有一些使您的数据民主化成为现实的必要因素。

为什么公司要这么做?

开放数据访问不仅仅是前瞻性思维的表演秀——它有切实的商业利益。

根据麦肯锡全球调查,表现最佳的公司使其数据可在整个组织内访问,并为员工提供自助服务分析工具来运行可定制的查询。与表现不佳的同行相比,这些公司认为分析对收入有更大影响的可能性是40 倍

性能是受数据民主或缺乏数据民主影响的另一个因素。让我们看看销售,可以说是产生最明显、最有形价值的业务职能。根据销售绩效管理 SaaS 公司 Xactly 的首席执行官的说法,销售副总裁的平均任期仅为 19 个月。然而,当谈到配额实现时,任期较长的销售代表往往表现更好,通常需要 3 年才能达到最佳业绩。

这部分是因为那些存在时间更长的人会更好地理解产品,并能获得不容易获得的数据点。如果这些见解被捕获到一个单一的存储库中,供整个团队使用,会怎么样?将数据大众化可以作为销售支持解决方案,帮助减少新员工的增加时间,让更多员工更快达到最佳绩效。

一个可搜索的数据产品目录不仅可以作为发现新产品和服务的催化剂,还可以改进现有的产品和服务。如果实施得好,即使非技术人员也可以在不引入工程的情况下发现新的见解,从而带来节省时间和通过支持新用例产生价值的双重好处。

数据民主的关键要素

数据民主当然有相当大的潜力,但是组织可能还没有准备好实现它。为了获得使数据可访问的好处,有一些关键的先决条件:

  1. 内部和外部整合
  2. 定义的输入模式
  3. 数据集的可识别目录
  4. 可导性

1。内部和外部整合

首先,需要一种简单的方法来连接到内部 BI 和第三方 SaaS 工具等系统。员工应该能够去一个地方进行调查,了解现有的数据,然后才能使用这些数据做任何事情。

2。定义的输入模式

不同的应用程序在映射和术语方面总是存在差异。定义这种映射可以更好地理解输入数据的格式,这样最终用户就不必解释命名约定的差异。

3。数据集的可识别目录

现在映射已经存在,以用户友好的可读格式呈现给用户。这意味着要有一个有组织的、可搜索的数据集目录,其中包括元数据,这样就可以清楚地看到哪些系统有哪些数据集。

例如,谷歌的销售代表应该能够查找他们正在销售的公司的类型,以及客户通常会购买哪些关键词,以减少摩擦并增加销售金额。

4。可导性

当衍生数据产品可以相对容易地创建时,特别是由非技术人员创建时,前一点的价值会成倍增加。轻松创建类似的数据产品允许自助服务,并带来为公司创造价值的最大机会。

当扩展到外部共享数据时,这一点被放大,并产生进一步的共同价值。例如,Google Adwords 的客户能够洞察自己的数据,因此可以更好地选择他们希望出现的其他关键词和网站类型。

数据民主在实践中的好处

既然您已经有了关键的要素,那么数据民主应该是什么样的,它如何在实践中提供商业利益呢?

数据访问民主化后,有三个运营成果可以增强组织的工作方式:

  1. 启用发现
  2. 授权自助服务
  3. 增强自主性

发现

一如既往,要想在工作中取得成功,你需要了解你的业务。

拥有一个组织有序且可搜索的数据项目目录对于实现发现至关重要。获得对组织数据的访问权限使您能够以以前不知道的方式发现趋势,从而做出更多由数据驱动的决策并提高运营绩效。

例如,像沃尔玛这样的大公司可以利用与他们合作或建立关系的所有供应商的索引。有了这些数据,采购部门的员工就可以很容易地识别不良玩家并控制成本。这种广泛的、可发现的商业智能使公司能够以较低的价格运作,同时保持利润。

自助服务

数据民主发展的下一步是能够以自助服务的方式衍生和扩展现有的数据产品。这意味着任何员工都可以提出新问题。

我们的采购朋友可以根据成本或地理位置来研究定价。或者,他们可以为某个地区的流行产品设置新的查询,并在那里寻找新的供应商。

这同样适用于服务业。例如,随着商店在疫情重新开业,目前紧急商店清洁需求激增。在决定雇佣谁时,采购部门不仅可以寻找更低的价格,还可以考虑哪些服务提供商工作更快或对紧急请求的响应更快。

因此,可推导性对于为员工个人提供更清晰的数据图景以及从不同角度应对运营挑战至关重要。数据民主化带来了更多创新方法的可能性。

自治

一旦团队通过对数据的开放访问更好地理解了他们的业务,他们就可以将这些数据带入他们想要使用的工具和技术中。这使得团队可以决定哪些工具最适合自己,而不需要大规模的公司 IT 官僚机构。

例如,这可能意味着一个团队使用一种不同的采购工具,这种工具在当地更受欢迎,从而为他们所在的地区带来更高的效率。他们可以避免被在特定环境中无效的强制工具所困扰。

当涉及到确保商店干净、安全和照明良好时,像沃尔玛这样的全国性巨头可以让不同的区域采购团队选择与商业建筑管理经纪人合作或雇用内部技术人员。通过访问成本和性能数据,他们可以自己决定哪个方向最适合自己。

要点:通过解锁您的数据来释放价值

数据民主有可能为公司带来可观的价值。使业务用户能够定义自己的信息需求、发现自己问题的答案并创建自己的数据工具,只会增强营销、销售和采购等业务流程。

非技术和非 IT 员工利用他们特定的业务知识和洞察力来定义 BI 和分析需求。

有了正确的成分和适当的工具,数据民主让所有员工都成为“公民数据科学家”,这将有助于构建满足组织不断发展的需求的解决方案。

– –

你是如何使你的数据民主化的?你对好处、挑战和要求有什么想法?我很乐意收到你的来信。

想了解更多关于释放公司潜力的信息,还是只想聊聊数据?请通过 dave@estuary.dev 与我联系。

Tableau 桌面中的数据加密

原文:https://towardsdatascience.com/data-densification-in-tableau-desktop-73ec90562635?source=collection_archive---------31-----------------------

实践教程

如何在没有 ETL 的情况下通过度量在工具提示中显示详细数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

如果您没有一个合适的数据模型,并且该数据模型的维度允许数据切片,那么前面的图像可能会很有挑战性。我将解释一个快速的方法来解决这个问题,而不改变原始数据。

数据

很多时候我们遇到了麻烦,因为我们的度量是以列而不是行的形式出现的,并且我们无法在一个单独的列中找到值 A、B、C 和 D:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

假设您有一个少量数据(几百万条记录或更少)。在这种情况下,您可以使用 Tableau 桌面中的数据加密方法来构建之前的图表,而无需修改您的数据源。

如果你的数据量更大,我推荐使用合适的 ETL 或数据流软件,如 Tableau Prep Builder、Alteryx、Informatica、AWS Glue 等。它也适用于 SQL、Python Pandas 或 Spark。您仍然可以使用数据加密方法。

什么是致密化?

致密化是变得或使更致密的行为。

什么是数据上下文?

这意味着从你当前的数据中产生更多的行。在某些情况下,添加列和进行特性工程也可以算作数据加密,但是为了简化,我将只关注行。

为了澄清,根据您的背景,您可以使用不同的名称来引用**行、例如,记录或观察结果,以及列、**在此上下文中的特征或度量。

我们为什么需要它?

一般来说,要使用预先计算的数据来填充间隙,以将其用作维度,例如,如果您需要将 LATAM 和 CAM 显示为国家列表中的另一个条形,我们可以截取日期之间缺少的天数来进行计算。

我如何在 Tableau 桌面中使用它来在我的工具提示中显示更多数据?

首先,创建一个只包含测量或特征列表的新文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

densitization . CSV包含一个度量或特征列表——作者对文本图像的升华。

其次,通过将文件名拖到画布中来创建与当前数据的关系:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

通过点击橙色线并创建关系计算来修改关系,两边的数字为 1 。这些将在获取数据时被 Tableau 用作 SQL 交叉连接。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

创建一个名为 Measure Selected 的新计算字段,如下所示。请记住,所有度量都必须共享相同的数据类型和相同的格式。

CASE [Measures]
    WHEN "A" THEN [A]
    WHEN "B" THEN [B]
    WHEN "C" THEN [C]
    WHEN "D" THEN [D]
END

此计算字段将映射度量值:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测量选定的计算字段—作者 Tableau 桌面的图像。

并创建一个名为的新计算字段,突出显示,如下所示:

IF  {FIXED  [Measures]:max([Measure selected])} = [Measure selected] THEN
    0
ELSE
    1
END

我将在工具提示中按日期突出显示条形的最大值,将度量的总量与当前值进行比较。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

然后,您会注意到,当您移动度量维度时,density . CSV 文件中的新列在每个度量名称中生成密集数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

度量名称与度量-作者的 Tableau 桌面图像。

使用测量选定的字段,您将只看到通过测量尺寸的相关值:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测量选定的计算字段—作者 Tableau 桌面的图像。

因为我们使用的是关系,当您将每个度量单独分组时,您不需要担心重复的值。在旧的 Tableau 版本中,您必须创建一个额外的集合,在其中选择我们的度量列表中的一个元素来过滤数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在你可以用它作为一个尺寸来将值传递给工具提示表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

棒材——增密的板材。Tableau 桌面的作者的形象。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条—增密的工作表工具提示。Tableau 桌面的作者的形象。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

工具提示—增密的工作表。Tableau 桌面的作者的形象。

来产生我们想要的视觉效果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

但是为什么不能使用度量名称呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tableau 桌面的作者的形象。

主要原因是度量名称是一个计算的字段,它创建了所有度量的离散列表,但不存在于数据集中,因此,至少在 Tableau Desktop 2020.3.1 版本之前,不能作为值传递给工具提示所引用的表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条-非增密按 Tableau 桌面中的度量名称。Tableau 桌面的作者的形象。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前面条的提示—非增密张引用的提示—非增密张—作者的 Tableau 桌面图片。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

工具提示 Tableau 桌面中按日期和度量名称排列的非增密工作表。Tableau 桌面的作者的形象。

结论

我们学习了数据增密以及如何在 Tableau Desktop 中使用它,当您的模型没有表示每个度量名称的维度时,通过工具提示过滤值。

此外,我们看到,无论您使用的软件有多先进,无论您拥有的专业知识或领域有多丰富,您总会发现一个限制,为了解决这个问题,您需要跳出框框思考,发挥创造力。

谢谢

最后,我要感谢丹尼尔·多伦索罗询问这件事。还有**罗萨里奥·高纳,**她促使我继续写这些话题。

快乐 Viz!

有用的资源

[## 内部数据加密宣言

Rosario Gauna & Klaus Schulte 数据加密——当你去过……

rosariogaunag.wordpress.com](https://rosariogaunag.wordpress.com/2019/09/06/manifesto-of-internal-data-densification/) [## 去神秘化的数据加密——数据学校

你有没有想过在 Tableau 中创建了一个表计算,结果没有任何意义?你…

www.thedataschool.co.uk](https://www.thedataschool.co.uk/damiana-spadafora/data-densification-demystified/) [## 数据增密简介

数据加密是 Tableau 中常用的技术。很多人都写过,包括场景…

www.flerlagetwins.com](https://www.flerlagetwins.com/2019/05/intro-to-data-densification.html) [## 使用域完成和域填充的数据致密化

4/22/2020 使用域完成和域填充的数据加密表中较复杂的主题之一…

www.dataplusscience.com](https://www.dataplusscience.com/DataDensification.html)

数据通才的日记:从无到有创造数据

原文:https://towardsdatascience.com/data-diary-conjuring-data-6419c64fb478?source=collection_archive---------57-----------------------

日期:2017 年 9 月

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源: Unsplash

“谁给你的这个信息?”
-员工乔

我的同事乔(Joe)带着一丝恐惧和困惑走到我面前,问道:“谁给你的这些信息?”。Joe 收集的信息很难获得,严重依赖于适当的上下文,并且需要每天更新。他对团队的价值是为这家财富 100 强公司提供当前的公共政策和立法风险。在这种情况下,他担心新系统中的信息可能不准确。

Joe 通过我们最近上线的新联系人关系管理工具获得了这些信息。该系统是该团队信息收集、更新和访问方式的巨大转变。直到 2017 年,这个团队一直以特设的方式运作,利用微软 Office 产品套件,并将信息存储在本地硬盘或纸上。早就需要一个中央储存库;然而,不能低估所需的文化变革。

Joe 的声音中带着严肃的抑扬顿挫,我想提供一个有用的回答,特别是因为我是团队中的最新成员之一。我决心在一个由公共政策专家组成的团队中展示我作为数据分析师的价值,这些专家质疑这个新的量化小组的有效性。没有太多的思考,我的直觉踢了进来,我很快给了乔一个回应。

“你做到了。你给了我这些信息。”

-数据通才

我看得出他脸上仍然充满困惑。对 Joe 来说幸运的是,从第一天起我就一直在做这个实现。因为整个团队没有一致的数据标准,也没有任何现有的数据库,我们必须从头开始创建数据字段来捕获这些信息。我们采访了他,以及其他主题专家,通过一个广泛的问题列表,以便用最新的公共政策风险填充 CRM。因为这个过程花了几个月的时间,所以大部分信息现在很有可能已经过时。一旦乔最终明白了采访是数据的来源,我可以看到他的举止立即发生了变化。他的肩膀下降了几英寸,他终于开始放松。

事后,我开始思考他在这次经历中的观点。对于像乔这样的人来说,将信息从纸质文件和采访记录中转移到电脑中就像变魔术一样。理解这一数字化过程的技术本质不是他的责任。我们的团队有责任以更有效的方式传达高层流程。

当数字化一个系统时,你的利益相关者必须理解从数据源到最终用户的数据流。
数据通才

数据驱动聊天:“这是真正重要的事情。”

原文:https://towardsdatascience.com/data-driven-chat-it-was-something-that-really-mattered-b23b31dbf336?source=collection_archive---------59-----------------------

Ganna Pogrebna 与 Briana Brownell 的对话——她的数据科学之旅、有影响力的项目和目前在医疗保健领域的工作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

学者、教育家、顾问和博主 Ganna Pogrebna 开始了 数据驱动聊天 来探索行为数据科学的许多有趣方面,包括人类行为、数据科学和人工智能。Ganna Pogrebna 是行为分析和数据科学教授,是艾伦图灵研究所(位于英国伦敦的国家人工智能和数据科学中心)行为数据科学团队的负责人。数据驱动聊天是图灵行为数据科学特别兴趣小组的官方播客。

从数据科学家转型为科技企业家的 Briana Brownell 是 Pure Strategy Inc .的创始人兼首席执行官。Pure Strategy 的自动化神经智能引擎(ANIE)使用自然语言处理、机器学习和神经网络领域的领先技术,为组织提供自信地做出决策所需的洞察力。

对话最初出现在数据驱动聊天上。点击 此处 收听。

这是由三部分组成的系列文章的第一部分。

大家好,这是数据驱动聊天,今天我们请到了 Briana Brownell!Briana 是 Pure Strategy Incorporated 的创始人兼首席执行官。你好布里亚纳!很高兴见到你,也很高兴见到你。

布里亚纳:很高兴见到你,也很高兴见到你!

甘娜:谢谢你这么做。我知道你很忙,现在很难找到时间,但是非常感谢你来参加这个播客,和我们分享你的想法。

布里亚纳:不客气。

甘娜:开始我们的讨论吧,我的理解是你从事决策科学和数据科学的工作,我很高兴能和你交谈,因为这也是我的工作。我做学术方面的工作,很少在商业方面遇到像你这样的人,所以我真的很兴奋。你是如何对这个领域感兴趣的?你能告诉我们一些你个人的经历吗?

布里亚纳:当我上大学的时候,我其实想成为一名理论物理学家。整个高中时期我都对物理很感兴趣。我喜欢斯蒂芬·霍金,我对夸克非常着迷。我真的很喜欢粒子物理学。但是当我进入大学时,我发现真正吸引我的是数学课程,它让我对数学的一些可能性感到兴奋。那时数学非常不受欢迎——当我毕业时,我是唯一一个在我那一年获得数学学位的人。没有人能理解我为什么要主修如此不切实际又如此怪异的东西。

我本科毕业后的第一份工作是金融。2006 年,我在纽约证券交易所找到了一份自营交易员的工作,我非常喜欢这份工作。那时候在金融行业工作是一段非常迷人的经历。当然,你可能知道接下来发生了什么。接下来发生了全球金融危机!因此,大约在 2007 年,一切都开始分崩离析,于是我在那时离开了金融行业。

“这么多年来,人们一直不理解我为什么想研究数学模型和数据,但最终他们开始理解了。我很高兴现在人们对数据科学如此感兴趣。”

但真正打动我的是,我可以看到人类行为是多么重要的一部分,是我一直在创造的一些数学模型的关键部分。我开始对人类行为方面产生兴趣,并开始从事数据分析师的工作。我们当时不称自己为数据科学家,因为那个时候这个术语还没有被创造出来。我与不同的公司合作,应对他们在数据方面的一些挑战——做预测、理解消费者行为以及理解人们为什么做出决策的一些深层方面。

几年后,公司开始对更有效地使用他们的数据非常感兴趣,所以我发现自己在一个再好不过的地方了。数据科学越来越受欢迎,我感到有点被证明了,在这么多年人们不理解我为什么要研究数学模型和数据之后,他们终于开始理解它了。我很高兴现在人们对数据科学如此感兴趣。

是的,现在它是当今最热门的领域。对于那些不了解你工作的人,如果你必须选择你职业生涯中最重要的一件事,你会选择什么?会是什么呢?

布里亚纳:我最自豪的事情之一是我在澳大利亚和澳大利亚政府一起做的工作,以了解初级生产者的决策和技术采用。

2007 年,澳大利亚发生了非常严重的干旱,这绝对是毁灭性的。我们研究了人们为什么采用技术来减轻气候变化带来的风险。这项研究大概持续了八年。我从 2007 年开始,2015 年我们还在出版。

这绝对令人着迷,因为它真的把我用数据做的工作和人们的生活联系起来了。它不再只是电子表格中的一串数字或我运行的算法,而是真正重要的东西。它真的很有影响力,我喜欢和它一起工作。我们有一个很棒的研究团队,我很幸运能和他们一起工作。这真的教会了我很多关于如何利用数据来改善世界的知识。

甘娜:是的,我能看到很多和我相似的地方。我也是一名实验室科学家,后来我终于在一个工程部门找到了一份工作,只是因为我想看看我的模型在现实世界中实际工作,所以我认为这非常重要。

布里亚娜:太令人满意了,不是吗?

甘娜:是,是。那么你能告诉我们更多关于你目前在做什么吗?是什么让你夜不能寐?什么让你兴奋?

布里亚纳:我提到过我在澳大利亚做的工作。其中一个重要的组成部分是创建类型学来理解不同的人如何以相似的方式做决定。我们发现不同群体的人有相同的世界观,有相同的态度和信仰,通过理解这些态度和信仰,我们可以预测行为。我们可以干预和鼓励我们想要鼓励的行为。

例如,减轻气候变化导致的风险是我们想要鼓励的事情,因为我们希望人们的生计得到保护。现在,我们正在使用这种方法来理解医疗保健行业中医生和患者的决策。

“我们发现不同群体的人有相同的世界观、态度和信仰,通过理解这些态度和信仰,我们可以预测行为。我们可以干预和鼓励我们想要鼓励的行为。

例如,减轻气候变化导致的风险是我们想要鼓励的事情,因为我们希望人们的生计得到保护。现在,我们正在使用这种方法来理解医疗保健行业中医生和患者的决策。"

我发现这真的很有趣,因为你尊重人们的差异和不同的世界观,而不是像一些做同样事情的铁板一块的团体那样对待病人或医生。

我们已经在医疗保健的多个领域进行了这项研究,以了解诸如为什么患者决定不寻求他们正在经历的症状的护理?有时他们感到尴尬,有时他们对自己经历的一些症状感到无可奈何。我们希望鼓励人们尽可能过上最健康的生活,因此理解他们为什么不选择寻求护理是极其重要的。

再往下看,我们也看到一些个体,当他们有一个针对某种疾病的治疗计划时,他们可能不会继续按计划进行治疗。他们没有在正确的时间服用药物,或者他们没有安排随访预约或与他们需要看的其他医疗保健专业人员的预约。

通过了解患者群体的行为以及围绕决策的核心态度和情绪,我们可以规划干预措施。我们发现,世界各地的医疗保健面临着多么大的挑战,新冠肺炎和所有不同的因素都影响着人们做出如何保持最佳健康状态的决策。我认为能够理解这些行为和动机非常非常重要。

这是三部分系列的第一部分。点击 此处 听完整段对话。

第 2 部分:数据驱动的聊天:“大多数组织都没有意识到数据的潜力”

Ganna Pogrebna 与 Briana Brownell 的对话——数据科学中被低估的技能、获得高管的认同以及我们如何塑造未来

第 3 部分:数据驱动的聊天:“我们没有很好地为真正重要的行业建立弹性。”

Ganna Pogrebna 与 Briana Brownell 的对话——新冠肺炎向我们展示了数据科学,新冠肺炎之后的生活将会如何不同,弹性系统,并推荐阅读和观看人工智能。

数据驱动的聊天:“大多数组织都没有意识到数据的潜力”

原文:https://towardsdatascience.com/data-driven-chat-the-potential-of-data-is-not-realized-in-most-organizations-c0b8f29e7ac3?source=collection_archive---------60-----------------------

Ganna Pogrebna 与 Briana Brownell 的对话——数据科学中被低估的技能、获得高管的认同以及我们如何塑造未来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

学者、教育家、顾问和博主 Ganna Pogrebna 开始了 数据驱动聊天 来探索行为数据科学的许多有趣方面,包括人类行为、数据科学和人工智能。Ganna Pogrebna 是行为分析和数据科学教授,是艾伦图灵研究所(位于英国伦敦的国家人工智能和数据科学中心)行为数据科学团队的负责人。数据驱动聊天是图灵行为数据科学特别兴趣小组的官方播客。

从数据科学家转型为科技企业家的 Briana Brownell 是 Pure Strategy Inc .的创始人兼首席执行官。Pure Strategy 的自动化神经智能引擎(ANIE)使用自然语言处理、机器学习和神经网络领域的领先技术,为组织提供自信地做出决策所需的洞察力。

对话最初出现在数据驱动聊天上。点击 此处 收听。

这是由三部分组成的系列文章的第二部分。可以在这里阅读Part 1Part 3

Ganna:我们稍后会回到新冠肺炎的话题,但首先,我想问你——许多收听本播客的人都是有抱负的数据科学家,并试图在数据科学中找到一席之地。你能给那些想进入决策科学和数据科学之间的这种联系的人一些提示吗?他们从哪里开始?他们需要做什么?

Briana:我认为,在数据科学中,被低估的技能是沟通和商业头脑。拥有运行模型的技术技能,并能够进行 Python 编程和理解数据库等技术工作确实很重要,但事实是,当你在行业中工作时,这一切都是关于分析如何影响企业关心的指标。因此,如果你不能将你正在做的事情与企业的目标或真正重要的结果联系起来,那么就很难获得资源,如果你正在做的事情在企业中不是高度优先的,那么就很难有效。

“我认为,数据科学中未被充分重视的技能是沟通和商业敏锐度。”

这是我看到数据科学家真正挣扎的地方。在一个组织中,当你用与任何结果都没有联系的数据建模时,这些团队经常被推到一边,或者在组织中被最小化。这很可悲,因为数据科学可以如此有影响力。

技能非常重要,但能够向企业传达技能的价值更为重要。

甘娜:当然,你提到问题陈述也很重要,对吗?你如何支持回答商业上的重要问题?这是作为一名有抱负的数据科学家,每个人都需要能够做到的另一件事。我们如何在业务环境中处理数据?为什么你认为理解数据对现在的企业特别重要?你觉得数据的潜力还没有发挥出来吗?

布里亚纳:很好的问题。我确实认为大多数组织都没有意识到数据的潜力,这有几个原因。第一个是组织内孤立的数据。我曾与一些组织合作过,他们有多个团队在收集基本相同的信息,但由于组织内部的政治原因,他们不愿意在各部门之间来回共享这些数据。我认为这非常危险,因为这是一个组织运转不良的标志。如果没有办法在组织中的不同小组之间共享数据,这总是一个挑战。

第二,个人往往不知道数据有什么用,尤其是当你到了高管层。所有这些技术都是如此的新,以至于很难确切地知道在组织内做一个更大规模的分析项目会有什么样的回报。有时项目本质上是失败的,有时你可以获得额外的洞察力,但你不一定知道,直到你尝试。当高管希望看到他们的数据程序的特定投资回报率时,这有时是一个真正的障碍。

甘娜:在过去的几年里,数据是如何改变商业格局的,或者说它改变了吗?你注意到变化了吗?

Briana:我认为数据在组织中的使用方式的最大变化是,比如说 10 年前,很少有数据项目能够一直上升到高管层或董事会级别。高管们永远不会真正看到数据分析项目的任何结果。他们可能属于营销团队,可能属于 IT 团队,也可能属于销售团队。他们被关在那些小仓库里,永远也不会升到组织的管理层。

但是在人们开始看到它的价值之后,我们开始看到组织的最高层的认同。不仅高管们要求更好的数据、更好的分析、更好的建模,董事会也在要求。你看到一个董事会命令说“我们每个季度都需要某种数据驱动的指标。我们需要看到这个指标。”

“所有这些信息都传到了组织的最高层,我认为这是一件非常新鲜的事情。”

所有这些信息都传到了组织的最高层,我认为这是一件非常新鲜的事情。以前,许多财务指标总是报告给董事会和高管,但现在营销指标、运营研究指标,所有这些领域都出现在董事会会议上,我认为这是一个非常积极的迹象。

甘娜:但同时,我也想挑战你所说的。同时,我觉得董事会对数据科学缺乏了解,认为它不是一根可以解决问题的魔杖。

如果你没有高质量的数据,你就无能为力。也许这些见解并不那么有价值。感觉往往缺乏对方法论的理解。人们会看到无关紧要的结果,或者看到太少的数据点而无法做出决定。

有像你这样的人来解释这可能不是一个好主意,这很重要,你需要看看这里,利用数据获得适当的决策情报和决策洞察力。所以你有没有觉得一方面有数据很棒,但是对于数据能做什么的炒作太多了?

布里亚纳:你完全正确。我认为这很有趣,因为很多时候,我看到董事会或执行团队中有一两个人真正理解数据。如果你让那个人成为分析项目的冠军,你所做的真的很有帮助。

“组织对培训人们成为公民数据科学家很感兴趣。您可以在组织中担任任何角色,并通过更好地理解数据及其与您的角色的关系来增强您的技能。”

绝对有人们误解数据的情况。例如,数据不干净,或者其中有某种偏见,这总是一个挑战,因为你可以根据数据做出不一定像你认为的那么强的决策。

我看到的变化是,组织对将人们培养成公民数据科学家很感兴趣。您可以在组织中担任任何角色,并通过更好地理解数据及其与您的角色的关系来增强您的技能。我看到越来越多的大型组织提供培训,让顾问领导工作小组,研究如何在组织内使用数据和如何理解数据。所以我希望你提到的挑战——绝对真实的挑战——开始变得越来越好。我希望在 10 年内,我们能够摆脱这种困境。

甘娜:是啊,我也希望如此。就像你提到的,当你有一个人可以为董事会翻译复杂的数据见解时,这很酷。我们最近和一个大公司客户合作,我们有一个物理学博士,这个人太棒了!我的意思是,他可以把任何复杂的分析变成条形图,地图和图表等等。他把这些都变成了非常非常简单的条形图。太棒了!我在想,哇!你可以用一种简单的方式做到这一切。

我想问你几个关于 stem 女性的问题。因为你自己是首席执行官,而且你处在一个非常高科技、男性主导的环境中,在你看来,我们是否缺少女性首席执行官?如果是的话,为什么我们会有这个问题?你认为这背后的原因是什么?

布里亚纳:我真的希望有更多的女性首席执行官领导深度技术和高科技公司,因为首先,我认为这是一个迷人的领域。我认为这非常重要,它让人们成为未来的塑造者,而不仅仅是被随之而来的技术所影响。

至于为什么我认为做这些事情的女性越来越少——最重要的事情之一是知名度,让女性和年轻女孩看到这是她们可行的职业道路。我知道有很多女性碰巧成为了律师或兽医或其他类似的职业,她们没有进入科技行业的唯一原因不是她们不擅长这个行业或其他什么,而是因为她们不知道自己可以。他们只是不认识任何工程师或计算机科学家或在该领域工作的人,他们没有意识到这是他们的一个选择。

通过看到正在做有趣事情的人并接触到这些事情是非常重要的,并且能够看到在这些角色中与他们相似的人。

“我认识的很多女性都碰巧成为了律师或兽医或其他类似的职业,她们没有进入科技行业的唯一原因是她们没有意识到这是她们的一个选择。”

我永远不会忘记格温·肖特维尔,她是一个如此了不起的人和工程师,还有 SpaceX 公司的首席运营官。她说她成为一名工程师的原因之一是一名女工程师来她的学校演讲,她穿着一套非常棒的衣服。起初,这听起来真的很傻,就像,“哦哇!为什么她的穿着如此重要?”但它揭示的是,这个女孩想在那个角色,那个职业中看到自己。不是西装,而是“这能让我在这个角色中看到自己吗?我能把自己看成一名工程师吗?如果我是工程师会是什么样子?还是数据科学家或技术专家?”我认为这非常重要。

甘娜:我喜欢你谈论榜样的方式。你谈论这些榜样是因为你不一定需要一个特定的人;你可以有一个穿着很酷的西装的人,这有点激励人心。“实际上我想要这样,”对吗?我想去太空,我想和这群人一起工作,就像这个女人一样,对吗?这个例子很酷。

我想把这种多样性和包容性缩小一点,谈论更多的现代女性,因为即使我们只看女性,如果我们看财富 500 强——我们最近刚刚和我的一个学生和我的一些同事一起做了这项研究——我们实际上发现如果我们看财富 500 强中女性的代表性并不好,对吗?但是如果我们看看,比如说,少数民族的情况就非常糟糕。例如,如果我们寻找有色人种女性,只有三位女性领导财富 500 强公司,而且没有一位是黑人。所以看起来这个系统在某个地方被破坏了。我们能做些什么来提高科技行业的包容性?

布里亚纳:我认为这是关于创造一个让人们有归属感的环境。我曾提到,人们需要能够在这些角色中看到自己,所以能够看到像你这样的人担任高级角色,并意识到这是你可能的职业道路,我认为这真的很重要。当你看不到任何像你一样的人时,很容易觉得你不属于这里,对吗?

每个人,每个人都有归属感,都需要成为一个团体的一部分,这个团体周围有一种团体感。因此,能够创建这些群体是非常重要的。我看到越来越多的在线支持团体,人们可以聚集在一起分享他们的经历,分享他们的故事,分享建议。我认为这是一个非常积极的迹象,能够创建这样的团体,在那里你感觉你可以做你自己,你属于那里,人们不会因为你有兴趣而评判你或认为你很奇怪。这是一个更大、更具挑战性的图景中非常重要的一部分。

Ganna:我的许多学生都是管理专业的学生,他们总是担心他们需要的技能。你提到你来自技术背景,你是 CEO,但是就你在当前条件下需要领导的技术技能而言,你认为知道如何编码很重要吗?理解算法如何工作很重要吗?作为当今的领导者,你需要什么水平的技术能力?不仅仅是作为一个女性领导,总的来说,今天有哪些领导技能是重要的?

布里亚纳:如果你在领导一家科技公司,如果在公司的高层,你有一个技术高超的人,那么找到优秀的人才会容易得多。原因是,许多技术人员在他们刚开始职业生涯时,几乎所有人都有过为非技术领导工作的经历,这些领导并不真正了解我们在做什么,将信息技术边缘化,抱有不切实际的期望,基本上很难为他们工作。因此,当你是一名技术人员时,你希望为了解其中一些问题的人工作,希望有人支持你为公司的重要部分做出贡献,而不是忽视发展和使公司成功所需的技术能力。

“如果你在领导一家科技公司,如果在公司的高层,你有一个技术高超的人,那么找到优秀人才就容易得多。”

例如,对于 CEO 来说,成为一名程序员或知道如何编码并不重要,但你要么需要对软件架构如何工作有足够好的理解,这样你就可以尊重你的技术团队的意见和知识水平,要么你需要与拥有这些知识的人合作,他可以以尊重他们的技能集的方式为技术团队辩护。

我发现女性领导者经常面临的一个挑战是,她们将成为非技术型首席执行官或非技术型创始人,她们总是在寻找技术型联合创始人,对吗?只要领导技术方面的联合创始人从最初的创始人那里获得足够的尊重,能够创造出对业务有益的东西,这种关系就绝对能够发挥作用。而不是仅仅说‘哦,我有这个想法!你能帮我编码吗?因为那根本没用。仅仅为了编码而让某人参与是行不通的。需要尊重技术技能和公司的技术需求。

是的,说到这个和糟糕的老板,我想起来我曾经为一个人工作过,他让我回归变量本身来得到完美的相关性!我当时想,‘你确定吗?!'我的意思是,缺乏理解是一个大问题。

我完全明白你的意思,如果你也有名气,吸引人才会容易得多。

回到你关于榜样的观点,如果人们知道你在科技行业有声望,你肯定能吸引人,这很好。

布里亚纳:是的,当然。

这是三部分系列的第二部分。点击 此处 听完整段对话。

第 1 部分:数据驱动的聊天:“这是真正重要的事情。”

Ganna Pogrebna 与 Briana Brownell 的对话——她的数据科学之旅、有影响力的项目和目前在医疗保健领域的工作。

第 3 部分:数据驱动的聊天:“我们没有很好地为真正重要的行业建立弹性。”

Ganna Pogrebna 与 Briana Brownell 的对话——新冠肺炎向我们展示了数据科学,新冠肺炎之后的生活将会如何不同,弹性系统,并推荐阅读和观看人工智能。

数据驱动聊天:“我们在真正重要的行业中没有很好地建立弹性。”

原文:https://towardsdatascience.com/data-driven-chat-we-didnt-do-a-very-good-job-of-building-resiliency-into-really-important-8822f242b23c?source=collection_archive---------47-----------------------

Ganna Pogrebna 与 Briana Brownell 的对话——新冠肺炎向我们展示了数据科学,新冠肺炎之后的生活将会如何不同,弹性系统,并推荐阅读和观看人工智能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

学者、教育家、顾问和博主 Ganna Pogrebna 开始了 数据驱动聊天 来探索行为数据科学的许多有趣方面,包括人类行为、数据科学和人工智能。Ganna Pogrebna 是行为分析和数据科学教授,是艾伦图灵研究所(位于英国伦敦的国家人工智能和数据科学中心)行为数据科学团队的负责人。数据驱动聊天是图灵行为数据科学特别兴趣小组的官方播客。

从数据科学家转型为科技企业家的 Briana Brownell 是 Pure Strategy Inc .的创始人兼首席执行官。Pure Strategy 的自动化神经智能引擎(ANIE)使用自然语言处理、机器学习和神经网络领域的领先技术,为组织提供自信地做出决策所需的洞察力。

对话最初出现在数据驱动聊天上。点击这里收听。

这是由三部分组成的系列文章的第三部分。你可以在这里阅读 第一部分 第二部分

Ganna:我们无法回避冠状病毒的话题,你也提到了你在医疗行业为医疗人员所做的令人惊叹的工作,所以我想再问你一点关于数据科学在解决当前危机中的作用。

有很多猜测,比如有些人说,“哦,数据科学家应该只在有领域专家与他们一起工作时才参与进来!”其他人说,“你知道我们都应该在 COVID 上做工作,看看会发生什么!”那么你在光谱的哪一边?对此你怎么看?

布里亚纳:我认为这真的很有趣,因为在对抗冠状病毒方面,数据科学和人工智能的许多真正成功的应用都是人类增强系统或以人为中心的系统,它们得到了良好的数据科学和良好的人工智能的帮助。

这方面的一个例子就是一些分类应用。因此,例如,能够分析胸部 x 光,并预测该人是否有并发症或严重后果的风险。

不是让医生或放射科医生等其他医疗保健专业人员查看所有图像并以较慢的方式进行,而是有一个系统可以自动显示最有可能出现并发症的病例,以便人类可以首先分析这些图像。您增强了在医院工作的内科医生、放射科医生和医疗保健专业人员的工作,使他们的工作变得更加轻松,让他们能够提供尽可能好的护理,让他们能够提供尽可能好的结果。我认为非常有趣和重要。

“您授权医疗保健专业人员尽他们所能提供最好的护理。”

就冠状病毒而言,新兴模式也非常有趣。早在 1 月或 12 月,当人工智能系统最初看到出现“嘿,这可能是什么”的信号时,所有浮出水面的早期预警系统都去找了一组人类专家,他们随后深入研究,看看真正的风险是什么。有趣的是,研究这个问题的人都是传染病方面的专家和专业人士,他们认识到这是一个巨大影响的真正潜力。

我喜欢数据科学和人工智能系统被用作人类增强系统的想法。不是‘AI 要去拯救世界了!’哦,我们有这个技术系统,我们将取代你。相反,它是“我们如何利用人工智能和数据科学让人类变得更好,让我们更有效,让我们有更好的健康结果。”我认为新冠肺炎已经真正证明了人工智能和分析不会取代人。它将增强它们。

甘娜:你认为当今决策科学和数据科学的交叉领域面临哪些挑战?我们在 covid 上看到了什么新的挑战或其他问题吗?这些问题在当前情况下突然凸显出来了吗?

Briana:我们发现的最大问题是我们所有系统的脆弱性。如果你看看由于新冠肺炎而发生的所有巨大的行业系统故障,它们都是因为系统的脆弱性。有些医院没有增援能力或设备,因为医院尽可能高效地运转,所以为什么要有额外的设备呢?额外的不会让你赚钱。它让你赔钱,对吗?

“如果你看看由于新冠肺炎而发生的所有巨大的行业系统故障,它们都是因为系统的脆弱性。”

供应链系统——当所有的餐馆都关门了,人们开始以完全不同的方式购物时,酵母之类的东西就会严重短缺。就像,我不认为我还能在杂货店买到酵母,因为消费者的行为正在改变。买家正在改变。突然间,餐馆不再购买任何食物。人们的饮食习惯完全改变了。

我认为这确实暴露了我们的一些优化对于微小的改变是多么的脆弱。我记得读到过有一个农民在为餐馆和大规模生产生产洋葱。他不能直接卖给消费者,因为他们被放在这些巨大的袋子里,他们没有一个合适的系统能够把它放在一个家庭可以使用的袋子里。

这确实暴露了我们在优化供应链方面做得多么出色,让一切尽可能高效和完美,但一个小小的动作,突然之间这些系统就完全崩溃了。

新冠肺炎真正教给我们的是,我们如何建立我们的系统,我们没有很好地在许多真正重要的事情上建立弹性,我们需要的真正重要的行业。当然,就像食品供应链一样,医疗保健是另一回事。教育系统,突然之间,老师和家长都在努力教他们的孩子,而每个人都试图在家工作,所有这些 IT 系统都需要设置为允许员工在家工作。

我们创建的所有这些系统对于任何类型的变化都非常脆弱,因此我希望在未来,弹性将被视为内置于这些系统中的一件好事。

甘娜:那么这个未来怎么样?除了在供应链中建立弹性之外,您认为数据科学还有其他重要的热门话题吗?以及决策科学和数据科学与未来的交集?

布里亚纳:我认为消费者行为的变化,我们生活方式的变化,这是一个永久性的变化。我们不应该回头看“我们什么时候才能恢复正常”,因为这将是一个新的常态。这将是下一个常态。这将与我们在 covid 之前生活的世界大不相同。

像在家工作这样的事情将会变得非常普遍。已经有一些大公司表示,他们将实行永久性在家办公政策。这将对农村地区或主要中心以外的地方产生巨大影响,因为突然之间,如果你可以在任何有良好宽带连接的地方工作,那么即使那里没有实体办公室,你也可以通过就业刺激经济。

“我鼓励每个人,如果你有关于你的组织的数据,covid 之前,你真的要检查你的假设仍然有效。你根据这些数据做出的任何决定都需要认真考虑它是否仍然适用。”

旅行,尤其是航空旅行,将会有根本的不同。我认为我们将不再拥有大型机场。大型机场基本上将成为过去。我们将会有多个小型机场,因为,想象一下,如果一个小型机场被完全消毒,你会感到多么安全,而在一个大型机场里,你不会面临数十万乘客的危险。因此,新冠肺炎的结果会一直持续下去,在接下来的几年里,我们会经历一段艰难的时期,在这段时间里,我们会适应下一个常态。

数据和分析将是其中重要的一部分,因为我们将能够看到真正的变化,以及哪些变化将成为永久性的。我鼓励每个人,如果你有关于你的组织的数据,covid 之前,你真的要检查你的假设仍然有效。你根据这些数据做出的任何决定都需要认真考虑它是否仍然适用。

甘娜:我很喜欢你关于数据如何在整个供应链系统中传播的观点。我认为,许多人没有意识到,对当前需求的分析实际上会对供应决策产生多大影响,以及这种波动有多大。正常情况下很好,但如果发生这样的事情,那么你的业务可能会完全崩溃,因为你没有准备好理解需求的冲击。就像我说的,你不是很有弹性。

采访快结束了,我还有最后一个问题。很传统的问题:如果让你推荐一本书和一部电影,你会选什么?你有什么建议?

布里亚纳:在我看来,关于人工智能的最好的书是帕梅拉·麦科达克的《会思考的机器》。这本书是几十年前写的,我想是 40 年前左右,那时人工智能开始引起越来越多的兴趣。这绝对是关于这个主题的最引人入胜的书籍之一,因为她将一些人文学科和一些其他领域如艺术、文学与人工智能的主题结合起来,并以比任何其他技术人工智能书籍更全面的方式看待它。所以这是一个百分之百的你应该检查。她还有一本刚出版的传记,我非常喜欢。我很快地浏览了一遍——从头到尾读完了——尽管它真的很长,因为她有着令人惊叹的一生。所以我要说,这绝对是我的清单上的第一位。

我能选择一个电视节目来代替电影吗?

甘娜:是的,这是一个受欢迎的选择。很多人做节目。

布里亚娜:所以我会选太空堡垒卡拉狄加。我喜欢 BSG,这个新的重启,我喜欢它的原因是因为它提出了许多伦理问题,关于我们将如何在未来处理有知觉的人工智能:风险是什么。我们需要建立什么样的系统。这绝对是一场精彩的演出。

甘娜:非常感谢布里亚纳抽出时间。我知道你很忙,但还是谢谢你。祝你一切顺利,继续你正在做的令人惊叹的工作。毫无疑问,我们会密切关注你们的动向,纯策略包括你们的动向!

布里亚纳:不客气,谢谢你。

这是由三部分组成的系列文章的第三部分。点击 此处 听完整段对话。

第 1 部分:数据驱动的聊天:“这是真正重要的事情。”

Ganna Pogrebna 与 Briana Brownell 的对话——她的数据科学之旅、有影响力的项目和目前在医疗保健领域的工作

第 2 部分:数据驱动的聊天:“大多数组织都没有意识到数据的潜力”

Ganna Pogrebna 与 Briana Brownell 的对话——数据科学中被低估的技能、获得高管的认同以及我们如何塑造未来

数据驱动的 T-SQL 业务规则

原文:https://towardsdatascience.com/data-driven-t-sql-business-rules-9ac1e6ad3b4a?source=collection_archive---------27-----------------------

创建具有动态和可互换业务规则的数据验证器,或者为什么(T-) SQL 比我们愿意承认的更强大

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 PNGJoy 提供

硬编码。我敢肯定,在这一点上,你已经听说了使用它将如何把你带到编码器的地狱。专家似乎建议尽可能避免它。那么,为什么我们的大多数查询都是硬编码的呢?如果我们能够以一种集中的、可互换的方式指定查询的谓词,会怎么样?让我们看看(T-)SQL 到底有多动态。

然而,请注意,这可能不是一个好主意,但无论如何让我们玩得开心点。

什么?

为了说明数据驱动约束引入的可能性,我们将创建一个数据验证器,它强制执行一组约束(不要与 SQL 自身的约束混淆)、业务规则或简单的阈值,这些都是在表上定义的。此外,同样的模型可以扩展到定义您的 where 谓词,或者您的查询的任何部分。如果任何人发现这个帖子相关——怀疑——我会用这个扩展名创建另一个帖子。

我们的最终目标是获得一个存储过程,它允许用户根据一组给定的动态规则来验证给定的条目。例如,验证值 50 是否符合规则集 ID 2,并检索相关的输出代码:

exec ValidateThreshold 2, ‘50’, @returned_code OUTPUT;

为什么?

首先,你到底为什么要这么做?谁会将业务规则硬编码到数据库的查询中呢?事实证明我们大多数人。从数据模型的接近到职责的分离,有很多理由说明为什么需要这样做。

考虑一个拍卖网站的例子。如今,你有一条规则,规定你只接受不低于 0.05 的出价。如果明天你想把所说的价值改成产品估价的 0.01%到 10%之间的任何值呢?是否要更改包含新约束的每个过程、视图、触发器或查询?好吧,希望在这篇文章之后,你不用再这样做了。

实际上,我们引入了一个简单的模型,在实践中,拥有一个规则集表是有意义的,它创建了要应用的规则组。

需要做一个介绍性的说明,我绝不是 SQL 专家——我相信你已经注意到了——相反,我只是一个极其懒惰的人,喜欢想方设法避免手工劳动。希望它也能帮助你的懒惰性格。请务必阅读结尾部分,它可能是整篇文章中最重要的部分。

怎么会?

第一步是实际构建您的规则或阈值。

Create table Threshold
(
 ThresholdID int identity not null,
 ThresholdSetID int not null,
 VarName varchar(20) not null,
 Operator varchar(2) not null,
 TargetValue varchar(50) not null,
 [Description] varchar(100) not null,
 ThresholdOrder int not null,
 Deprecated bit not null default 0,primary key (ThresholdID)
);

并用一组虚拟内容填充它:

insert into Threshold values (1, '@input', '>=', '25', 'dbo.InsertAuctionBid(...)', 1, 0);insert into Threshold values (1, '@input', '<', '(select max(value) from dbo.AuctionDates)', 'dbo.InsertAuctionBid(...)', 2, 0);

注意 rows*@如何输入*参数,该参数表示要验证的值。第一个规则将确保我们的参数大于或等于 25 的**,而第二个规则确保传递的参数小于 AuctionDates 表中的最大日期。**

进入验证程序!

create procedure dbo.ValidateThreshold
(
 @thresholdID int,
 @input nvarchar(50),
 @return_code int OUTPUT
)
as
 if @thresholdID is null 
 begin
  set @return_code = 2;
  return;
 endif @input is null  
 begin
  set @return_code = 2;
  return;
 enddeclare @statement nvarchar(max), @where_clause nvarchar(max);set @where_clause = stuff((
  select '  and '+ VarName +' '+ Operator  +' ' + TargetValue +char(10)
  from 
   Threshold
  where
   ThresholdID in (@thresholdID)
  order by 
   thresholdOrder
  for xml path (''), type).value('.','nvarchar(max)')
  ,1,6,'');set @statement = 'if exists(select 1 '+char(10)+'where '+ @where_clause + char(10) + ') select 0; else select 1;';set @statement = replace(@statement, '@input', @input)exec sp_executesql
  @query = @statement
  ,@params = N'@return_code INT OUTPUT'
  ,@return_code = @return_code OUTPUT;

对于我们这些 SQL 新手来说,有很多东西需要理解,所以让我们把它分成几个部分。

我们的过程应该有三个参数:2 个输入和 1 个输出。要应用的规则;要验证的参数,格式为文本。最后是操作的输出代码,0 表示成功,任何不同都表示特定的错误代码。

create procedure dbo.ValidateThreshold
(
  @thresholdGroup int,
  @input nvarchar(50),
  @return_code int OUTPUT
)

接下来,验证我们的输入并返回一个适当的错误代码

as
 if @thresholdID is null 
 begin
  set @return_code = 2;
  return;
 endif @input is null  
 begin
  set @return_code = 2;
  return;
 end

到目前为止一切顺利。果汁来了

declare @statement nvarchar(max), @where_clause nvarchar(max);-- Generate the underlying where clause by concatenatinc the Variable to test, the boolean operator and the test predicate
 -- using XML PATH to repeat the whole process, gluing subsequent predicates with an ' and'.
 -- Lastly, use stuff to collapse it all together, removing the first 6 characters (corresponding to ' and') starting on the first position.
 -- Note: If more than a @thresholdID is provided, the predicates will be passed according to Threshold.ThresholdOrder set @where_clause = stuff((
  select '  and '+ VarName +' '+ Operator  +' ' + TargetValue +char(10)
  from 
   Threshold
  where
   ThresholdID in (@thresholdID)
  order by 
   thresholdOrder
  for xml path (''), type).value('.','nvarchar(max)')
  ,1,6,'');set @statement = 'if exists(select 1 '+char(10)+'where '+@where_clause + char(10) + ') select 0; else select 1;';-- Feed the input variable
 set @statement = replace(@statement, '@input', @input)exec sp_executesql
  @query = @statement
  ,@params = N'@input nvarchar(50), @return_code INT OUTPUT'
  ,@input = @value
  ,@return_code = @return_code OUTPUT;

那么这是如何工作的呢?

FOR XML PATH 顾名思义,允许您将查询结果转换成 XML 文件。但是,通过将一个空字符串传递给 RAW 参数,我们为返回的数据创建了一个串联的字符串。考虑以下用户表:

╔═══════════╗
║   Name    ║
╠═══════════╣
║ John      ║
║ Mary      ║
║ William   ║
║ Anthony   ║
╚═══════════╩

应用于前一个表:

select ','+ name 
        from Users
        FOR XML PATH('')Output: ‘,John, Mary, William, Anthony’

注意尾部的逗号,它虽然允许我们创建逗号分隔的字符串,但会完全破坏 SQL 语句。在我们的例子中,我们输入了一个关键字,而不是逗号,这样我们就可以将多个子句粘在一起。

我们首先调用 value() 函数将 XML 对象转换成字符串。然后,我们使用 STUFF() 函数检索逗号,或者在我们的例子中,检索 6 个字符,以从生成的字符串中删除‘and’部分。

下一步是将生成的 where 子句传递给一个布尔语句,使用 Exists 来测试返回的存在。如果返回为 1,则*@输入有效,但是如果返回为空,则@输入验证失败。*

通过用传递的 @input 替换@input 字段并通过 动态 SQL 执行查询,该过程结束。

但是请注意,动态 SQL 有很多缺点,从性能到安全性。我绝不是建议您的 DBA 应该实现这个模型,它仅仅是(T-)SQL 灵活性的一个展示,人们并不期望它存在。

我希望这个资源对你有所帮助,或者至少是有趣的。

数据驱动、数据知情和数据启发—旧思想、新词汇

原文:https://towardsdatascience.com/data-driven-vs-data-informed-vs-data-inspired-740eaaec6263?source=collection_archive---------20-----------------------

不要被流行语迷惑。知道它们代表什么吗

我们需要这些流行语吗?它们增加了什么价值吗?有没有不好的一面?

在这篇文章中,首先,我们将进入这些流行语代表什么。

第二,文章认为,这三个流行语都是在用新衣服营销旧概念,理由很充分。它只是要求我们不要成为数据原教旨主义者,不要放弃常识。事实上,当我们应用清晰的思维时,数据通知的业务决策和数据驱动的业务决策结果是相同的;当我们不运用清晰的思维时,两种情况的结果都是一样的,我们就做出了错误的决定。

最后,我们将探索流行语是如何伤害和帮助的。

当我们谈论数据驱动、数据通知和数据启发时,我们谈论的是什么

如果你想验证,就要数据驱动。如果你想创新,就要了解数据。如果你想为一个想法寻找灵感,那就从数据中寻找灵感。这就是你将看到的解释。

下面是一张表格,显示了业内流行词汇的更多细节。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随着我们从数据驱动的方法转向数据启发的方法,我们开始更加关注数据解释和故事构建技巧。我们不再拘泥于数字。在第一种情况下,我们试图理解所有指标背后的原因,在第二种情况下,我们试图用所有这些数字创造故事。

挑战在于,如果你愿意插入叙述来连接这些点,你总是会找到数据来支持你的观点。我们有这样一种说法是有原因的,数据就像是被警察关押的囚犯。折磨它,它会告诉你你想听的事情。

总而言之,这些流行词只是要求我们不要从表面上看数据,不要只依赖容易获得和测量的数据,不要抛弃常识。

现在,要理解为什么这三个流行语都在用新衣服推销旧概念,以及它们如何以及为什么会同时带来伤害和帮助,我们需要了解它们的历史。

流行语的诞生

请看看这些流行语的谷歌搜索趋势。在 2010 年,我们得到了一个时髦词数据通知,在此之前,技术世界主要是数据驱动的。数据启发从 2018 年开始出现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据驱动已经流行了很长时间;数据驱动之前的时代我们称之为石器时代。

石器时代:

一开始,我们没有数据术语,我们有远见者:商业远见者、产品远见者和营销忍者。他们拥有坚如磐石的直觉,对用户的需求和行为有着无可挑剔的理解,他们在组织中做着大部分的决策。商业决策与其说是一门科学,不如说是一门艺术。这并不一致。

幸运的团队有真正的远见者(10 倍),不幸的团队有假的远见者(次 X)。真实的公司在业务活动的各个环节上做得很好,做出了可靠的决策;假的挣扎过,但没人知道。

硅时代:

数据的数字化导致了数据的泛滥,这为提高两个群体的绩效提供了机会——10 倍群体和 X 倍群体。我们需要一个口号来激发人们的热情。行业发明了这个词——数据驱动,将人们聚集到一个新的方法上。毫无疑问,这种方法很有帮助。

数据驱动的决策帮助了整个行业。然而,它对人的帮助是亚 X 人的 10 倍。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在前数据驱动和数据驱动的世界中,对“真天才”和“假天才”的决策准确性

为什么?

这是因为新的数据为那些已经擅长联系事实的人提供了更多的杠杆。10 倍拥有卓越数据解释技能的人在决策方面做得非常出色,但 X 人的收益一般。这是因为他们从字面上理解了“数据驱动”的标签,并将数据误认为是违背常识和深度思考的保险单。

数据站在他们一边,过分热衷于数据的家伙大喊“数据”,而不考虑上下文。它不仅会导致错误和次优的决策,而且会减缓决策过程,进而减缓业务创新。

此外,教条的数据驱动的家伙游说短期利益的战略。他们不愿意相信任何他们第一次看不到和测量不到的东西。他们的热情让公司陷入了本地最大值的困境。

随着滥用数据驱动的流行词的增加,需要一种新的心理模型。一个新的流行词。

一个新的流行词诞生了——数据信息?

一个新术语诞生了。现在,你对过分热衷于数据驱动的同事做出了回应。“伙计们,你们的数据驱动方法很好,但我们需要了解数据。”请注意,这两个流行语都有数据这个词。数据驱动的原教旨主义者更难反对任何始于数据的东西。

数据启发的诞生

不幸的是,所有流行语的诞生并不鼓舞人心。有些流行语是出于需要,有些是为了听起来更聪明。数据启发,在我看来,就属于这一类。

它要求你在数据非常少的时候使用框架。你依靠你的直觉、创造力和过去的经验来发现数据中的趋势。

旧思想,新语言——揭穿流行语

不幸的是,数据解释很难,因为它需要理解用户的需求和大量的思考。为了阻止社区对深度思考的忽视,新的流行语被创造出来作为提醒的线索:不要停止思考。

理解这一点至关重要,否则,我们会被新流行语的光泽所迷惑,最终犯下同样的错误。

让我们来看看知识层次——一个古老的概念,以便更好地理解它。它向我们展示了数据转化为决策的过程?在我们获得智慧之前还有几个步骤。智慧给我们决策。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

知识层次。数据到决策(智慧)

上面的模型从来没有暗示收集数据就足够了,它消除了决策的负担。数据驱动从来不意味着数据收集或逐字阅读。请记住,您的业务环境也是数据,即使它没有被公式化为您现在看到的数据。请记住,来自行业的见解或您去年收集的见解也是数据。这些额外的数据可以帮助你将当前的数据转化为智慧。

一方面,新的流行语告诉我们不外乎做数据解读,另一方面,它使我们陷入绿色木材谬论。我们开始把空谈者和实干家混为一谈,我们愚弄自己,认为知道流行词意味着我们擅长数据解释。通常,它会将注意力从核心转移开。

在添加新的流行词之前,重要的是找到平衡并理解权衡。基于数据的听起来不错,但基于数据的似乎有些自我放纵。

外卖食品

  1. 不要掩饰流行语,试着理解那些流行语想要表达的意思。
  2. 数据驱动、数据通知、数据启发都是披着新衣的旧概念。它所做的只是要求你不要停止思考,不要成为数据原教旨主义者,不要做没有数据的解读。
  3. 对流行语的了解并不意味着高超的数据解释技能。吹嘘你了解数据并不意味着你做出了正确的决定。不要愚弄自己,也不要在面试一个候选人的时候被愚弄。不要相信绿色木材谬论。

参考和延伸阅读

  1. Adam Mosseri 在 2010 年做了一个演讲“ 数据通知,而不是数据驱动 ”。这可能是“数据通知”框架在公共空间的首次使用。
  2. 陈楚翔论 【数据知情 vs 数据驱动】
  3. 数据化营销

数据高效的 GANs!

原文:https://towardsdatascience.com/data-efficient-gans-d10acd595361?source=collection_archive---------55-----------------------

看看麻省理工学院最近令人兴奋的论文“数据高效 GAN 训练的差异化增强”

理解本文的前提:你训练过 GAN 或者你了解训练 GAN 时出现的常见困难比如训练数据上的甄别器过拟合。否则,一定要阅读这篇文章,或者自己花几个小时在谷歌上搜索甘斯。然后回到这里,享受这篇文章!

你读过甘斯的书。也许你已经训练了一只。也许你已经尝试过来训练一个,看着鉴频器损耗一降再降,然后“嘣”的一声,你在训练数据上过度拟合了。你打印出 100 张图片,其中 50 张是同样畸形的金毛猎犬图片。你去见你的教授,也许眼里含着泪水,你宣称:

‘模式崩溃,怎么办?’

“增加更多的数据,”你的教授说。或许打个盹。

不要害怕!麻省理工学院最近的论文“数据高效 GAN 训练的差异化增强”声称是你的救星,或者至少是它的一部分(赵,刘,林,朱&韩,2020)。该论文声称需要更少的数据,同时仍然使用一种称为“可区分”增强的特殊数据增强来实现最先进的结果。在这篇博文中,我会把茶洒在这张纸上(如果你还不知道,我对此非常兴奋)。我来告诉你这篇论文是怎么宣称提高 GAN 训练的,我来说说实际上有没有效果。所以,拿起一杯茶和一个笔记本,向 GAN 神祈祷这有助于击败“模式崩溃”的老怪物

甘斯的问题:快速回顾一下

在机器学习中,你将学到的第一个也是最重要的概念之一是“过度适应”。在鉴别器 GANs 的上下文中,D 在训练中继续改进,但是在验证期间表现很差,因为它已经开始“记忆”图像数据。这并不一定会导致模式崩溃,在这种情况下,您会得到许多相同的输出图像,尽管这种情况经常发生。如果您观察到模式崩溃,这是一种证据,表明鉴别器对数据过度拟合。通常,我们只是添加更多的数据来防止这个问题——当然,这通常是有帮助的……但是这么多的数据不一定容易收集。这篇论文提供了一个有力的例子:如果我们试图生成一个稀有物种的图像会怎么样?我们无法获得更多的数据。然而,我们不必把自己局限于稀有物种这种极端的边缘情况。即使当我们谈论像衣服这样的常规物品时,收集数据也是昂贵的。注释数据是昂贵的。需要(赵等,2020)。我们希望模型现在工作

解决方案:增强?

因此,现在我们将得到我们的论文谈到的解决方案。该论文观察到,当在监督学习的情况下出现过拟合时(比如一个简单的图像分类问题),并且我们没有更多的数据要添加,我们将对数据进行称为增加 的处理。[作为补充说明,请随意阅读其他解决过度拟合问题的方法,如正则化]。

图像增强是指将图片翻转过来或稍微改变颜色等。等等。我们只是稍微改变一下照片,这样我们可以得到更多的样本。但是对于 GANs,这种增强不能直接起作用。作者提供了两种我们可以在 GAN 训练期间增加数据的方法,以及为什么这两种方法都无法获得良好的输出图像。然后他们提供了第三种选择,这种选择起作用(微分增强),这就是他们论文的全部内容。所以这里有两个行不通的选择:

选项 1:仅增加 Reals】

大家还记得,当我们训练 GAN 时,我们输入的图像是实际物体的实际图片。我们用它和我们的生成器制造的赝品一起输入到鉴别器中。所以在第一种增强方法中,我们只是增强这些真实的图像。简单吧?

不对。

赵等人(2020)报告说,增强随机水平翻转确实适度地改善了结果。但是更强 增强比如翻译&只对真实图像进行剪切会导致生成的图像出现失真和怪异着色等问题。虽然普通增强可能适用于常规分类问题,但对于我们不分类的 gan,我们正试图生成数据的真实分布。但是,如果我们去扭曲真实的输入数据,那么我们生成的输出也将被类似地扭曲。鼓励发生器匹配增大的&失真分布,而不是真实分布。那么,扩充数据的第二个选择呢?

选项 2:增加所有鉴别器输入

在这个选项中,我们不仅增加了实数,还增加了由我们的生成器输出并进入我们的鉴别器的虚数。有趣的是,虽然鉴别器学会了以超过 90%的准确度在增强的真实和增强的虚假之间进行完美分类,但鉴别器未能识别未增强的虚假,导致准确度低于 10%。这是因为发生器 G 从非增强伪图像接收其梯度。因此,我们需要某种方式将梯度传播到我们的生成器 G. 否则,用赵等人(2020)的恐怖诱导的话来说:

生成器完全欺骗了鉴别器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**图一。**甘斯失败的增强方法。来源:赵等(2020)

选项 3:输入差异化增量

所以这就是作者提出了一种工作的增强类型,即可微分增强。为了解决选项 1 和选项 2 的问题,作者提供了一个解决方案。增强了鉴别器网络中使用的真实和虚假图像,而且 2。成功地**“将增强样本的梯度传播到 g。”**这避免了我们之前在选项 2 下讨论的无法识别未增强的假货的问题。**这是本文的关键:**为了允许梯度传播到生成元 G,他们简单地非常确定增广是,如名字所说,可微的。作者提供了这种可区分增加的三个主要例子:

平移(在图像大小的[1/8,1/8]范围内,用零填充),

剪切(用图像一半大小的随机正方形进行遮罩),以及

颜色(包括随机亮度在[0.5,0.5]范围内,对比度在[0.5,1.5]范围内,饱和度在[0,2]范围内)。

结果

这有用吗?是的。是的,它似乎起作用了。作者列出了一些非常酷的结果,我将在这里列出其中一些。我强烈建议你看看主要论文中的其他结果——它们确实让我大吃一惊。

成果#1 : *CIFAR-10 和 CIFAR-100 数据集。*作者使用了两个著名的 GAN,即 BigGAN 和 StyleGAN2,并尝试了几种数据集大小(100%数据、10%数据、20%数据)。为了使他们的比较与基线公平,他们甚至确保在基线方法中使用正则化&水平翻转。对于 CIFAR-10 和 CIFAR-100 而言,它们都比基线有所改进,是 CIFAR-10 和 CIFAR-100 的最新技术

成就#2: ImageNet 。可区分增强推进了 100%数据集和缩减大小数据集的最新水平。

我喜欢本文中提出的解决方案的原因是它非常符合逻辑。作者 1。尝试了不同的增强方法。确定了确切的困难和 3。通过使用特定类型的增强,即在真实和虚假上执行的可区分增强,迅速修复了问题,从而允许梯度传播到生成器。然而,这个逻辑推导出的解决方案做了这么多。现在,任何训练 GAN 的人都可以将“使用可微分增强”添加到他们的规则工具箱中,如“向鉴别器输入添加噪声”和“惩罚[调整]鉴别器权重”(未注明)。

这篇论文真的让我很兴奋,促使我在凌晨 1 点写了一篇关于它的帖子。我希望我对它的讨论能帮助你理解这个解决方案是如何工作的,并让你兴奋起来!

最后,论文中的一张图清晰地展示了他们的方法:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图二。“更新 D(左)和 G(右)的 DiffAugment 概述”。DiffAugment 将扩充 T 应用于真实样本 x 和生成的输出 G(z)。当我们更新 G 时,梯度需要通过 T 反向传播,这要求 T 对于输入是可微分的。”图片来源&图片说明:赵等(2020)

参考文献

赵树声,刘,张,林俊杰,朱俊英,韩树声(2020)。数据有效的 GAN 训练的可区分增强。arXiv 预印本 arXiv:2006.10738 。从 https://arxiv.org/pdf/2006.10738v1.pdf取回

生成性对抗网络(未注明)。常见问题。谷歌开发者。从 https://developers.google.com/machine-learning/gan/problems取回

数据工程和数据科学协作流程

原文:https://towardsdatascience.com/data-engineer-and-data-science-collaboration-processes-b2d7abcfc74f?source=collection_archive---------21-----------------------

沮丧、紧张和痛苦都是缺乏共同合作基础的结果。找到重视每个数据角色的最佳协作流程是最基本的。

作为一名数据工程师,我有机会经历了一个数据工程师/数据科学家的合作过程,并很快看到了它的失败。因此,我对我们如何改善这种合作变得非常感兴趣,并开始记录自己在其他可以改善团队合作的过程中的表现。因此,本文介绍了数据工程师和数据科学家之间的多个组织,每个组织都有其优点和缺点。

数据工程师将数据科学项目产业化

当数据科学家和数据工程师不使用相同的编码语言并且数据工程师是负责生产代码的人时,一切都必须重新编码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据科学家/数据工程师组织:数据工程师将数据科学项目工业化

当然,在对数据科学项目进行重新编码之后,数据工程师将会有一些额外的任务,比如调度、构建部署部分以及确保自己创建了监控功能。

好处:

  • 这位数据科学家仍然呆在他的舒适区,因为他可以用任何他想用的语言工作
  • 数据科学家在探索部分是自主的
  • 数据工程师仍然呆在他的舒适区,因为他可以使用他认为适合项目的语言和项目架构

陨落:

  • 它没有“评估”团队的每个成员(在这种情况下也就是数据工程师)。尽管用另一种语言,以一种更优化、更工业化的方式创建同一个项目会有很多挑战,但它创造了一个“思考者”/“实干家”的组合,没有一个工程师愿意只是另一个“实干家”
  • 数据科学家不能自主添加新功能。每一个新特性都需要一个数据工程师来负责产品代码部分,一个数据科学家来评估非工业化项目中的变化。
  • 该项目必须由两个不同的人用两种不同的语言维护(以便能够进行更新)

构建数据科学框架

当有了数据工程师和数据科学家使用的通用编码语言,前者就可以免去一切重新编码的麻烦。重新编码部分将被可选的优化所取代。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过数据科学框架进行数据科学/数据工程师协作

当然,为了限制数据科学家需要学习的技术数量,数据工程师可以创建一个数据科学框架,隐藏/抽象架构复杂性和部署复杂性。

然而,创建这个框架并不意味着数据科学家将独自完成每个项目,仍然有一些任务,如监控功能、优化和构建所需的 API,应该由数据工程师来完成。

然而,这种组织给了数据科学家更多的自主权,因为有些变化不需要数据工程师。

这种组织在 Dailymotion 使用,更多细节我推荐这篇由 Germain Tanguy 写的文章

好处

  • 数据工程师并不是对所有事情都重新编码:没有思考者/行动者的关系
  • 该框架将加速数据科学项目的开发和部署
  • 数据科学家更加自主

弊端

  • 就数据准备而言,数据工程师只负责优化
  • 建立和维护这样一个框架需要时间

封装和结对编程

当没有数据工程师和数据科学家使用的通用编码语言时,你可以试着像 Coursera 数据工程师刘璐珈建议的那样使用 SQL 作为对等编程的通用语言。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过包和结对编程进行数据科学/数据工程师协作

如果在一些数据科学领域,SQL 不能作为通用语言使用,那么您可以使用包在不同的数据科学阶段和数据工程师之间进行通信。

这本 Xebia 书描述了我们可以创建三个包的事实:

  • 特征工程包
  • 用于已训练模型的包
  • 预测部分的包

根据您的架构,包可以采用不同的形式:docker 图像、Kafka 队列中的消息等。

在这个协作过程中,数据工程师将主要负责部署模型、监控功能,并在对等编程部分帮助进行测试和优化。

好处:

  • 数据工程师并不是对所有事情都重新编码:没有思考者/行动者的关系
  • 数据准备部分的对等编程将有助于两个角色之间的协作
  • 对于建模部分,我们通过使用包作为数据工程师和数据科学家之间的通信来划分职责

缺点:

  • 使用 SQL 作为通用语言可能会限制语言的可能性。例如,在 Python 中,如果不使用 SQL,可以更容易地进行一些数据操作

数据男/数据女

我的一个朋友告诉我,他认为自己是一个“数据人”。事实上,从某个角度来看,我们都在学习不同的技能,因此你可以找到既有数据工程技能又有数据科学家技能的人。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据男/数据女

弊端:

  • 这个人可能会独自处理一些项目(如果这个人离开,可能会丢失一些信息)

好处:

  • 项目速度
  • 因为这个人拥有所有需要的技能,所以没有共同的基础去寻找

笑点

没有完美的协作过程,每个协作方案都有一些缺点和一些好处;取决于您和您的团队,根据您的环境以及您的数据工程师和数据科学家拥有或想要培养的能力,选择最适合您公司的组织!

数据工程师、数据科学和数据分析师—有何区别?

原文:https://towardsdatascience.com/data-engineer-data-science-and-data-analyst-what-the-difference-8f31eec127dc?source=collection_archive---------23-----------------------

了解数据领域的职业

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

马库斯·斯皮斯克在 Unsplash 上的照片

数据是新的石油!

这句话你可能听过很多遍了。这句话可以说是对的,例如在古代,石油是世界上最有价值的资源。从政府到当地公司,这是所有事情的关键功能。没有它,进步就会停止,经济就会萎缩。

快进到 21 世纪,一些世界上最有价值的公司,如谷歌、脸书或亚马逊,将他们的整个业务建立在有效处理个人数据的基础上。个人数据据说是当今网络社会市场上最热门的商品。例如,与唐纳德·特朗普的选举团队合作的剑桥分析公司(Cambridge Analytica)的争议是收集 5000 万脸书个人资料的数据成为可能有助于扭转选举的广告活动。我们可以说,如果你有数据,你就可以统治世界。

今天,许多公司都意识到数据的有用性,从获取数据到处理数据以产生公司需要的信息。因此,出现了专门与数据相关的职业。这就是专门与数据相关的职业,我将讨论其中的一些。这些是与数据相关的职业:

数据架构师

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

丹尼尔·麦卡洛在 Unsplash 上的照片

数据架构师在实际数据存在之前就开始工作。如果数据就像一座建筑,那么在我们建造这座建筑之前,我们必须首先设计这座建筑的样子。从使用的材料、结构到设计。我们当然不希望建筑不符合我们的意愿,因为我们的粗心而导致建筑倒塌或损坏。同样的,对于数据,我们当然不希望我们的数据分崩离析,以至于将来会出现混乱。

数据工程师

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

科学高清照片Unsplash

数据工程师构建并优化允许数据科学家和数据分析师工作的系统。每家公司都依赖于与其合作的每个人的准确且可访问的数据。数据工程师确保数据被正确接收、转换、存储,并可供其他用户访问。

假设在石油和天然气中。数据工程师的职责是制造管道,将原油排放到像汽油一样随时可以使用的地方。数据工程师负责构建数据管道,通常需要使用复杂的工具和技术来处理大规模数据。数据工程师更倾向于一套软件开发技能。数据工程师的思维方式通常更侧重于开发和优化。

数据科学家

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Unsplash 上拍摄的 ThisisEngineering RAEng

数据科学家是应用他们在统计和建立机器学习模型方面的专业知识来进行预测并成为关键商业问题的专家。可以说,数据科学家有责任将数据处理成洞察力。

数据科学家必须能够清理、分析和可视化数据,并能够训练和优化机器学习模型。在每个公司中,数据科学家的方向可能会有所不同,例如,汽车公司中的数据科学家角色对数据的要求与餐饮公司不同。我们以一家金融科技公司为例,与金钱相关的数据,比如你能存多少钱,花多少钱,还可以使用机器学习来预测未来。

数据分析师

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由克里斯蒂娜@ wocintechchat.comUnsplash 上拍摄

数据分析师通过数据为他们的公司提供价值,使用数据回答问题并交流结果以帮助业务决策。通常由数据分析师完成的普通工作与数据科学家一致,例如数据清理、执行分析和创建数据可视化。但是数据分析师更侧重于分析和数据通信。

就像数据科学家一样,数据分析的分组取决于公司的需求,取决于公司在什么领域。数据分析师的头衔可以是商业分析师、商业智能分析师、运营分析师、数据库分析师等。

无论头衔如何,数据分析师都是多面手,可以适应许多角色和团队,帮助他人做出更好的数据驱动型决策。数据分析师有潜力将传统业务转变为数据驱动型业务。

数据科学家带来了理解数据的全新方法和视角。虽然分析师可能能够描述趋势并将这些结果转化为商业术语,但科学家会提出新的问题,并可以根据新数据建立模型进行预测。

数据分析师必须通过分析新数据、组合不同报告和翻译结果,成为不同团队之间的有效桥梁。反过来,这使组织能够对其增长保持准确的脉搏检查。

如果你喜欢这篇文章,你可以看看我下面的其他故事。

[## 如何开始一个机器学习项目

做机器学习项目的分步指南

towardsdatascience.com](/how-to-start-a-machine-learning-project-5654832cb1ed) [## 人工智能、机器学习和深度学习——有什么区别?

人工智能、机器学习和深度学习的简单解释以及它们之间的区别

towardsdatascience.com](/artificial-intelligence-machine-learning-and-deep-learning-what-the-difference-8b6367dad790) [## 使用 Python 创建你想要的任何形状的单词云

创建漂亮单词云的分步指南

towardsdatascience.com](/create-word-cloud-into-any-shape-you-want-using-python-d0b88834bc32)

数据工程师,模式和架构未来

原文:https://towardsdatascience.com/data-engineer-patterns-architecture-the-future-7c3a01737053?source=collection_archive---------26-----------------------

深入了解流流程的微服务模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象【http://www.igfasouza.com/

TL;博士

在工业 4.0 中,使用了多种技术来进行实时数据分析,另一方面,维护、组织和构建数据是一项复杂的工作。在过去的 30 年里,我们看到了几个将数据库集中在一个地方的想法,因为统一和真正的数据源已经在公司中实现,如数据仓库、NoSQL、数据湖、Lambda & Kappa 架构。

另一方面,软件工程一直在将想法应用于分离的应用程序,以促进和提高应用程序性能,如微服务。

想法是使用日期上的微服务模式,并将模型分成几个更小的模型。分解它的一个好方法是使用 DDD 原则的模型。这就是我试图解释和定义 DataMesh & Data Fabric 的方式。

这里值得一提的是,我简化了数据网格和数据结构的概念和思想,就像我简化了流和 Kafka 的概念和思想一样。

想法

我被邀请在一个数据工程师会议上做一个演讲,我带着这个想法来展示我对数据网格的看法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

https://www . meetup . com/engen haria-de-dados/events/271280539/

工业 4.0

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片灵感来自https://aethon.com/mobile-robots-and-industry4-0/

在过去的几年中,出现了一些想法和架构,如数据仓库、NoSQL、数据湖、Lambda & Kappa 架构、大数据等,它们提出了应该将数据整合并分组到一个地方的想法。将一个地方作为数据的统一和真实来源的想法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象

此处的图像显示了将所有数据分组到一个唯一的位置作为最终目标的概念。

近年来,软件工程领域已经表明,应用程序应该被隔离,以促进和提高应用程序的性能,并便于维护。向该司提出的一个想法是使用 DDD 和微服务。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象

如果我们比较数据区和开发区,我们会发现两者的说法正好相反,一个想要统一,另一个想要分裂。

这正是 DataMesh 提出的想法,它提出了我们应该使用 DDD 和微服务的想法来分离数据,以生成更小、更简单的应用程序,这样维护和性能会更好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Jeffrey T. Pollock 网上研讨会未来数据集成 datamesh 和金门卡夫卡

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自https://Martin fowler . com/articles/data-monolith-to-mesh . html

查看微服务模式,我们会发现有一些数据驱动的模式。如果我们更详细地分析它们,我们会发现它们都使用或链接到流处理。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

映像的想法来自微服务架构:调整原则、实践和文化。但这个形象并不在书本身。由我创作灵感来自https://medium . com/@ madhukaudantha/microservice-architecture-and-design-patterns-for-microservice-e0e 5013 FD 58 a

这里的想法是,所有与数据相关的设计模式我们都可以应用流,并且像 Apache Spark、Apache Flink 和 Apache Kafka 这样的工具是目前使用最多的。围绕它还有一个生态系统,还有其他一些技术。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象

我创建了一个表,其中列出了流媒体市场的主要选项,但这里的想法是,这不是一个银弹,只是我的愿景。这是主观的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象

我用来构思自己想法的书籍(我只想记住有几篇文章、论文和视频围绕着这些想法)

  • 域驱动器设计师— Eric Evans
  • 微服务架构:调整原则、实践和文化——irak Li Nadareishvili、Ronnie Mitra、Matt McLarty 和 Mike Amundsen
  • Kubernetes 模式:设计云原生应用的可重用元素
  • 设计数据密集型应用— Martin Kleppmann
  • 第四次工业革命——克拉斯·施瓦布
  • 不可避免的——凯文·凯利

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我创造的形象

我用来构思的文章:

  • 作为数据库流式传输

https://Yokota . blog/2019/09/23/building-a-relational-database-using-Kafka/

https://Yokota . blog/2020/01/13/building-a-graph-database-using-Kafka/

https://www . kai-waehner . de/blog/2020/03/12/can-Apache-Kafka-replace-database-acid-storage-transactions-SQL-no SQL-data-lake/

  • 事件驱动和数据网格

http://jacekmajchrzak . com/event-driven-data-mesh-introduction/

  • 无服务器时代

https://blogs . Oracle . com/cloud-infra structure/server less-big-data-pipelines-architecture

  • Martin Kleppmann |卡夫卡峰会 SF 2018 主题演讲(卡夫卡是数据库吗?)

【https://www.youtube.com/watch?v=v2RJQELoM6Y

  • 库伯内特土著

https://medium . com/@ graeme colman/the-new-kubernetes-native-d 19 DD 4 AE 75 a 0

https://developers . red hat . com/blog/2020/05/11/top-10-must-know-kubernetes-design-patterns/

  • GoldenGate 的微服务模式

https://www . slide share . net/jtpollock/microservice-patterns-with-golden gate

  • 网上研讨会未来数据集成-datamesh-and-goldengatekafka

https://www . slide share . net/JT pollock/webinar-future-dataintegrationdatameshandgoldengatekafka

  • 对分布式数据湖思想的思考

https://www.youtube.com/watch?v=mnvxeU3oDyQ

  • 什么是服务网格?

https://www.youtube.com/watch?v=QiXK0B9FhO0

Twitter 影响者:

@ KaiWaehner
@ bib ryam
@ gschmutz

结论

  • 分而治之是最好的开始方式,它简单,便宜,会节省你的时间和金钱
  • 一些公司在尝试实施大数据、数据湖和数据仓库时失败了,因为他们试图构建一些大而复杂的东西
  • 流媒体无处不在
  • 我们正处于多云和混合云时代
  • 无服务器架构越来越流行
  • 我们不应该关心名字,而应该关心目标
  • 我用一种方式简化了它,我传递了这样一个想法:是的,我们已经处于无服务器时代;
    是的,我们已经处于土生土长的库伯内特人时代;
    没错,串流就是数据库;
    是的,流无处不在;
    对,分而治之;
    对,微服务模式;
    是的,Kubernetes 图案是加分项;

我的幻灯片:

https://www . slide share . net/igorsouza 137/data-engineer-patterns-architecture-the-future-deep dive-into-microservice-patterns-with-stream-process

追加:

  • 大数据

http://www.igfasouza.com/blog/what-is-big-data/

  • 阿帕奇火花

http://www.igfasouza.com/blog/what-is-apache-spark/

  • 阿帕奇卡夫卡

http://www.igfasouza.com/blog/what-is-kafka/

  • 流处理

http://www.igfasouza.com/blog/what-is-stream-processing/

  • 数据仓库

https://www . Oracle . com/ie/database/what-is-a-data-warehouse/

  • 数据湖

http://www.igfasouza.com/blog/what-is-data-lake/

  • 数据仓库

https://databricks . com/blog/2020/01/30/what-is-a-data-lake house . html

  • 工业 4.0

https://www . kai-waehner . de/blog/2020/04/21/Apache-Kafka-as-data-historian-an-iiot-industry-4-0-real-time-data-lake/

https://www . Forbes . com/sites/Bernard marr/2018/09/02/what-is-industry-4-0-heres-a-super-easy-explain-for-any one/# 166 bad 289788

  • 数据结构

https://www . Forrester . com/report/Now+Tech+Enterprise+Data+Fabric+Q2+2020/-/E-RES 157315 #

  • 数据网格

https://Martin fowler . com/articles/data-monolith-to-mesh . html

  • 微服务

https://microservices.io/

企业家的数据工程

原文:https://towardsdatascience.com/data-engineering-for-entrepreneurs-fa10f9190831?source=collection_archive---------68-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

肖恩·波洛克在 Unsplash 上的照片

这是一家更加数据驱动的公司。

到在这个快速发展的世界中竞争,创业公司和公司应该更加敏捷,以客户为中心,并以数据为驱动力,以赢得市场。

他们中的大多数已经实现了敏捷技术,比如 scrum,来开发一个比以前更快发布的产品。

尽管如此,仍有一些公司没有实施这些以客户为中心和数据驱动的东西。

为了实现这一点,管理人员必须实施他们的数据基础设施,然后才能基于数据做出更准确的决策和更个性化的服务。

要解决这个问题,您应该优先考虑数据工程。

数据工程为什么重要?

这就是为什么它很重要的原因,

你有大量的数据。

在这个互联的世界里,你的交易可能不仅仅发生在你的城市或国家。全世界都知道你的产品和你的公司。正因为如此,你会有很多交易。因此,产生的数据变得更大。因此,你需要一个数据工程师来做这件事。

你有多种数据来源。

数据不仅越来越大,而且有多种类型,例如表这样的结构化格式和文本这样的非结构化格式。为了整合这些数据,你需要一个数据工程师。

您的数据还不能用于分析。

现在,您的数据库是一种结构化格式,为事务处理过程进行了优化。如果您看到数据库的模式,它们不在一个表上。有多个表,每个表都有自己的 id,也有其他表的 id。因此,如果您想为分析过程做好准备,那么您应该让数据工程师来解决它。

这些就是你应该优先考虑数据工程的原因。现在,什么是数据工程,他们做什么?

什么是数据工程?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

泰勒·维克Unsplash 上的照片

数据工程是一个从收集数据到处理数据的过程,因此数据已经为分析过程做好了准备。

数据工程师是做什么的?

数据工程师将把你的数据整合到一个地方,然后使用任何现有的软件进行处理。之后,数据为分析过程做好了准备,或者,你可以在此基础上创建一个推荐系统。

他们使用什么工具?

他们使用的工具是,

  • 数据库,工具有 PostgreSQL、MySQL、MongoDB 等。
  • 用于加工,工具有 Apache Spark,Hive 等。
  • 对于调度,工具有 Apache Airflow、Oozie、Cron 等。

注意事项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 imgixUnsplash 上拍摄

有一些需要考虑的因素,它们是,

云计算与否?

您可以为您的数据架构构建高性能的计算机。但是如果,

  • 你没有维护电脑的成本,
  • 你没有支付电费的费用,或者
  • 你需要备份你的数据。

如果这些是你的考虑,你必须使用云计算。

云计算对于任何公司来说都是必须的,尤其是那些不想构建高性能计算机而需要数据架构的公司。云计算有数据工程可以使用的工具。有很多公司都有云计算服务,比如亚马逊网络服务、谷歌云、微软 Azure 等等。

什么时候考虑雇佣数据工程师?

你必须确定你将如何使用这些数据,它可能是用于决策或建立一个推荐系统。

如果你没有任何成为数据驱动公司的迫切需要,那么你就不必考虑雇佣数据工程师。但是如果你有,那么你应该找数据工程师。

在您拥有一个良好的数据架构并且已经可扩展之后,您就可以继续研究如何使用数据,包括数据分析、使用机器学习的预测建模或从数据中挖掘模式。

结论

在你做出决策或个性化服务之前,数据工程是必须的。在构建数据架构之前,您必须考虑要使用哪些数据以及如何使用这些数据。如果你已经有了很好的理由,那么你应该找数据工程师来构建解决方案。这样,你就可以在这个快速发展的世界中竞争。

2020 年的数据工程

原文:https://towardsdatascience.com/data-engineering-in-2020-e46910786eda?source=collection_archive---------2-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由像素皮克斯拜拍摄

数据处理工具和技术的发展速度之快令人难以置信。随之而来的是,数据工程学科的本质也在发生变化。我今天使用的工具与我十年前甚至五年前使用的工具有很大不同,然而,许多经验教训在今天仍然适用。

早在数据工程成为一件事数据科学家成为 21 世纪最性感的工作之前,我就已经开始在数据领域工作了。六年前,我“正式”成为一名大数据工程师,我直接了解具有“传统”数据开发背景的开发人员在这一过程中所面临的挑战。当然,这种转变对软件工程师来说也不容易,只是不同而已。

尽管技术在不断变化——这是在技术行业工作的任何人的现实——我必须学习的一些技能仍然相关,但经常被刚刚开始向数据工程过渡的数据开发人员忽略。这些通常是软件开发人员认为理所当然的技能。

在这篇文章中,我将谈论数据工程的演变以及“传统”数据开发人员今天可能需要学习的技能(提示:它不是 Hadoop)。

数据工程师的诞生。

大数据热潮之前的数据团队是由商业智能和 ETL 开发人员组成的。典型的 BI / ETL 开发人员活动包括将数据集从位置 A 移动到位置 B (ETL ),并使用该数据构建 web 托管的仪表板(BI)。这些活动都有专门的技术,知识集中在 IT 部门。然而,除此之外,BI 和 ETL 开发与软件工程几乎没有什么关系,软件工程是在本世纪初非常成熟的学科。

随着数据量的增长和对数据分析兴趣的增加,在过去的十年中,新技术不断涌现。他们中的一些人死了,其他人被广泛采用,这反过来改变了对技能和团队结构的需求。随着现代 BI 工具允许分析师和业务人员在 IT 团队支持最少的情况下创建仪表板,数据工程成为一门新的学科,使用一套新的工具将软件工程原则应用于 ETL 开发。

挑战。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

亚历山大·杜默摄于佩克斯

创建数据管道听起来很容易,但是在大数据规模下,这意味着将十几种不同的技术(或者更多!).数据工程师必须深入了解各种技术,为工作选择正确的工具,并用 Scala、Java 或 Python 编写代码来创建弹性和可伸缩的解决方案。数据工程师必须了解他们的数据,才能创造出受益于分布式处理能力的工作。数据工程师必须了解基础架构,才能确定失败作业的原因。

从概念上讲,这些数据管道中有许多是典型的 ETL 作业——从许多数据源收集数据集,将它们放在一个集中的数据存储中,准备进行分析,并为商业智能或机器学习进行转换。然而,“传统的”ETL 开发人员不具备在大数据世界中执行这些任务的必要技能。

今天还是这样吗?

我看过很多描述数据工程师应该具备哪些技能的文章。他们大多建议学习像 Hadoop、Spark、Kafka、Hive、HBase、Cassandra、MongoDB、Oozie、Flink、Zookeeper 这样的技术,这样的例子不胜枚举。

虽然我同意了解这些技术不会有什么坏处,但我发现在今天的许多情况下,在 2020 年,“了解它们”就足够了——它们旨在解决哪些特定的用例,它们应该或不应该在哪里使用,以及有哪些替代方案。近年来,快速发展的云技术带来了大量的云原生应用和服务。正如几年前现代 BI 工具使数据分析更容易为更广泛的业务所用一样,现代云原生数据堆栈简化了数据接收和转换任务。

我不认为像 Apache Spark 这样的技术在未来几年内会变得不流行,因为它们非常适合复杂的数据转换。

尽管如此,像雪花和谷歌 BigQuery 这样的云数据仓库的高采用率表明它们提供了某些优势。其中之一是 Spark 需要高度专业化的技能,而基于云数据平台的 ETL 解决方案严重依赖 SQL 技能,即使对于大数据也是如此——这样的角色更容易胜任。

数据开发人员需要具备哪些技能?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由像素皮克斯拜拍摄

BI / ETL 开发人员通常对数据库基础、数据建模和 SQL 有很强的理解。这些技能今天仍然很有价值,并且大多数可以转移到现代数据堆栈中,这比 Hadoop 生态系统更精简、更容易学习。

以下是我经常观察到的“传统”数据开发人员在知识方面存在差距的三个领域,因为在很长一段时间里,他们没有软件工程师拥有的工具和方法。理解和修复这些差距不会花费很多时间,但可能会使向一组新工具的过渡更加顺利。

  1. 版本控制(Git)和对 CI/CD 管道的理解

SQL 代码是一种代码,因此,应该应用软件工程原则。

  • 了解谁、何时以及为什么更改了代码是很重要的
  • 代码应该与可以自动运行的测试一起提供
  • 代码应该很容易部署到不同的环境中

我是 DBT 的忠实粉丝——这是一个开源工具,它将软件工程的最佳实践带到了 SQL 世界,并简化了所有这些步骤。它比那要多得多,所以我强烈建议去看看。

2。对现代云数据分析体系有很好的理解

我们倾向于坚持使用我们熟悉的工具,因为它们通常会让我们更有效率。然而,我们面临的许多挑战并不是独一无二的,而且通常可以在今天更有效地解决。

一开始尝试在云生态系统中导航可能会令人生畏。一个解决办法是学习其他公司的经验。

许多成功的创业公司都非常开放他们的数据堆栈和他们在旅程中学到的经验教训。如今,采用云数据仓库版本和其他几个组件进行数据摄取(如 Fivetran 或 Segment)和数据可视化是很常见的。看到一些架构通常足以获得 10,000 英尺的视野,并知道在需要时进一步研究什么—例如,处理事件或流数据可能是一个全新的概念。

3。除了 SQL 之外还要知道一门编程语言

尽管我很喜欢 Scala,但 Python 似乎是今天开始的一个安全的赌注。它相当容易掌握,受到数据科学家的喜爱,并且几乎得到云生态系统所有组件的支持。SQL 非常适合许多数据转换,但有时在将复杂的数据结构吸收到表中或使用它自动化数据管道中的特定步骤之前,用 Python 解析复杂的数据结构更容易。

这不是一个详尽的列表,不同的公司可能需要不同的技能,这就是我的最后一点…

数据工程师的角色正在发生变化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由克里斯蒂娜·莫里路派克斯拍摄

在过去的几年里,数据处理工具和技术有了很大的发展。他们中的许多人已经发展到可以随着数据量的增长轻松扩展,同时也能很好地处理“小数据”的程度。这可以显著简化数据分析堆栈和使用它所需的技能。

是否意味着数据工程师的角色正在发生变化?我也这么认为这并不意味着它变得更容易—业务需求随着技术的进步而增长。然而,看起来这个角色可能会变得更加专业化或者分成几个不同的学科。

新工具使数据工程师能够专注于核心数据基础设施、性能优化、定制数据接收管道和整体管道编排。同时,那些管道中的数据转换代码可以由熟悉 SQL 的任何人拥有。比如分析工程开始成为一个东西。这个角色位于数据工程和数据分析的交叉点,专注于数据转换和数据质量。云数据仓库工程是另外一个。

不管职称的区别是否会被广泛采用,我相信“传统的”数据开发人员拥有许多基本技能,可以在当今许多与数据工程相关的活动中取得成功——强大的 SQL 和数据建模是其中的一部分。通过了解现代云分析数据堆栈以及不同组件如何组合在一起,学习编程语言并习惯版本控制,这种过渡可以相当无缝。

GCP 专业化的数据工程

原文:https://towardsdatascience.com/data-engineering-on-gcp-specialisation-a-comprehensive-guide-for-data-professionals-4bb8bae8a1c7?source=collection_archive---------26-----------------------

数据专业人员综合指南

从 Coursera 专业化到认证考试

如果你是一名考虑提升技能的数据专业人士,学习选项并不缺乏,但如果你正在寻找将数据和分析迁移到云的方法,你只能在有限的公共云提供商之间进行选择。

本指南关注谷歌云,更具体地说是谷歌云上的数据工程专业化(正式名称为谷歌云上的数据工程专业证书),并为您提供最新信息和实用建议。

它是基于我自己完成专业化的经验,以及从在该领域工作的其他数据工程师那里收集的信息。

如果你对谷歌云专业数据工程师认证考试感兴趣,那么无论如何专业将会是你的起点。还将讨论认证考试。

该指南包括以下内容:

  1. 相关学习选项概述
  2. 材料涵盖的内容
  3. 为什么要考虑数据工程专业化
  4. 回顾:有什么好/缺什么/有什么亮点
  5. 专业化的实用技巧
  6. 完成专业化后的后续步骤
  7. 认证考试

阅读完这些信息后,你应该能更好地决定这门课程是否适合你。

关于专业化

首先,让我们确定你在正确的地方。

谷歌云专业化的数据工程是属于谷歌云数据轨道的几个按需专业化之一。

它有一个“孪生兄弟”,一个叫做数据工程、大数据和谷歌云上的机器学习的专业。两个专业都在 2020 年 2 月接受了一次大修。本指南适用于两者的改款。我将解释两者之间的细微差别(以及如何一石二鸟,如果你想这么做的话)。

1.谷歌云的学习选项

这一部分将帮助你把专业化放在上下文中,并了解它如何与各种学习选项相关联。由于有多种选择,找到最佳学习路径并不总是显而易见的。

谷歌云的选项包括:

  1. 实验室
  2. 探索
  3. 课程
  4. 特化作用
  5. 专业认证。

几个主题,如 BigQuery、Data Studio 和 AI 笔记本,涵盖在多个实验室、课程和专业中,尽管深度各不相同。

为了简单起见,把一门课程想象成你将用来**有意义地“学习一些东西”**的标准单元。然后将所有其他上游或下游选项与该课程概念相关联。

  • 课程由谷歌制作,但通过外部提供商提供,如 Coursera 和 Pluralsight。
  • 一门课程,连同视频和阅读材料,将让你有机会进入几个实验室,这将作为家庭作业的一部分。这些实验室由 Qwiklabs 托管,qwik labs 是一家被谷歌收购的培训公司。
  • 如果你想要更多的练习,你通常可以在 Qwiklabs 网站上找到与感兴趣的特定主题相关的附加实验。有 400 多个实验室覆盖了几乎所有的谷歌云产品。
  • 许多实验室结合了不止一个谷歌云产品。这些相关的实验室组成小组,所谓的**任务,**任务可以有不同的难度。
  • 一个专业通常是四到五门课程的集合,这些课程基于一个更广泛的主题,例如数据工程。
  • 一旦你成功完成了专业化,你就可以开始考虑相应的谷歌认证考试(阅读下文了解更多)。

2.覆盖什么材料

处于高水平

专业化教会你如何设计和管理云上的数据管道:从访问来自各种来源的数据转换并存储它们,到执行分析以获得商业见解或机器学习以进行预测。然后,它会教你如何打包所有这些步骤,并使数据管道自动化。工作流必须适应任何类型的数据量、速度和多样性。

数据是成批到达还是流式传输进入?是结构化还是非结构化?是很小还是特别大?这些都是数据工程师必须知道如何处理好的工作方面,它们都在本课程中得到了全面的阐述。

最终目标是通过为企业提供基于数据的决策来增加价值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

roman pentinUnsplash 上拍摄的照片

产品

例如,当可视的最终产品是交互式实时仪表板或自适应 ML 驱动的 web 应用程序时,数据工程师通常是使这一切成为可能的隐形英雄

然而,要实现这一切,你必须熟悉越来越多的谷歌云工具,这些工具在构成专业的 6 门课程中逐渐被涵盖。

以下是涵盖的一些关键产品:

云存储,BigQuery 包括 BigQuery ML 和 Data Studio,Dataflow,Dataproc,Pub/Sub,Composer,Datafusion,Kubeflow,ML APIs,AutoML,AI 笔记本。

如果你想了解更多关于这些产品的信息,有一本方便的指南描述了每一个产品,还有很多其他的谷歌云产品,篇幅不超过 4 个字

学习使用所有这些产品就像是将不同的谷歌云产品拼在一起,你需要决定哪些部分最适合在性能、实用性和成本效益之间取得合理的平衡。

3.为什么选择专业化?

如果你在专业上朝着数据工程的方向发展(有很好的理由这么做),这个问题的答案很明显。

如果您想知道为什么要在云上进行,那么无运营/无服务器的自动化承诺可能会非常有吸引力。

此外,如果你是数据分析师、数据科学家或领导这种类型团队的人,如果你想了解云+人工智能+数据结合在一起时创造的可能性,这种专业化将与你非常相关。如果这符合你的特点,我推荐你去看看专业学院的以下 3 门课程:

4.回顾

4.1 关于专业化的基本信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

twinsfischUnsplash 上拍摄的照片

**难度:**与其他 Coursera 编程课程相比,难度属于中等水平,因为你实际上并不需要调试代码。

**时间承诺:**和上面的原因一样,如果你想的话,你可以相当快的完成六门课程。但不建议把所有课程都挤在一两周内。最好给自己一些时间来吸收这些概念,并边走边练习。

成绩:通过测验和实验需要 80%或更多的分数,但是你可以尝试多次。最终结果不包含数字或字母等级(只是及格)。

必备知识:

  • SQL 了解数据库管理/提取-转换-加载/大数据的概念和术语
  • 基本命令行
  • 脚本语言基础知识(部分实验室使用 Python)

熟悉一般云(虚拟机、存储等。)和机器学习概念也很有用,尽管入门课程将帮助您快速掌握这些概念。

基础知识足够。在上述任何领域都不需要深厚的专业知识。

4.2 有什么好的?

  • 高质量的生产和易于跟进的材料,在课程和不同部分之间自然流动。
  • **2020 更新内容,**包括一些仍在 alpha 中的酷功能。
  • 良好的平衡概念实践方面的**。**
  • 所有课程中都有大量的动手实验和演示。
  • 关于各种工具和技术如何随时间演变的背景和观点
  • 所有内容要么是 SQL 要么是 Python(不需要 java 编程,这使得课程更具包容性**)。**
  • ****提示和技巧如何降低账单,尤其是针对 BigQuery

4.3 缺少什么?

  • 编写代码的机会越来越多,随着进展,实验室通常会变得更加自主。
  • 更多活跃论坛对话
  • 更多详细测验有助于更好地理解概念。
  • 更多的 TensorFlow ,至少是一个概述或者介绍。尽管 TensorFlow 是谷歌的一个标志性项目,但它实际上已经消失了。
  • 更多内容超出了构建机器学习模型所需的几行 SQL 代码。它还应该涵盖机器学习过程的基础知识、可能的陷阱以及评估结果的方法,以便数据工程师能够更自信地应用它。****
  • 更多关于服务成本的讨论以及与其他可用选项的比较。例如,“如果在课程之外进行,运行实验室的平均成本是多少?”

4.4 亮点

根据我的专业经验,以下是我个人关于谷歌云数据分析和工程的亮点:

1。BigQuery 的普遍存在

BigQuery 提供了比数据仓库更多的功能。它存在于每一门课程中,并与数据工程管道中的几乎每个阶段相联系。随着数据湖和数据仓库之间的界限变得模糊,传统的 ETL 开始看起来更像 ELT,它的地位可能仍然是中心。

2。多层次机器学习的可及性

通过像 BigQuery 和 BigQuery ML (一个集成到 BigQuery 中的框架)这样的产品,以及结合 AutoML预先训练的 ML API**,在机器学习的可访问性和可扩展性方面出现了一个新的现实。现在,开发人员、数据分析师和数据科学家可以从不同角度来研究机器学习。**

3。机器学习流水线的自动化

在第 1 点和第 2 点之后,通过人工智能平台上 Kubleflow 管道的管理体验,达到了下一个抽象层次。 Kubeflow pipelines 在完整的机器学习工作流程(数据预处理、特征工程、模型训练和部署)中协调 BigQuery 和 BigQuery ML 以及多个其他步骤,使可扩展和可重用的机器学习解决方案的生产成为可能。

注意:在本课程中,您只能感受到其中的一点点味道,但是无需管理 Kubernetes 集群就能实现这一点的前景无疑是充满希望的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面讨论的 Kubeflow、BQML、AutoML 和 ML APIs 代表了 Sara Robinson 金字塔中的不同抽象层次,它展示了 GCP 上可用的各种 ML 选项,以适应不同的用例及技能组合。

5.实用技巧

1。获得离线访问。

如果你想在离线状态下不受干扰地学习课程,同时建立一个包含所有相关内容的图书馆,你可以使用 Coursera-dl ,这是一个开源工具,可以自动下载所有可用的视频和幻灯片。

2。获取代码。

如果你没有时间完成整个专门化,但是你仍然希望看到例子和使用的代码,你可以在这个 GitHub repo 中找到实验室使用的所有代码——布局很像食谱库。

3。获取资源

每个实验给你 1.5-2 个小时的时间,这通常是绰绰有余的,剩下的时间可以用来试验谷歌云,而不需要从你的信用卡上收费。

将 GitHub repos 中的幻灯片、视频、演示、实验和代码结合起来,以一种对您有意义的方式进行组织。这样,你可以建立一个食谱库,帮助你解决一些常见的使用案例——非常有用,尤其是在课程结束后的第一步。

****4。1 个中的 2 个认证

你更喜欢你的最终证书上写着“GCP 的数据工程、大数据和机器学习”而不是“数据工程”吗?这两个专业实际上是相同的。唯一的区别是,数据工程专业包含一门额外的课程,旨在为专业考试做准备。一旦你完成了数据工程专业,你可以注册另一个,你将立即收到其他认证(没有额外的费用,也没有额外的课程或实验室)。

5。第一个月免费。

如果你没有赞助商,谷歌通常会通过 CloudOnAir 网上研讨会或其他促销活动提供第一个月的免费或大幅折扣——小心他们。或者,您也可以在购买课程前对其进行编辑(在您注册时寻找此选项,因为它可能不太明显)。无论如何,如果你考虑到在离线环境中提供的相同内容的价格可以超过 2000 美元,那么这笔钱是非常值得的。

6.后续步骤—认证考试

专业考试成功秘诀

本部分提示由认证工程师 Suraj Pabari 提供。

通过专业的 6 门课程当然不能保证你会精通这个主题。

完成专业学习并积累大量实践经验后,下一步可能是准备专业数据工程师考试。这是一个向你的客户和雇主展示你的经验的正式资格。

完成专科后如何准备考试?

以下是三个很好的建议:

**1.**理解为什么:在做练习考试题时,与其跳到‘感觉对’的答案,不如试着理解为什么答案可能是对的。例如,应该使用 BigTable 而不是 BigQuery 吗?在什么情况下可以使用 BigQuery?为什么不用谷歌云存储?浏览给出的所有选项,并尝试理解每个选项的适用范围。如果你犯了一个错误,试着理解你为什么错了,这样你就不会犯同样的错误两次。

2.用例研究:专门化包括一些有用的用例研究:回顾这些并尝试开发一个在给定约束条件下能够工作的基础设施。这将测试你的理解能力,也非常适用于你可能面临的潜在现实生活挑战。思考每个阶段的权衡,并提出选择。您还可以考虑与您合作的公司的需求,并尝试提出最合适的基础架构。

**3.**练习应用你的知识:确保你真正理解概念,给自己设定挑战,测试你是否能使用谷歌云产品完成挑战。Kaggle 有一些很棒的例子(也有笔记本答案)。思考公共数据源的有用示例:例如,您能否使用 BQML 来预测 COVID 案例数量和股票价格之间的关系,或者使用 Google Analytics 数据建立购买倾向模型。

关于额外的提示,我推荐查看 Panagiotis Tzamtzis 的博客文章Vinoaj Vijeyakumaar 的幻灯片

另请注意,截至 2020 年 5 月,官方谷歌云认证专业数据工程师学习指南已有印刷版本。

7.后续步骤—更多建议

或者,您可以跟进数据跟踪的另一个专门化,例如从数据到洞察使用 TensorFlow 的机器学习。一些主题,如 BigQuery 或 AI 平台,在这些其他专业中有更深入的讨论。

另一个选择是追求深度而不是广度,专注于你发现与你自己的工作最相关的数据工程的各个方面,同时也要意识到全貌。****

您可以关注与您在数据工程领域感兴趣的特定领域共享内容的社区和个人。

例如,如果你对 BigQuery 和 BigQuery ML 感兴趣,你会发现谷歌人 Lak LakshmananBigQuery 权威指南的作者和专业讲师,以及谷歌开发者倡导者 Felipe Hoffa (以及他的 BigQuery twitter 列表)和 Polong Lin 分享的精彩内容。

更多建议:

  • 查看 GCP slack 社区(有一个频道专门讨论#数据工程)。
  • 注册专业证书持有人的私人 Coursera 社区(通过所有课程后,您将收到 Coursera 的信息)。
  • 寻找当地的谷歌开发者社区,探索这些团体专门提供的培训选项。
  • 由于每周都会有产品更新,所以关注谷歌云博客或其他相关资源来保持更新是一个好主意(随着时间的推移,培训的某些方面会变得过时)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

练习你刚刚学到的东西。凯利·西克玛在 Unsplas 拍摄的照片

最后

对于任何想学习如何在谷歌云上设计和开发数据管道的人来说,数据工程专业是一个很好的选择。

无论你是想成为一名数据工程师,还是只想更好地了解这一令人兴奋的领域,我的建议是从某门课程的内容开始,感受一下它在实践中的样子。查看剩余课程的详细教学大纲,决定是否有一门或多门或者全部专业课程适合你。****

****非常感谢经验丰富的 GCP 开发者Suraj PabariPanagiotis Tzamtzis 对指南的贡献和反馈。

****特别感谢Mark Edmondson,他的开源软件和文章向我介绍了数字营销领域的 Google Cloud。

关于专业化或通往认证考试的道路,你有更多的建议吗?请在下面的评论区留下它们。

亚历克斯·帕帕乔治

我是营销分析和数据科学领域的独立顾问,帮助转化驱动型数字企业做出明智的营销决策。我在我的 博客 上,通过 Twitter LinkedIn分享我关于数字、营销和数据分析的故事。

** [## Alex Papageorgiou 营销分析顾问,前谷歌员工| www.alex-papageo.com | LinkedIn

www.linkedin.com](https://www.linkedin.com/in/alexandrospapageorgiou/)

我在 Medium 上发表的故事,你可能也会喜欢:

[## 用最新的维基百科探索人工智能、数据科学和机器学习的意义…

数据科学、机器学习和人工智能等术语已经在互联网上找到了它们应得的位置

towardsdatascience.com](/exploring-the-meaning-of-ai-data-science-and-machine-learning-with-the-latest-wikipedia-5fea5f0a2d46) [## 内核、点击和提升的树:第一届 Google Analytics Kaggle 竞赛集锦

我参加了上周结束的广受欢迎的谷歌分析竞赛。

medium.com](https://medium.com/innovation-machine/google-analytics-kaggle-competition-highlights-eaa046737ac4) [## 在 R 和 Python 之间选择:数字分析师指南

“R 还是 Python?一个数字分析师应该选择什么?

medium.com](https://medium.com/innovation-machine/choosing-between-r-and-python-a-digital-analysts-guide-b7103f80aa4e)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值