ShowMeAI人工智能工具笔记十三绝不原创的飞龙

在这个视频中,我们将研究编码器架构。一个流行的独立架构的例子是Bt,它是该类型中最受欢迎的模型。让我们先了解它是如何工作的。我们将使用一个小例子,使用三个单词作为输入,并将它们通过编码器传递。

我们检索每个单词的数值表示。例如,这里编码器将这三个单词“欢迎来到纽约”转换为这三个数字序列。编码器为每个输入单词输出一个数字序列。这个数值表示也可以称为特征向量或特征张量。

让我们深入研究这个表示。它包含每个通过编码器传递的单词的一个向量。每个向量都是所讨论单词的数值表示。该向量的维度由模型的架构定义,对于基础Bert模型,它是768。这些表示包含了单词的值,但在上下文中。例如。

分配给word2的向量不仅是两个单词的表示。它还考虑到周围的单词,这就是我们所称的上下文。它查看左侧上下文,即我们研究的单词左边的单词。在这里是“欢迎”这个词,以及右侧的上下文,这里是“纽约”这个词。

正如我们之前所见,这意味着单词的最终表示受到了序列中其他单词的影响。我们在这里不会深入这些细节,但如果你想更好地理解其内部机制,我们会提供一些进一步的阅读资料。

那么,什么时候应该使用编码器呢?编码器可以作为独立模型在多种任务中使用。例如,Bert,毫无疑问是最著名的变换器模型,是一个独立的基准模型。在发布时,它在许多序列分类任务、问答任务和掩蔽语言建模等方面处于最先进水平,仅举几例。

这个想法是,编码器在提取携带序列有意义信息的向量方面非常强大。然后,这个向量可以由后续神经元进行处理,以理解这些信息。让我们看看一些编码器表现出色的例子。首先,掩蔽语言建模或MLM。这是预测序列中隐藏词语和单词序列的任务。在这里。

例如,我们隐藏了“my”和“is”之间的词。这是Bert训练的目标之一。它被训练用于预测序列中的隐藏词。编码器在这个场景中特别出色,因为双向信息在这里至关重要。如果我们没有右边的单词“isSilva”和句号。

那么Bt几乎没有可能能够识别“name”作为正确的单词。编码器需要对序列有良好的理解,以便预测一个被屏蔽的词,因为即使文本在语法上是正确的,它在序列的上下文中也不一定有意义。正如之前提到的,编码器擅长进行序列分类。

情感分析是序列分类的一个例子。模型的目标是识别序列的情感。它可以用于评估分析时给序列打分(从一到五颗星),或对序列进行正面或负面的评价,这就是这里所展示的。例如,给定这两个序列。

我们使用模型来计算预测,并将序列分类为这两类:正面和负面。虽然这两个序列非常相似,包含相同的单词,但意义完全不同,而编码器模型能够抓住这种差异。

在pipelineplan函数内部发生了什么?在这个视频中,我们将看看当我们使用transformers库的pipeline函数时,实际发生了什么。更具体地说,我们将查看科学分析管道,了解它是如何从以下两个句子转化为积极和消极标签及其相应的分数。

正如我们在pipeline视频中看到的,管道中有三个阶段。首先,我们通过使用标记器将文本转化为模型可以理解的数字。然后,这些数字与模型进行交互,输出标签。最后,处理步骤将这些标签转化为分类和得分。

标记化过程包含几个步骤,首先,文本被拆分成称为token的小块。它们可以是单词、词的一部分或标点符号。然后,标记器会添加一些模型所期望的特殊标记。在这里,所使用的模型在句子的开头期望一个CS标记,在结尾期望一个s标记以进行分类。

这有点难以表达。我们实例化与检查点关联的标记,然后输入这两个句子。由于这两个句子的长度不同,我们需要对较短的句子进行填充,以便能够形成一个数组。这是通过标记器进行的,使用ytion,填充相等。通过truation相等。

我们确保任何超过模型最大处理能力的句子都会被截断。最后,returntensil选项告诉标记器返回一个由dochtensil构成的数组。查看结果,我们可以看到我们有一个包含两个键的字典。InputIDs包含两个句子的ID,其中填充的部分为零。第二个键attentionmask指示填充的应用位置。

至于tokenizer,使用newmodAPI和between方法。它将下载并缓存模型的配置以及预训练权重。然而,AutoAPI仅实例化模型的主体。即在去除预训练边缘后剩下的模型部分。

它将输出一个高维张量,表示句子的过去,但这对于分类问题并没有直接用处。这里的张量有两个句子,每个有16个标记,最后的维度是模型的大小,768。

在给我们的模型两个句子后,我们得到了大小为2x2的张量源。每个句子和每个可能标签的一个结果。这些输出还不是概率,我们可以看到它们的总和不为1。这是因为transformer库的每个模型返回logits。为了理解这些,我们需要深入挖掘管道的最后一步。

加上处理。为了将logits转换为概率,我们需要对其应用一个Cmax层。正如我们所看到的,这将其转换为正数,使它们的总和为1。最后一步是知道哪些对应于正标签或负标签。

这由模型配置的ID2lipold字段给出。第一个概率是索引0,对应于负标签,第二个索引1对应于正标签。这就是我们的分类器如何通过管道函数构建的,选择标签并计算vicos。

嗯。

它的类型是端到端功能。管道函数是Transformers库中最高级别的API。它将所有步骤聚合在一起,从输入到可用预测。我们使用的是管道的核心,但管道还包含所有必要的预处理,因为模型并不期望文本而是数字。同时还进行一些后处理,使模型的输出更易于人类理解。

让我们来看一下保罗在情感分析管道中的第一个示例。这个管道对给定的输入进行文本分类,并确定其是正面还是负面。在这里,它将正面标签归因于给定文本,置信度为95%。你可以将多个文本传递给同一个管道,这些文本将作为一个批次一起处理并传递给模型。

输出是一个与输入文本顺序相同的个体结果列表。在这里,我们发现第一个文本的标签和分数是相同的,而第二个文本的标签是负面的,置信度为99.9%。零样本分类管道是一种更通用的文本分类管道。

它允许你提供所需的标签。在这里,我们希望根据教育、政治和商业的标签对输入文本进行分类。管道成功识别出它更侧重于教育而不是其他标签,置信度为84%。接下来,我们的任务是文本生成管道,它会完成给定的提示。输出是带有一点随机性的,因此每次调用生成器对象时,生成的结果都会有所变化。

但还有更多模型可用,不仅仅是英语。让我们回到下一个生成管道,并用另一个模型distGPT2加载它。这个模型是由HuggingFace团队创建的更轻量版GPT2。在将管道应用于给定提示时,我们可以指定多个参数。

例如生成文本的最大长度,以及我们希望返回的句子数量,因为生成中存在一定的随机性。生成文本的目标是X2的推测,这是GPD2的目标。在这种情况下,我们询问模型两个最有可能的缺失单词的值。

并获得尽可能的数学或计算答案。任务转换模型的功能是对句子中的每个单词进行分类,而不是将整个句子视为一个墙壁。这方面的一个例子是命名实体识别。其任务是识别句子中的实体,如人、组织或地点。在这里,模型正确找到了人,sva。

获取非常简短的摘要也是Transers库可以通过摘要bike帮助实现的事情。最后,管道API支持的最后一个任务是翻译。在这里,我们使用在Mohub上找到的法英模型来获取输入文本的英文版本。以下是我们在本视频中探讨的所有任务的简要总结。Dravemymode。

SaattrinoEPA。所以Transforms库提供了一个TrainerAPI,允许你轻松地在你的数据集上微调变换模型。因此训练你的类,确保设置你的模型,以及训练IP参数。可以在任何类型的设置上执行训练,CPU、GPU、多GPU、TUus。还可以在任何数据集上计算预测,如果你提供了矩阵。

在任何数据集上评估你的模型。只要你提供了一个分词器或给定数据处理工具,你也可以安装最终的数据处理,如动态填充。在MRRPC数据集中调用API,因为它相对较小且易于预处理。

正如我们在数据集的视频集中看到的,或者我们可以提出。你在预处理期间不应用填充,因为我们将在数据处理之前使用动态填充。请注意,我们不执行重命名、移除ins的最终步骤,或者将格式设置为torchtensils。因此,训练器将通过分析模型签名自动为我们完成所有这些。

创建训练器之前的最后一步是定义模型和一些训练参数。我们在模型API视频中看到了如何做第一步。对于第二步,我们使用训练参数类,它只需要一个文件夹路径,结果和检查点将被保存,但你也可以自定义训练器将使用的所有参数学习率。

训练次数等。创建一个训练器并启动训练非常简单。这应该显示你的进度条,如果你在GPU上运行,几分钟后你应该完成训练。然而,结果可能会让人失望,因为你只会得到一个训练类,这并不能告诉你模型表现得如何。

这是因为我们没有指定任何评估的指标。要获取这个矩阵,我们首先将使用Preic方法覆盖墙评估集上的预测。它返回一个包含三个字段预测的名称,其中包含模型预测,labelIs,它包含你在那个时刻的标签,以及这里为空的矩阵。

我们正在尝试这样做。预测是模型对数据集中所有句子的预测结果,所以是一个形状为48乘以2的数组。为了将它们与我们的标签匹配,我们需要对每个预测取最大值,以知道预测的是哪两个类中的哪一个。我们用max函数来完成这个操作。然后我们可以使用数据集库中的矩阵。

它可以像加载数据集一样轻松加载,并且返回用于数据集的评估指标。我们可以看到我们的模型确实学到了一些东西,因为它的准确率为85.7%。为了在20个评估矩阵中进行监控,我们需要定义一个计算矩阵函数,但与之前的步骤相同。

需要一个名称来对标签进行预测,并且必须返回一个字典,以跟踪我们想要记录的指标。通过将周期评估策略传递给我们的训练参数,我们告诉训练器在每个周期结束时进行评估。在笔记本中启动训练将显示一个进度条,并在你通过每个周期时完成你在这里看到的表格。

如何实例化下面的transformers。在这个视频中,我们将看看如何从Transforms库创建和使用模型。正如我们之前看到的,TF照片模型Gla允许你从任何检查点即时创建一个所需模型。它将从库中选择正确的模型类,以即时创建适当的架构并加载所需模型的权重。

正如我们所见,当给定一个鸟类检查点时,我们最终得到一个TFB模型,GPT2也是如此。在后台,这个API可以接受E中的检查点名称,在这种情况下,它将下载并缓存配置文件以及模型权重文件。你还可以指定一个包含有效配置文件的本地文件夹的路径。

为了即时创建预训练模型,TFAutomodAPI将首先打开配置文件以查看应该使用的配置类。配置类取决于模型的类型,例如,GPT2或其他。一旦测试出适当的配置类,它就可以即时创建该配置,这是了解如何创建模型的蓝图。

它还使用这个配置类来找到适当的模型类,该类与加载的配置结合以加载模型。该模型尚未完成或处于模型之间,因为它刚刚用随机权重初始化。最后一步是从模型文件中加载权重。

要轻松加载来自任何检查点或包含配置文件的文件夹的模型配置,我们可以使用autoconft类。像Tfortomod类一样,它从库中选择正确的配置类。我们也可以使用与检查点对应的特定类。

我们可以创建一个具有与检查点相同架构的模型,该模型是随机初始化的。然后我们可以从头开始训练,制作任意数量的模型。我们还可以通过使用关键字参数来更改配置的任何部分。第二段代码实例化了一个具有10层而不是12层的随机初始化模型。

一旦训练完成,微调是非常简单的,你只需使用安全的假装方法。在这里,模型将保存在当前工作目录中名为Mybelttmodel的文件夹中。这样的模型可以通过形式之间的方法重新加载。要了解如何将此模型推送到头部,请查看推送视频。

是的。

让我们来看看基于子词的分词。理解为什么基于子词的分词有趣,需要理解基于单词和基于字符的分词的缺陷。如果你还没有看过关于基于单词和基于字符的分词的第一部视频。

我们建议您在查看此视频之前查看它们。基于子词的分词处于基于字符和基于单词的分词算法之间。其想法是在非常大的词汇量、较大量的超出词汇的标记以及在非常相似的单词之间丧失意义之间找到中间地带。

对于基于单词的标记和非常长的序列,以及基于字符的分词器的单个标记,这些算法依赖于以下原则。常用词不应被拆分成较小的子词,而稀有词应被分解成有意义的子词。一个例子是单词dog。我们希望我们的分词器为单词dog保留一个唯一的ID。

而不是将其拆分成字符DONG。然而,当遇到单词dogs时,我们希望我们的分词器理解,根本上,这仍然是单词dog,加上一个S,这稍微改变了意义,同时保持了原始想法。另一个例子是像tokenization这样复杂的词,可以拆分成有意义的子词。。

单词的根是token,iization完成根部,赋予其稍微不同的含义。,将单词拆分成两个token是合理的,将标记为单词开头的词根和标记为单词完成的附加信息的ization。

反过来,模型现在能够在不同情况下理解token。它将理解单词token、tokens、tokenizing和tokenizations具有相似的含义并且是关联的。它还将理解tokenization、modernization和immunization,这些都有相同的后缀,可能在相同的句法情况下使用。

基于子词的分词器通常有办法识别哪些标记是单词的开始,哪些标记是完成单词的。这里的token是单词的开始,hashhashization是单词的完成。这里的hashhash前缀表示iization是一个单词的一部分,而不是它的开头。,hashhash来自于基于单词peace算法的鸟类分词器。

其他标记使用其他前缀,可以放置在这里表示部分单词或单词的开始。有很多不同的算法可以用于基于子词的分词,而如今大多数模型在英语中取得了最先进的结果,都使用某种基于子词的分词算法。这些方法通过在不同单词之间共享信息,帮助减少词汇量。

你可以在多个环境中运行你的训练。可以是在CPU、GPU、或多个GPU上。分布在一台机器上有多个设备,或者甚至是多台机器,通常称为节点,配备多个设备。此外,还有新技巧可以让你的训练更快或更高效,例如混合精度和动态速度。每种设置或训练技巧都要求你以某种方式修改训练循环的代码,并学习新的API。

加速器专门设计让你对训练循环保持完全控制,并尽可能不干扰。只需在你的训练循环中添加四行代码,你就能展示训练循环视频中的示例。加速器将在第一张幻灯片上安装所有设置和训练技巧。

只需学习一个API,而不是10个不同的。更具体地说,你需要导入一个瞬时表加速器对象,它会处理特定设置所需的所有代码。然后,你需要将其发送到模型、优化器,以及你在准备过程中使用的内容。这是需要记住的主要方法。在这些设备上加速。

所以你不需要将批次放在你正在使用的特定设备上。最后,你需要将最后一行替换为加速器的反向损失。就这样。加速器还涉及分布式评估。你仍然可以使用经典的评估循环,例如我们在训练组视频中看到的那样,在这种情况下,所有过程都将执行完整评估。要使用分布式评估。

你只需适应一个评估循环,如此。这就是加速器或每次训练的方式。然后,你可以省略将批次放置在正确设备上的那一行。在将预测和标签传递给你的指标之前。

Ephase数据集库的快速概述。你可以F数据集库,这是一个提供API以快速下载许多公共数据集并预处理它们的库。在这个视频中,我们将探讨如何做到这一点。所以部分是通过loaddataset函数轻松完成的。你可以直接从其网站下载并缓存数据集,如果我拥有数据集集的中心。

这里我们从crewbenchmarkch获取我们的PC数据集。它是一个包含成对句子的集合,任务是确定配对。Lu数据集函数返回的对象是数据集字典,这是一种包含每个数据集切分的字典。

我们可以通过索引名称访问每个切分。这个切分是数据集类的一个实例,包含句子1、句子2、级别和IDX,以及规则。你可以通过索引访问给定元素。Uingphase数据库的惊人之处在于,一切都是安全地使用上层Sharo保存到磁盘的。

这意味着即使你的数据集庞大,你也不会耗尽内存。当这些语句在内存中请求时,访问数据集的一个切片就像访问一个元素一样简单。结果是一个字典,包含每个案例的值列表。这里是标签列表、第一句的列表和第二句的列表。

数据集的features属性为我们提供了关于其列的更多信息。特别地,我们可以看到它在这里提供了整数和标签名称之间的对应关系。0代表净等价,1代表等价。为了处理数据集的所有元素,我们需要对其进行分词。看看视频,预处理句子对以进行复习。

但你只需要将这两句发送给文档分词器,并附加一些关键字参数。这里我们指定最大长度为128,并将短于此长度的输入进行填充,长于该长度的输入则被截断。我们将所有这些放入分词函数中,可以直接通过map方法应用于数据集中的所有sps。只要函数返回字典对象。

map方法会根据需要添加新列或更新现有列。为了加快预处理,并利用分词器由rust支持的事实,感谢tickphase分词器的库,我们可以使用batch为true参数在自动化函数中同时处理多个元素。因为分词器可以列出第一句或第二句。

分词函数不需要从这里改变。你还可以使用多处理和map方法,查看下面的文档链接。完成后,我们几乎准备好进行训练。我们只需使用removecolumns方法移除不再需要的列。

在这个视频中,我们将看到如何加载和微调一个预训练模型。过程非常快。如果你看过我们的管道视频,我会在下面链接,过程非常相似。不过这次,我们将使用迁移学习并进行一些训练,而不仅仅是加载模型并直接使用,就像我们在管道视频中所做的那样。

如果你想了解更多关于迁移学习的内容,而你对此了解不多,你可以去看一下“什么是迁移学习”的视频。我会在下面链接。但现在,让我们看看这段代码。首先,我们选择要使用的模型。在这种情况下,我们将使用著名的塑料Bt。但这行代码到底是什么意思呢?

这个TF自动模型用于序列分类,这意味着什么呢?好吧,TF代表Tensorflow,其余部分是指如果语言模型还没有序列分类头,就将其添加上去。所以我们要做的是加载Bt,这是一种通用的语言模型,没有序列分类头。我们将使用frompretraineded方法,这个方法确保我们所有的权重都来自预训练模型。

除了我们将要添加的新序列分类头外,它们并不是随机初始化的。所以这个方法需要知道两件事。首先,它需要知道你想加载的模型的名称。其次,它需要知道你的问题有多少个类别。如果你想跟随我们数据集视频中的数据,我会在下面链接。

那么你将有两个类别,正类和负类,因此nu标签等于2。但是这个编译的东西呢?如果你熟悉Caris,你可能已经看过这个。如果没有,这是Caris中的核心方法之一,你总是需要在训练模型之前编译它。编译需要知道两件事。

首先,损失函数,基本上是我们想要优化的内容。在这里,我们导入稀疏分类交叉熵损失函数。听起来复杂,如果你以前从未遇到过。但这是任何进行分类任务的神经网络的标准损失函数。它基本上鼓励网络输出大的值。

这样对于正确类别的概率会很大,而对于错误类别的概率则很小。注意,你可以像我们在这里对optr所做的那样,以字符串的形式指定损失函数。但这里有一个常见的陷阱。默认情况下,损失函数假设输出是来自softmax层的概率。

但我们模型实际输出的是softm之前的值。这些通常被称为逻辑值或逻辑量。你在关于管道的视频中见过这些。如果你搞错了这一点,你的模型将无法训练。而且搞清楚为什么会非常麻烦。实际上,我甚至敢说,如果你从这个视频中什么都不记得。

请记住,始终检查你的模型是否输出逻辑值或概率,并确保你的损失设置与之匹配。这将为你在职业生涯中节省很多调试的麻烦。否则这些问题将很难追踪且非常烦人。但撇开这一点,编译所需知道的第二件事是你想要的optr。在我们的案例中,我们将使用atom。

这是现在深度学习的标准优化器之一。你可能想要改变的唯一一点是学习率。为此,我们需要导入实际的optr,而不是仅仅通过字符串调用它。就像我们之前处理损失时做的那样。不过我们可以在另一个视频中讨论这个问题。

现在我会在下面链接这个,先试着训练模型。那么,如何训练模型呢?

好吧,如果你以前用过Kais,这一切对你来说都会很熟悉。但如果没有,让我们看看我们在做什么。Fit几乎是Kais模型的核心方法。它告诉模型将输入分成批次,然后进行训练。所以第一个输入是令牌化文本。你几乎总是会从一个令牌器中获得这个。

它们对应于样本的类别。就这样。所以如果你在跟随我们数据集视频中的数据,只有两个类别。因此这将只是一个零和一的向量,但你可以根据自己的问题拥有更多的类别。一旦我们有了输入和标签,我们对验证数据做同样的事情。

我们以元组的形式传递验证输入和验证标签。如果我们想指定训练的批量大小等细节,就可以这样做。然后你只需将整个内容传递给model.dotfit,放手去做。如果一切顺利,你应该会看到一个小的训练进度条,随着损失的降低而下降。

还有一些更高级的careis功能,比如调度的学习率。我们可以得到更低的损失,因此模型会更准确。此外,当拟合完成后,我们该如何处理训练好的模型。这些都是我将在视频中探讨的主题,还有更多内容。

你应该看到一个类似于以下的模型。在所有者输入框中,你可以输入自己的命名空间或你组织的任何命名空间。模型名称是将用于识别你模型的标识符。最后的选择是在公共和私有之间。公共模型对任何人可访问。

这是你用来向世界展示你的模型的页面。稍后我们将看到如何完成它。第二个是文件和版本。你的模型本身是一个Git库。如果你不知道什么是gett库,可以把它看作一个可以进行版本管理的文件夹。

首先让我们开始向库中添加文件。通过网页界面可以使用“添加文件”按钮来添加文件。添加的文件可以是任何类型,Python、文本,随你选择。在你添加文件及其内容的同时,你还应该为你的更改或提交命名。通常。

结果发现我有一个可以用于情感分析的模型。我会简单地将内容复制到这个文件夹中。这包括模型权重、配置文件和分词器到存储库。我可以用Gitadd命令跟踪这些文件。然后,我开始进行更改。

返回到网页界面的文件和版本选项卡时。我们现在可以看到新增的提交和更新的文件。我们在这里看到两种将文件添加到存储库的方法。第三种方法在关于pushush到HubAPI的视频中探讨。

该视频的链接在描述中。不幸的是,我们模型的主页仍然非常空。让我们添加一个readmemarkdown文件来稍微完善一下。这个readme被称为模型卡,它与模型和分词器文件在模型存储库中的重要性不相上下。它是模型的核心定义,确保了社区成员的可重用性和结果的可重复性。

好的,我想我们可以开始了。所以一如既往,欢迎大家。如果你有任何问题,可以在聊天中询问,Le会在这里帮助我。这是课程的第四章,也是最后一章。这与之前的三章有所不同,这一章会让你更深入地了解如何使用平台以及如何利用HuggingFace的所有功能。

这是今天的快速议程,首先我们将稍微了解一下平台。然后展示如何使用现有的预训练模型,接着如何将模型推送到hub,包括使用pushtoHub方法和HuggingFace客户端命令行界面。然后我们会谈谈模型卡,最后我们会展示一些不是课程一部分的额外内容。

关于女孩的问题。所以是的,Cohub你在前面的章节中已经稍微使用过了。它是一个中央平台,使任何人都能发现、使用和贡献新的最先进的模型和数据集。它托管各种各样的模型,目前有超过10,000个公开可用的模型,我们现在可以检查一下它的数量,目前有11,000个可供任何人使用的公开模型。

所以Hub支持模型和数据集,在这一章我们完全专注于hub的模型方面。因此,hub中的模型不仅限于HuggingFace的transformers,甚至不限于自然语言处理。还有来自Flare和ALP的NLP模型,语音模型。

这里有asteroid和Pnote,还有一些视觉模型,这只是其中的几个。如果你想查看hub中支持的所有模型,这就是HuggingFace。你可以访问资源。在这里,你可以去模型hub。在左侧,你可以查看库。在这里我们有支持库的完整列表,以及它们根据不同特性支持的程度,所以显示了phasetransformers。

但也有适配器变换器,所有NLP,asteroid,SPNe,Flare,bynote。中心变换器,Spacey,TensorflowTTS,和Team。所以这些模型作为Git仓库存在,因此如果你之前使用过GitHub,这对你来说将非常简单。在hub上使用模型意味着将其开放给所有社区成员。

这使得模型对任何想要轻松使用它的人都可用。反过来,这将消除或需要自己运行模型的需求,并简化模型的共享和使用。此外,hub还有一个叫做推理API的功能。因此,当你将模型上传到Hub时,将自动部署一个托管的推理API,允许你或社区中的任何人直接在网站上尝试该模型,视频会展示更多的内容,但你可以先了解我所说的内容。

我想我们在第一章已经做了一点这个。但是如果你打开一个存储库,在这里你可以在朋友API中托管,所以你可以尝试这个查询。如果你点击计算,这是一个填充掩码模型。它会预测应该放入那里哪些单词。因此,生活的目标就是生活。好吧,这并不太好,但你明白我的意思。

在这个视频中,我们将讨论HuggingFace模型的导航。这是HuggingFace的官方网站。要访问模型中心,请点击右上角的模型选项卡。你应该面对这个网页界面,可以分为几个部分。在左侧。

你会找到可以用来定制模型搜索的类别。第一个类别是任务。平台上的模型可以用于各种任务。这些包括自然语言处理任务,如问答或文本分类,但不仅限于此。其他领域的任务也可用。

比如说计算机视觉中的图像分类或语音中的自动语音识别。第二个类别是库。平台上的模型通常共享三种基础架构之一:PyTorch、TensorFlow或JAX。然而,还有其他基础架构,如Rust或Onyx。最后,这个选项卡还可以用来指定模型来自哪个高层框架。

这包括变换器,但不局限于此。模型中心用于托管许多不同框架的模型,我们也在积极寻求托管其他框架的模型。第三个类别是数据集选项卡。从这个选项卡选择一个数据集意味着过滤出那些在特定数据集上训练的模型。

第四个类别是语言选项卡。从这个选项卡选择一种语言意味着过滤出能够处理所选语言的模型。最后,最后一个类别允许选择与模型共享的许可证。在右侧,你会找到可用的模型。模型默认按下载排序。点击一个模型时,你应该看到它的模型卡。

模型卡制作得越精细,其他用户就越容易利用你的模型及其应用。在模型卡的右侧是推理API。这个推理API可以直接与模型进行交互。请随意修改文本并点击Comp,查看模型对你输入的反应。

好吧,我觉得这非常简单。也许让我稍微扩展一下某些要点,让你们有所了解。但是如果你现在点击部署加速推理,你将获得这个代码片段,以便你可以在Python中进行请求,但这并不仅限于Python。这就像一个普通的API调用,因此你可以使用JavaScript或任何你使用的语言。

然后在右侧,如果你点击使用transformers,你会得到一个可以使用的代码片段。但正如我们之前讨论的,这并不限于transformers。所以,如果你转到母版页面,在左侧,你可以点击这里的加号,这里可以看到所有支持的库。例如。

如果我们转到句子transformers,将过滤出所有句子transformers。这里的代码片段将发生变化,因此例如,这里的代码片段特别针对这个库,这样就与他们的库实现了非常好的集成,如果你在这里点击计算,这将是很好的。

用于句子相似性,因此你会得到一个源句子,然后是目标句子。你将获得源句子与其他句子之间的距离。这样可以了解它们的相似程度。因此,对于这个模型,最接近的表达是“一个快乐的人”与“一个非常快乐的人”,这样是有意义的。这里有一个问题,我们能否使用基于关键字的搜索来寻找特定任务的模型?

是的,好的问题。所以这是如何使用和浏览hub。让我们快速讨论一些你可能已经熟悉的内容,因为你在第一和第二章中做过。假设我们对一个可以执行填充掩码的法语模型感兴趣。好的,我来去掉这个,所以我们说填充掩码。你选择了法语。

我们可以使用这个commface,通常你应该阅读描述。模型卡以理解这个模型的用途以及是否存在任何偏见或限制。我们将在几分钟后详细讨论这个。好的,所以有三种不同的使用模型的方法。

所以第一个就像我们在第一章做的那样。我们使用管道。这是一个非常高层次的功能,从transformers导入pipeline,只需指定。我们要解决的任务是什么,也就是填充掩码?我们指定了名称。gunmemberbirdbase。正如你所看到的,我们得到了一个预测。

你也可以使用特定的模型架构来加载模型,这与第二章中的做法类似。这是一个commembird模型,它有一个commembird架构。你可以导入commemered组织者和用于掩码语言模型的commembird。如果你去GitHubTransformers源代码中的Transformers模型,你会看到。

你可以看到在Transformers库中实现的所有架构,确实有很多。因此,通常建议使用Auto类来组织和自动模型,因为这些是架构无关的。这样你就不需要担心具体的架构。

让我简要回顾一下管道,这我认为是重要的。你需要确保所使用的模型和检查点是适用于这个任务的。比如说你想使用文本分类。模型并不是为此训练的,所以这当然没有意义。

它会给你输出,但会抱怨。它会说你可能需要在下游任务上训练模型,就像你在第三章中做的那样。而且,这里的预测几乎没有意义。好的,所以这没什么新鲜的。但我认为更有趣的是下一部分。

这就是如何共享预训练模型。因此,这大概是课程第一部分的最后两个视频。第一个视频将向你展示如何管理一个仓库以及如何上传文件。通过命令行界面,第二个视频将展示如何使用推送到中心的方法。这里有三种不同的操作方式,一种是网页界面,一种是使用transformers或命令行接口的codingFhub,第三种选项是推送到中心的API。

你应该面对一个类似于下面的模型。在所有者输入框中,你可以放入你自己的命名空间或任何组织的命名空间。模型名称是将用于标识你模型的标识符,最终选择是公共或私有。公共模型对任何人可访问。

这是推荐的免费选项,因为这使得你的模型易于访问和共享。只有你的命名空间的所有者可以更新和更改你的模型。更高级的选项是私有选项。在这种情况下,只有命名空间的所有者才能查看你的模型。

其他用户将不知道它的存在,也无法使用它。让我们创建一个虚拟模型来玩。模型创建后,接下来就是管理这个模型。有三个选项卡可供选择。你现在看到的是第一个,即模型卡页面。这是你用来向世界展示你的模型的页面。

我们稍后会看到如何完成这个。第二个是文件和版本。你的模型本身就是一个git仓库。如果你不知道什么是git仓库,可以把它想象成一个包含可以版本控制的文件的文件夹。如果你从未使用过Git,我们建议查看这个视频描述中提供的介绍。

除了Git,我们还使用GitLFS,这代表Git大文件存储,以便管理大型模型文件。首先,我确保在我的系统上正确安装了Git和GitLFS。安装Git和GiLFS的链接在视频描述中提供。然后,我们可以通过在本地克隆库开始工作。我们有一个包含单个文件的库。

我们刚刚通过网络界面添加到库的文件。我们可以编辑它以查看该文件的内容并更新它。原来我有一个可以用于情感分析的模型。我会把内容复制到这个文件夹中,包括模型权重。

配置文件和分词器已添加到库中。我可以通过gettadd命令跟踪这些文件。然后,我提交更改,并为此提交命名为“添加模型权重和配置”。,最后。我可以将新的提交推送到huggingphasedotco远程库。。

当返回到网络界面的文件和版本选项卡时,我们现在可以看到新添加的提交及更新的文件。我们在这里有两种添加文件到库的方法,第三种方法在有关推送到HubAPI的视频中探讨。

此视频的链接在描述中。不幸的是,我们模型的主页仍然非常空荡。让我们添加一个READMEMarkdown文件,让它看起来更完整。这个README被称为模型卡,它的重要性不亚于模型和分词器文件,是模型库的核心定义,确保其他社区成员能够重用并复制结果。

每个用户都有一个令牌,保存在本地,然后在您推送文件时保存到服务器。后端确保您对特定文件的访问权限,因此如果您是某个组织的成员,并且您推送模型或创建报告。

你总是需要的。你的令牌将是请求的一部分,但这是针对任何请求的,因为我们需要知道是谁在发起请求。如果这不是很清楚的解释,或者如果你指的是其他令牌而不是身份验证令牌,请告诉我。好的,那么让我给你展示最后一个视频,然后如果你觉得可以,我们就开始编写代码。

让我们看看每个API的推送。在录制这个视频之前,我提到过坏模型和给团队MPC。我们这里不讨论查找引擎的代码,因为你可以在任何转换器教程中找到它,或查看下面的视频链接。

我们这里感兴趣的是训练完成后发生了什么,以及我们得到了令我们满意的指标。这个视频要求你在Eingfeaz.go网站上注册一个账户,并且要将你的音频上传到该网站存储。这可以通过在终端输入EringfaceCLIlogin,或在Coab笔记本中使用感叹号这样做。

如果你使用的是普通的Jupiter笔记本,这个命令将无法工作。因此,如果你使用的是Jupiter并且没有终端访问权限,你需要从Ugingfeest.go网站复制你的访问令牌到训练参数中。稍后我会告诉你确切的位置。完成后,

pushAPI将会向Eingface推送我们的模型、其配置和关联的分词器。要在训练者内部使用它,你必须确保在训练参数中将push设置为true。我们可以为库指定一个模型ID。如果不做任何说明,它将默认为输出的名称。

只要我们是该组织的成员,就可以推送到该组织。这是你的Eingfeaz账户应该用来操作的地方,如果你需要的话。不管怎样,一旦完成,我们可以在训练结束后调用训练者的push函数。在未来的开发中,我们将增加在每个epoch结束或每隔一定步数自动推送到应用程序的功能。

并查看所有文件是否已添加。一个模型卡,模型的配置。模型权重,绑定运行的吨数,以及作为分词器所需的所有文件。训练者起草了一个模型类,包含了评估集上的最终结果,训练输出参数和中间训练结果。

还有其他框架。如果我点击编辑模型卡以查看原始内容。我可以看到训练者还生成了一个元数据表,Ugingfaceco网站将使用该表来正确应用字段到我的模型。我还可以通过点击此处的训练指标直接访问模型中心的tonawboard运行。现在模型在欧洲,我们可以通过frombetween方法从任何地方使用它。

我们只需使用E中的标识符,就可以看到模型配置和权重被自动下载。我们可以像使用任何变换模型一样使用这个模型,例如,通过在管道中读取它。由于MRPC数据集是一组平行句子的集合,其任务是确定两个句子是否相互对应。

我们使用它,并通过步骤将两个句子分开。看到它预测标签为零有点令人失望。这是因为我在创建模型配置时没有指定任何标签。用pushureAPI修复这个问题非常简单。首先,我们可以通过将标签设置为a并将8设置为带有适当值的标签来本地修复配置。

然后我们可以通过推送到方法把修复的配置推送到我们的reportpo。再次请返回提交的URL,我们可以检查并查看配置的具体内容。请注意,命令执行得非常快,因为我使用的是之前的同一个本地文件夹,而我的报告已经克隆过了。一旦完成,我们就创建一个新的管道。

我们可以看到新的配置自动下载,这得益于构建人员系统,我们得到了新的标签。我们还可以直接在模型卡上玩模型。通过更改我使用的文本并点击Comp。我只需稍等一下,模型就会加载到推断API并显示结果。当模型加载后,我们可以再次检查,确认在Weget上得到的结果与之前相同。

今天试着把你的模型推送到VPA上。好的,是的。回到IamHols关于认证令牌的问题,现在我看到这个例子,我觉得我更明白你的问题来自哪里了,所以通常当你进行Hoging阶段的清晰日志记录时,你的认证令牌会被存储在缓存中,然后你就不需要再做了。

所以模型tokenrs,是的,你说的就是这样。如果你先做前三行。它将推送模型文件和tokenizer文件。非常好的是,如果你使用TraAPI。好的,现在我正在获取神经元,让我快速一下。嗯。好的,这是新的。好的,让我再试一次。诶。与此同时。

让我给你展示一个通过训练API上传的示例,如果你跟随Piytorch教程的第3章,你会非常熟悉,所以只需指定pushtoH,你将获得一堆非常好的东西。因此,你会得到一个描述,你会得到lossaccuracy或其他指标。你会得到占位符部分,可以稍后完成。

你将获得在训练过程中使用的所有训练超参数。你将获得一张很不错的表格,显示每个epoch的训练结果。你还会得到框架版本。这对于可重复性非常有用。除此之外,还有一个非常好的功能,就是托管的Tensorbird在中心。

所以如果你在仓库中有tensorboard的痕迹,并且不限于hogenphasetransformers。就像可以是任何tensorboard的痕迹,你将自动获得一个tensorboard供你使用,在这里你将能够查看矩阵。

我没有决策,找不到仓库。嗯。好的,这有点麻烦。我觉得我的电脑在同时处理直播时有点吃力。是的,期间。如果你还想指定一个组织,你可以这样做,就像我们之前讨论的那样。如果你想的话,你也可以指定一个Token。

好的,另一个选项是使用Hook阶段。我不知道。Doganer。推送到她。好的。报告是自动创建的,因为它之前不存在。让我们看看文件是否仍在上传。诶。是的,通常不会这么久。我不确定这是我的电脑还是现在有任何连接问题。

所以如果你只是基本上在拥抱。ReipplegradeDoit2。它通常会为你创建一个记录。诶。?

这也告诉你如何克隆它。这类似于Listen制作的第一段视频。在这里你可以做到。是的,比如正常的事情,例如,你可以创建一个模型卡。这是一个正常的马拉松文件,所以这是一个测试。你可以获取它。你可以执行它。当你提交时。是的,你会得到这里,这就是测试,这就是我在模型卡中写的内容。

你可以查看所有文件。你可以查看仓库的历史。是的。正如你所看到的,有一个提交是在14秒前。我进行了这个更改,所以这非常好,因为如果你只是使用GitHub的工作流。你可以用这个创建分支,例如。

你也可以非常容易地恢复更改,所以这个人来说非常好。え。是的,好的。那么回到之前的分词器。在我看到推送到Hub的地方。如果你去文件和版本,你可以看到文件现在已经上传。诶。一。所以让我快速检查一下历史。是的,我觉得那里有一些连接错误。

正如你所看到的,实际上模型和分词器都已经上传,所以这很好。诶。那么,诶。主机阶段基础设施通常对变换器所做的是分析配置。配置指定了一些像架构这样的东西。是的,这种东西,基于此,它已经告诉你这是一个电影面具模型。

这是一个kberg模型,它是变换器,使用byytor。这一切都基于文件和配置,你可以在这里看到。托管推理API。你需要等待,尤其是第一次,你需要等待模型在后台加载。如果你想部署,可以在加速推理API中使用这个,尽可能多地进行。

对。玩一个模型,你可以很容易地将其整合到自己的产品中。好吧。是的。这是对她的推动。好的,我们回到命令行界面。就我认为。糯面都咩啲。是的。现在我们没有任何东西,对吧?我们还没有创建模型卡。

像正常的Github工作负载,你可以执行getclone。然后是名称。所以现在,例如。我已经有。这个repo只是下载了Briy,它是唯一的文件。gate属性也在那里,但它是一个隐藏文件。所以。你不会看到它,除非你指定隐藏文件。正如Leandra在视频中提到的。

但正如你所看到的,我的电脑在处理icestream时遇到了一些困难,所以有点慢。抱歉。给给送包。如果你现在查看Domit2,你已经可以看到所有文件。所以我们进入仓库。如果你执行gistatus,这是正常的gi,你会看到,好的。这些文件都是要添加的,它们不是对的你。所以如果你执行Gi。

好的,最后一部分有点不同,是关于如何构建模型卡的。我们已经看过几个模型卡,简单回顾一下,模型卡就是这个文件。这非常重要。它解释了模型,确保它可以被社区其他成员复用,并提供了一个平台,让其他成员可以在其上构建他们的成果。

记录训练和评估的过程有助于其他人了解模型的期望。此外,它还将提供关于使用的数据、预处理和后处理的充分信息,以确保了解模型的限制、偏差和不适用的上下文。

模型可以被识别和理解,因此如果你上传一个没有任何内容的模型卡,没人会使用它,因为他们不知道这个模型是做什么的。相反,如果你有一个非常好的模型卡来解释它的功能、训练方式、目的以及限制和偏差,这将对其他人非常有用。此外,正如我们将看到的,你可以添加一些特殊的元数据,使你的模型更具价值。

让社区其他成员能够发现。因此,正如我们所见,这只是一种节奏。如果你对此更感兴趣。模型卡的概念源自谷歌的一个研究方向。该论文名为《模型卡用于模型报告》,作者是MargaretMitchell等。这篇论文包含了许多非常有用的信息。

因此我们推荐你去看看。有一些我们推荐的部分。模型描述、预期用途和限制、如何使用限制和偏见、训练数据、训练过程和评估结果。这些不是严格要求的,我们不强迫任何特定部分。因此,模型卡片确实有很大的灵活性。

这里有一段解释这些部分的段落。我认为你可以自己阅读,但更有用的是快速浏览一下。快速浏览一个非常好的模型卡片。这是基于BERT的案例。可能到现在为止你对这个报告有些厌倦了。

所以它有几句话来解释模型以及它是如何引入的。嗯,是的。然后它有一个模型描述,解释模型的高级概述。它是如何训练的,目标是什么。模型学习了什么,比如说,模型学习了英语的内部表示,可以用来提取特征。

对于下游任务非常有用。因此它还有一个预期用途和限制的部分。所以是的。它告诉你可以将其用于大规模语言建模或下一个句子预测,但这个模型的意图是针对下游任务进行微调。你还可以在这里获取类似的代码片段。虽然现在使用部分是关于使用transformers的。

你也可以直接点击这里使用transformers,并从这里加载。是的。然后它向你展示如何在PyTorch和TensorFlow中操作。这里实际上有一个错误。这是针对TensorFlow的,它应该只是BERT模型,这里应该是theBERTmodel。但你明白这个意思了。然后有一个限制和偏见部分,这非常有用。

我认为这非常重要。所以我们就来读一下,即使这个模型使用的训练数据可以被描述为相当中性,这个模型仍然可以进行预算预测,这与我们在第一章结束时所做的管道非常相似,因此人类的工作及预测都是律师。

服务员、侦探、医生。正如你所看到的,女性的职业是护士、服务员、助理。所以你可以看到,这个模型有一些偏见,正如这里提到的,以及我们之前看到的。这种偏见也会影响这个模型的所有精细版本。因此,重要的是如果你选择一个模型,你需要理解这些偏见,因为这些偏见很可能也会转移到你自己的模型中,特别是在下游任务中。

抱歉,当你进行微调时。它还解释了训练数据,训练是如何进行的。包括预处理、预训练、评估结果的表格。最后,是的。如何引用它。模型卡片非常灵活。嗯,是的,让我快速展示一下。元数据。所以在顶部,人们可以添加有用的元数据,例如你可以指定语言是什么。

许可证是什么?在需要模型时使用了哪些数据集?你也可以添加任意数量的标签,这样人们就可以在这里点击“专家”,找到所有带有该标签的模型。如果你想了解更多关于元数据的信息,可以去资源页面。Mugelhotduck。然后你可以在这里搜索。我们有几个关于元数据的部分。

但这个链接特别有一个模型卡的示例以及其结构。你可以查看你拥有的语言、许可证、你想要的文本。所以,比如说,你可以用这个来指定第三方库或特定任务、数据集、指标。此外,你还可以添加特定的指标,这些指标可以稍后由其他管道处理。

你还可以访问图。信息。来自Hub的信息。所以,比如说,如果你想获取所有针对特定库的模型,让我实际展示一下。这将返回相当多的信息,而不是实际模型。假设在电影掩码中,我认为这样会更清楚。所以这将向后端发起调用。

这将返回关于所有字段掩码的所有信息。正如你所看到的,Hub上有1000A掩码填充模型。所以,让我给你展示一下第一个项目。正如你所见,模型名称是AlbertbasedV1,它给你所有的标签。它还告诉你这个模型报告的任务是什么。

所以社区里有一个人正在上课,他们决定实际创建一个HuggingFace数据集,收录Hub上的所有模型,所以这非常不错。如果你想进行模型探索等,这就像是一个任何人都可以进行的项目。

假设这是一个上下文管理器,也许我们先解释一下代码。Hoganphasehook有这个类,它是repository,允许你在特定目录中克隆一个仓库。所以我刚做了Do3。如果我错了,它会克隆,是的,从我这里。这是一个上下文管理器。

所以,这是我的第一部手机。嗯,好吧。这是一个。我是说。这部分网格对不起,打开文件作为文件blablah。这个可以是任何东西,不仅限于文本文件,你可以做任何伟大的事情,所以你可能对此非常熟悉。唯一的新事物是这个grper与repodotcommit我的第一个文件。

到目前为止,你已经拥有了很多工具来进行微调,例如针对特定任务的文本分类。因此,你现在可以在中心搜索一个有趣的数据集。在中心,你可以去数据部分,搜索有趣的数据。你可以在一个分类项目,文本分类项目上工作。这非常简单。

在这段视频中,我们将研究解码器架构。一个流行的仅解码器架构示例是GPT2。为了理解解码器的工作原理,我们建议查看有关编码器的视频,它们与解码器非常相似。解码器可以用于大多数与编码器相同的任务。

尽管通常会有一点性能损失。让我们采用与编码器相同的方法,试图理解编码器和ID解码器之间的架构差异。我们将使用三个单词的小示例。我们将它们传递通过解码器。我们为每个单词检索数值表示。这里,例如。

解码器将三个单词“welcometoNYC”转换为三个数字序列。解码器为每个输入单词输出恰好一个数字序列。这种数值表示也可以称为特征向量或特征张量。让我们深入探讨这种表示。它包含每个通过解码器传递的单词的一个向量。

我们会看到这个向量绝对不受“NYC”一词的影响。这是因为右侧的所有单词,也称为单词的右上下文,都被掩码处理。解码器只访问单个上下文,可能是左上下文或右上下文,而不是从左右两侧的所有单词中受益。

掩码自注意机制通过使用额外的掩码来隐藏单词两侧的上下文,与自注意机制有所不同。单词的数值表示不会受到隐藏上下文中单词的影响。因此,何时使用解码器就显得重要,解码器和编码器一样可以作为独立模型使用。由于它们生成数值表示,因此可以应用于各种任务。

然而,解码器的强大之处在于单词仅能访问其左上下文。仅能访问左侧上下文,使其在生成文本方面天生优秀,能够根据已知单词序列生成单词或单词序列。这被称为因果语言建模或自然语言生成。

这是因果语言建模如何工作的一个例子。我们从一个初始单词开始,即“my”。我们将其作为解码器的输入。模型输出一个数字向量,这个向量包含关于序列的信息,在这里是一个单词。我们对这个向量进行小的转换,使其映射到模型已知的所有单词。

这是一种映射,被称为语言模型头。我们确定模型认为最可能的下一个单词是“name”。然后,我们将这个新单词添加到初始序列中。从“my”开始,我们现在的序列是“myname”。这就是自回归方面的体现。。

自回归模型将过去的输出重用作为输入,接下来的步骤也一样。我们再次进行相同的操作。我们通过解码器处理该序列,并提取出最可能的下一个单词。在这种情况下,是单词“is”。我们重复这一操作,直到感到满意。从一个单词开始,我们现在生成了一个错误的句子。我们决定在此停止。

然后从选择中选择横条形图。这将从我们选择的字段生成横条形图。通过拖动课程轴上的一个字段来调整条形的大小。这完成了我们的第一个视图。点击添加工作表按钮以创建另一个工作表。首先。

我们需要将食品ID转换为度量。右键单击食品ID字段,然后点击转换为度量。这会将食品ID字段变为绿色,这意味着它已被转换为度量。接下来,点击食品ID,然后按住控制键选择“个人资料”。

然后导航到“显示我”按钮并选择树图。这将从我们选择的两个字段生成树图。你可以进一步根据树图中的框调整标签或字段的大小。进入标签卡,选择字体大小,然后点击应用进行更改。

简单易用的界面让分析师能够高效地处理数据。为了这节课,我们将探索Tableau的直观界面,并学习每个部分的功能,解释你在使用该平台时会遇到的关键术语。

打开TableauPublic后,我们同意从这个窗口的起始页面开始。我们可以打开最近创建的工作簿,通过连接到数据源创建一个新工作簿,或探索来自社区的Tableau内容。该页面由三个不同的窗格组成:连接、打开和发现。最右侧是发现窗格,通过这个窗格。

你可以通过点击缩略图左上角的固定图标在起始页面上固定工作簿。固定的工作簿将始终出现在你的起始页面,这在你经常使用特定工作簿时非常有用。要将其从起始页面中移除,请点击缩略图上的X按钮。起始页面的最后部分是连接窗格。

插入文件后,它将引导我们进入数据源页面。数据源页面允许用户建立数据连接、混合数据、过滤数据,并对字段或列进行基本调整。该页面由四个主要区域组成:左侧窗格、画布、数据网格和元数据网格。

左侧窗格显示已连接的数据源及其详细信息,数据连接部分下方是平面文件的文件名,适用于数据库连接。所列出的将是数据库或模式。通过下拉菜单,你可以编辑当前连接、删除或重命名。连接下方是可用工作表的列表。这里有订单、退货和用户,这些是我们之前插入的Excel文件中包含的工作表。

左侧窗格的左边是操作按钮。撤销、重做和保存Tableau徽标,显示启动页面,刷新按钮将在数据源页面右上方刷新数据源,画布有两个层。但首先,让我们将订单工作表和返回工作表拖入画布并应用它们的数据关系。

这是画布的逻辑层。在这里,你可以创建逻辑表之间的关系。要显示画布的另一层,双击其中一个表或工作表。这将显示一个新窗口,即画布的物理层。在这里,我们可以在表之间添加连接和并集。

当我们讨论如何使用多个数据源时,我们将了解更多。画布下方是数据网格。它显示了我们指示的连接或文件中的前1000行数据。我们可以用它对数据源进行一般修改,例如排序和隐藏字段、重命名、改变数据类型以及创建新的计算字段。接下来。

点击数据网格左上角的列表图标以查看元数据网格。此窗格显示所选表中的所有字段,它们的表名和远程字段名。接下来,点击页面下方选项卡上的工作表1以导航到tableau工作区。tableau工作区是我们创建图表时主要待的地方。

在这个选项卡中,我们有工作表选项卡,你可以创建一个新的工作表。显示或隐藏工作表的部分,并查看其属性。工作表选项卡旁边是仪表板选项卡和故事选项卡,它们具有基本的仪表板和故事功能。由于我们当前正在编辑视图而不是仪表板或故事,因此大多数功能不可用。

接下来,我们有分析选项卡。它在执行视图分析方面具有额外功能,例如配置标记和标签。计算百分比,显示趋势线,并在其旁边应用预测,接下来是地图选项卡。地图选项卡设置地理可视化的选项。

地图选项卡之后是格式选项卡,该选项卡帮助用户调整或个性化可视化或视图的外观。我们可以编辑字体、对齐、阴影、线条和其他视觉属性。旁边的窗口选项卡让用户显示或隐藏工作区的某些部分,如工具栏、状态栏和侧边栏,同时可以放大视图以进行演示模式。

我们有帮助选项卡,包含指向Tableau支持社区的链接,以及语言和应用程序性能的设置。在功能区下方是工具栏,按钮根据当前工作表的内容而定,某些按钮在当前工作表不适用时会被禁用。与数据源页面相同,前几个按钮是链接到起始页面。

撤销和重做按钮,保存按钮旁边是新数据源按钮,您可以在此插入新的数据连接。旁边有三个工作表按钮,第一个用于创建新的工作表、故事或仪表板。其次是重复按钮,第三个是清除按钮,用于移除当前工作表上的所有内容。

工作表按钮之后是交换和排序按钮。交换按钮用于交换行和列。旁边是按升序和降序排序的按钮。之后是高亮按钮,可在工作表中启用高亮显示。创建组的组成员按钮,以及显示或隐藏标记标签的按钮。

旁边的固定按钮用于将图表的坐标轴固定在特定或动态范围内。旁边的下拉菜单用于适应视图。接下来是一个用于在页面上显示或隐藏卡片的下拉菜单。最后一个按钮是切换到演示模式。

Tableau工作区的左侧有侧边栏,包含数据窗格和分析窗格。数据窗格包括所有字段、集合和参数。您可以使用搜索栏搜索整个列表或按名称或数据源顺序排序。分析窗格允许用户对视图应用高级分析,例如常量线。

预测和参考线。中心画布是工作区域,展示我们的可视化。环绕工作区域的卡片和架子用于指示视图的放置和显示方式。列和行架构成图表的结构。字段被放置在这些架子上,以指示它是在标题上还是在坐标轴上。

筛选器架下是马克斯卡片。这是表格中视觉分析的关键元素。因为你可以通过将字段拖动到标记卡的不同视觉属性中来添加上下文和细节。让我们尝试创建一个视图作为示例。将客户细分拖入行架。这会在表格视图中创建四行客户细分值。接下来。

从数据面板中拖动利润字段,并将其放在行架中的客户细分后面。这将自动创建按客户细分计算利润总和的柱状图。现在,添加一个订单日期到列架。它将柱状图转换为折线图,因为我们添加了一个连续字段作为列。最后,将一个区域字段拖入标记卡并放在颜色上。

这将为每条线图设置区域粒度,每个区域由不同的线条和颜色分隔。页面架允许你将视图分解为一系列页面,以便更好地分析特定字段如何影响视图中的其余数据。

例如,让我们将订单日期从列架拖动并放到页面上。这会按订单日期的年份分隔视图,我们可以通过右侧面板上的控件翻阅每一年。右上角的“显示我”按钮允许用户通过突出显示可能的图表选择图表或视图类型。,带橙色轮廓的图表是为所示数据选择的最佳匹配。

工作区的底部有状态栏。它显示菜单项的描述以及有关当前视图的信息,如标记及其当前的行和列数。要在工作表之间组织和导航,你可以使用位于工作区右下角的工作表标签、胶卷条和工作表排序器的按钮。

第一个按钮是工作表排序器,它以缩略图的形式在单个页面上显示工作簿中的所有工作表。你可以在此视图中拖放缩略图以重新排序工作表。接下来是胶卷条。胶卷条在工作簿底部显示,展示工作表的缩略图。最后一个按钮是工作表标签。每个工作表将在工作流底部表示为一个标签。

现在,让我们导航到仪表板页面。点击新建仪表板按钮来创建一个。仪表板是多个视图的集合,让你可以同时比较多种数据。中心画布的默认白色背景将代表你的仪表板的外观。

在位于左侧的仪表板窗格中,有几个自定义仪表板的功能。第一个选项允许你设置仪表板的大小并显示或隐藏设备预览,可以切换以查看仪表板在不同屏幕分辨率下的外观。在按钮下方,你可以指定仪表板的范围、自动或固定大小。接下来是表单部分。

仪表板窗格旁边是布局。此窗格让你调整每个表单和对象的布局位置。以及其大小和填充。在这个窗格中,你还可以配置仪表板的边框和背景颜色,布局选项卡下是项目层次结构。

最后,让我们去故事页面,点击底部的新故事按钮以创建一个。中心画布将显示故事的外观。可以在左侧的故事窗格中设置其他配置。在故事窗格的第一部分是添加新故事点的选项。

你可以选择创建一个新的空白故事或复制当前故事。下面是可以插入到故事中的表单和仪表板列表。将一个表单拖入画布以将其添加到故事中,添加标题。我们可以双击顶部的默认文本框以编辑其内容。

如果你想在故事中添加额外的文本框,请从故事窗格拖动文本对象并放置到故事中的所需位置。故事标题位于故事画布的右上角。你可以通过双击标题进行编辑。如果选择隐藏它,你可以在故事窗格中取消选中显示标题选项。要编辑故事的大小,

点击故事窗格的大小部分下拉菜单。你可以选择设置固定大小、自动大小或范围。故事窗格旁边的布局选项卡允许你设置导航器的样式。导航器使你能够编辑和组织你的故事点。

我们在创建Tableau数据源连接时利用了数据源页面。让我们看看它提供的其他功能,这些功能可以帮助我们修改数据并为可视化做准备。首先,让我们查看左上角的连接部分。数据库部分列出了你已连接到Tableau的当前文件或数据库,具体取决于数据源。

此列表包含数据源的标题和数据连接的类型。你添加的第一个数据源将标记为蓝色。请注意,如果我们再添加第二个数据连接,新的连接将有不同的颜色标签。这是为了方便识别和区分每个独立连接。你还可以观察到在数据预览和元数据网格上应用的颜色方案,其中来自不同连接的选定工作表或表格将有不同颜色的标签。使用连接部分的添加按钮添加新数据连接,就像我们之前演示的那样。

要打开文件B或数据库连接菜单,在这里你可以选择新的连接。请记住,这里列出的连接列表并不代表工作簿中所有可用的数据源。这仅适用于工作表1数据源,如画布上的数据源名称所示。一个数据源可以始终包含一个或多个数据连接。

如果你希望删除已创建的数据源,请确保该数据源当前已被选中,如画布上数据源名称所示。然后在功能区的“数据”菜单中选择“关闭数据源”。除了数据源名称外,我们在画布右上角也有使用单选按钮的连接类型。

你可以选择使用提取连接或实时连接到你的数据源。默认情况下,Tableau将连接类型设置为实时。实时连接意味着它与底层数据直接连接。实时连接提供了实时更新的便利,数据源中的任何更改都会自动反映在Tableau中。

但是实时连接也依赖于数据库进行所有查询。因此,它并不总是优化为快速性能。您的数据查询速度将仅与数据库本身一样快。工作簿的速度也可能受到您的网络速度、流量和任何自定义SQL的影响。具有实时连接的复杂工作簿也可能对一些传统数据库造成压力。提取。

另一方面,提取是针对聚合优化的数据快照,加载到系统内存中以便快速回调进行可视化。当您使用提取连接类型时,Tableau会创建一个TDE或Tableau数据提取文件。当您从本地文件(如CSB或Excel工作簿)或本地数据库创建提取时,您通过优化加快了工作簿的速度。因此。

Tableau不需要数据库来构建可视化。相反,Tableau的内存数据引擎直接查询提取。提取通常比实时连接快,尤其是在具有大型数据集、过滤器和计算的复杂可视化中。

由于提取已嵌入,因此即使在离线状态下也可以使用您的数据源。这种连接类型的一个缺点是数据需要刷新才能接收来自原始数据源的更新。如果您的数据结构有太多行和列,提取刷新可能会变得缓慢。

在画布中选择提取连接类型将显示两个新按钮,以编辑和刷新当前提取。点击编辑会打开一个新窗口,您可以设置提取数据的存储方式。定义过滤器,汇总数据,并选择要包含在提取中的行。在连接类型之后是添加过滤器的部分。在您的数据。

这将根据您指定的过滤器减少数据源中的数据量。数据源过滤器在您发布工作簿或数据源时,对于限制用户能够看到的数据非常有用。当您将数据源发布到Tau服务器时,数据源及其任何关联的文件或提取都会移入服务器。

在发布数据源时,您可以定义下载或修改数据源的访问权限,还可以选择能够通过Tableau服务器远程查询该数据源的用户和组。在数据源页面上点击添加按钮将打开一个新窗口,您可以在其中添加、编辑和移除应用于数据源的过滤器。要添加新的过滤器,点击添加按钮,然后选择一个字段作为过滤器基础。一旦您选择了字段。

现在,您可以通过从列表中选择可用值来指示过滤器值,设置通配符,指示条件或通过字段或公式的顶部记录进行过滤。数据源页面上的另一个实用功能是数据解释器。数据解释器通过检测标题、脚注来帮助您清理数据。

它甚至可以检测到额外的表和子集,以便你可以独立处理数据的一个子集。例如,这里我们有一个字段名称未被Tableau识别的CSB文件。我们通过勾选工作表列表上方的数据解释器复选框来启用数据解释器,观察数据如何变化。这样,F1到F5列现在已被以前在第二行的正确字段名称替换。

它还将国家名称的数据类型从字符串更改为地理类型。要查看数据解释器所做的所有更改,可以点击查看结果,这将输出一个Excel文件,列出使用原始数据副本的变化,并带有颜色编码的单元格。

数据解释器功能并不总是适用于所有数据集。如果数据已经处于Baau可以解释的正确格式,它将不会在数据源页面显示。具有超过2000列或超过3000行的文件将不会被数据解释器处理。

如果数据解释器所做的修改不足,你可以随时使用数据面板中的功能进行基本的数据格式化。例如,让我们继续使用我们通过数据解释器清理的CSV文件。由于列处于宽格式,我们需要以一种方式透视数据,使年份在一列中,数值在另一列中,以便于可视化。

为此,选择将被透视的字段。在这种情况下,我们将选择2001到2004列。点击2001,同时按住键盘上的Shift键,然后点击2004列以选择这三列。然后右击鼠标,在菜单中选择透视。

这将使用选定的数据创建两个新列,字段名称将作为透视字段名称,透视字段值。现在,你只需重命名它们。要重命名一列,选择一个并点击其下拉按钮,选择重命名功能,然后输入新的列名称。

你也可以通过双击字段名称并输入新字段名称来重命名字段。如果你希望恢复原始文件名称,请点击列的下拉菜单并选择重置名称。除了重命名功能,你还可以应用排序。将鼠标悬停在特定字段名称上,直到排序按钮出现在右侧。

点击排序按钮一次将数据按升序排序,如图标所示。再次点击排序将其排序为升序和降序。第三次点击排序按钮将移除排序。正如我们在早期课程中讨论的,Tableau会根据一系列常用模式自动分配数据类型给数据。

这些数据类型在数据面板和元数据视图中以图标的形式显示。要更改字段的数据类型,点击数据类型图标并从菜单中选择新的数据类型。应始终观察正确的数据类型,因为它将决定可以应用于该字段的可视化、计算和功能。你还可以使用数据平面上的功能将字段拆分为单独的列。

点击串联字段的下拉菜单,选择拆分功能。默认情况下,Tableau使用空格作为分隔符将其拆分为两列。如果你想指定符号作为分隔符,可以在字段下拉菜单中使用自定义拆分功能,选择自定义拆分功能。这将打开一个新窗口,你可以在其中指示特定的分隔符或定界符,以及将从第一列、最后一列或整列拆分的列数。

最后,我们有别名功能。别名是维度中成员的替代名称,以便它们在视图中以不同的标签出现。要创建别名,选择字段并点击菜单中的下拉菜单,选择别名。这将显示一个新窗口,列出所选字段上可用的所有成员或值。要创建别名,请在值列下重命名别名。这样,Tableau将使用别名作为图表标签中可见的值。

但是你仍然可以在数据平面上看到其原始值。请注意,别名仅为离散维度创建,因为这些类型的数据具有有限的值。此功能不适用于连续字段和度量。我们学到的基本格式化功能都在Tableau内部完成。

这些都不适用于原始数据源。数据库部分列出当前连接到Tableau的特定数据源下的文件或数据库。这列出了数据源的标题和数据连接类型。你添加的第一个数据源将被标记为蓝色。

请注意,如果我们为其添加第二个数据连接,新的连接将有不同颜色的标签。这是为了便于识别和区分每个独立的连接。你还可以观察数据预览和元数据网格上应用的颜色方案。

导航到你想要替换或编辑的连接,然后单击其下拉按钮。选择编辑连接以打开文件浏览或数据库连接菜单,在这里你可以选择新的连接,如果你希望删除已创建的数据源。

确保源当前被选中,如画布上数据源名称所示,然后导航到功能区的数据菜单并选择关闭数据源。除了数据源名称外,我们在画布的右上方还有连接类型,使用单选按钮。

默认情况下,你可以选择使用或提取连接到数据源。Tau将连接类型设置为实时,选择画布中的提取连接类型将显示两个新按钮,用于编辑和刷新当前提取。单击编辑会打开一个新窗口,你可以在其中设置提取数据的存储方式。

发布数据源时,你可以定义下载或修改数据源的访问权限。你还可以选择哪些用户和组可以通过Tableau的服务器远程对该数据源发出查询。单击数据源页面上的添加按钮将打开一个新窗口,在那里你可以添加、编辑和删除应用于数据源的过滤器,以添加新过滤器。

单击添加按钮,然后选择一个字段作为过滤器的基础。一旦你选择了字段,现在可以通过从列表中选择可用值来指示过滤器值。设置通配符,指示条件或根据字段或公式按顶部记录过滤。

数据源页面上的另一个便捷功能是数据解释器。让我们通过勾选工作表列表上方的数据解释器复选框来开启数据解释器,并观察其如何改变数据。这样做后,F1到F5列现在已被原来的适当字段名称替换。

在第二行,它还将国家名称的数据类型从字符串更改为地理类型,以检查数据解释器所做的所有更改。你可以点击查看结果,这将输出一个Excel文件,列出使用原始数据的更改,并带有颜色编码的单元格。

在创建视图时,你应始终从一个将通过可视化回答的问题开始。你想知道今年的销售增长是多少吗?你可以将客户分为哪个类别?一旦你心中有了问题,就可以开始构思你的视图。

在TableauDesktop中创建视图有四种方法。首先是从数据面板拖动字段并将其放置到卡片和货架上。在这里,我们将销售度量拖动到颜色和标记卡中。然后我们将产品类别添加到标签中。完成后。

现在我们的视图中有一个树形图,矩形显示每个类别的销售额,并且根据销售额的多少进行颜色编码,从最少的淡蓝色到最多的深蓝色。如果你已经熟悉字段和卡片的位置如何影响可视化,这种方法非常适合使用。

创建视图的第二种方法是双击数据面板中的一个或多个字段。在这个第二个工作表中,双击维度字段邮政编码。这将执行查询以处理邮政编码并生成其纬度和经度。完成后,双击度量字段运费。

运费决定了在创建的符号图中每个点或圆圈的大小。如果你对使用的图表或图形类型没有特别要求,这第二种方法非常实用。因为Tableau会根据你选择的字段类型自动生成视图。第三,你可以通过选择数据面板中的一个或多个字段来创建视图。

然后使用“显示我”来设置图表。在此视图中,选择维度客户细分。然后按住键盘上的控制键并选择度量订单数量。一旦需要的字段被选中,导航到右上角的“显示我”按钮并选择水平条形图。选择图表后,Tableau会生成按客户细分分组的水平条形图,每个条的长度基于总订单。

使用“显示我”方法对于初学者来说非常好,可以让他们熟悉基于所选字段可用的图表类型。第四种方法是将字段拖入画布的字段拖放区域。将订单日期拖到列标题区域。一旦完成,将产品名称拖到行区域的最左侧。

正如我们从数据概念中讨论的那样。我们将数据分类为维度或度量,然后再进一步分类为离散或连续。让我们看看每种类型如何创建不同的图表。离散维度创建值的类别或组。例如。

我们在这个表格上有一根条形,标记了销售的总和。观察当我们添加一个离散维度时会发生什么。将产品类别拖到列架上。正如你所看到的,它使用产品类别将条形分成了三个,这是一种离散维度字段。

大多数情况下,维度被分类为离散,因为它们包含单独的、唯一的值。但例外的是日期数据类型字段。日期可以转换为离散或连续。让我们看看它在这个表格中的可视化效果。我们仍然使用销售作为度量值。

将订单日期拖到列架上,然后单击字段下拉并将其转换为连续。这会生成一个根据销售数据按年份自动排序的折线图。连续维度在可视化中创建一个数字轴。现在,让我们看看连续度量的外观。在我们创建的相同折线图上。

在行架上放置的销售数据设置为连续度量。正如你在图表的纵轴上观察到的,它创建了一系列值,从0到400万。度量大多被分类为连续,因为它们的值范围。但这并不意味着你不能使用离散度量。

让我们清除此表格上的项目并创建一个新图表。将产品子类别的离散维度字段拖到行架上。然后我们加入度量,拖动销售数据并将其放在产品子类别后的行上。请注意,由于这仍然是一个连续度量,它创建了一个条形图。

每行都有各自的轴。当我们将其转换为离散度量时,会发生什么呢?在销售字段的下拉列表中,将其设置为离散。由于转换,条形被替换为普通文本。离散度量在可视化中显示为标签或普通文本。创建视图时另一个重要的部分是标记卡。

标记卡提供了控制点或标记在视图中外观的能力。它可以为图表的标记应用不同的属性,从而增加附加的含义和细节。标记卡的第一部分是一个下拉列表,你可以控制在视图中显示的标记类型。默认标记设置为自动,Tableau会生成最适合数据的标记类型。

在此工作表中,我们在列中有一些销售额,在行架中有一些利润。由于这两个字段在架子中都是连续度量,Tableau会自动生成一种形状标记类型,以绘制这两个度量之间的总值。自动选择的标记类型符号在下拉菜单中可见。

当我们将销售总额更改为离散维度时,请观察变化。我们先移除销售总额的胶囊,然后拖入客户细分字段。现在每个值的标记设置为条形。标记卡的符号也更改为条形。将标记类型设置为自动将让Tableau根据我们拖入行和列架的字段类型选择标记。这并不意味着您不能根据自己的喜好更改标记。

如果您需要不同的视图,您总可以在列表中选择不同的标记类型。例如,如果我们将标记类型设置为区域,则可以轻松将此条形图更改为面积图。标记类型下方是使用不同颜色的颜色,让用户轻松区分视图中的不同标记。默认颜色设置为蓝色。

但您可以根据静态颜色自定义此项,通过从调色板中选择新颜色,或将字段拖到颜色卡中。例如,让我们将标记类型更改回条形,然后将客户细分字段从数据面板拖到颜色卡中。这为每个客户细分的条形应用个别颜色,以更改所使用的颜色。

您可以点击颜色卡并在新窗口中选择编辑颜色按钮。您可以从下拉菜单中分配不同的调色板,或使用当前调色板为每个细分选择新颜色。接下来,我们在当前条形图中有大小卡。这调整条形的宽度。您可以使用滑块增大或缩小标记的大小。与颜色一样。

您还可以通过将字段拖到大小卡上来设置动态大小。形状卡仅在卡片设置为散点图、符号图或圆形视图时可见。在此工作表中,我们有一个散点图,目前只有一个单一的点,显示总销售额与利润的交集。

让我们在形状卡中添加一个字段,看看会发生什么。将产品类别字段添加到形状卡中。在之前我们将离散维度指定为形状的指示器。单一的点现在根据维度的成员划分为三种不同形状的标记。

点击形状卡片将打开一个新窗口,您可以选择使用的形状或更改为不同的形状调色板。此外,Tableau在画布右侧提供了一个图例作为参考。另一种向视图添加单独标记的方法是使用详细信息卡片。将另一个维度拖放到详细信息卡片中会为视图添加另一个粒度级别。

例如,让我们将产品子类别添加到散点图的详细信息卡中。这会在网格中添加额外的产品点,但不会改变结构,并且点仍然通过形状卡分开。在形状卡上方是标签。简单来说,它决定了在视图中显示的标签或文本值。例如。

让我们继续处理这个散点图,并为每个点指示一个标签。从数据窗格中拖动另一个产品类别字段到标签卡。这为每个点添加了产品类别名称。点击标签卡时,可以使用额外选项更改字体颜色和标签对齐。

在处理类似于这个第四个工作表的表格数据时,标签被文本替换。它允许你将纯文本值插入表中。你可以通过点击文本卡并点击三个点打开文本编辑器窗口来向表中添加额外的字段或文本。在这个窗口中,你还可以设置字体、大小、样式和颜色。

表格中文本的对齐。最后,我们有工具提示。当你悬停在视图中的一个或多个标记上时,工具提示会显示信息。默认情况下,工具提示将包含我们添加到视图中的字段信息,例如列和行上的字段,以及用于标记的字段。

工具提示可以包含动态和静态文本,以在工具提示中添加字段信息。将字段拖入工具提示卡。例如,让我们将度量订单数量设置到工具提示中。将其拖动到工具提示卡中作为度量或维度的聚合值。

你可以通过点击工具提示卡编辑文本格式和排列。在Tableau桌面中创建视图的方式有四种。第一种是将数据窗格中的字段拖动并放置到卡片和货架上。在这里,我们将销售度量拖入颜色卡和标记卡。

然后我们将产品类别添加到标签中。这样做后,我们的视图中现在有一个树状图,显示每个类别带来的销售额,并且根据销售额从最少的浅蓝色到最多的深蓝色进行了颜色编码。

创建视图的第二种方式是双击数据窗格中的一个或多个字段。在这个第二个工作表中,双击维度字段邮政编码。这将执行查询以处理邮政编码并生成其纬度和经度。完成后,双击度量字段运费,运费决定了在符号图中每个点或圆圈的大小。

第三,你可以通过在数据面板中选择一个或多个字段来创建视图。然后使用“显示我”来设置图表。在此视图中,选择维度客户细分。然后在键盘上按住控制键并选择度量订单数量。一旦所需的字段被选择,导航到右上角的“显示我”按钮并选择水平条形图。

一旦选择了图表,Tableau会生成按客户细分分组的水平条形图,每个条形的长度基于总订单数量。第四种方法是将字段拖入画布的下拉字段网格。将订单日期拖入列标题网格。一旦完成,将产品名称拖入行网格,放在最左侧。

这显示了一个折线指示器。最后,添加字段利润作为值。因此,创建了一个文本表。请注意,这第四种方法仅限于表格视图。当我们创建视图时,学习标记卡也是另一个重要部分。标记卡提供了对视图中点或标记外观的控制。

它可以为图表的标记应用不同的属性,从而增加额外的意义和细节。标记卡的第一部分是一个下拉列表,您可以在其中控制视图中显示的标记类型。默认标记设置为自动,Tableau会为数据生成最佳标记类型。在此工作表中,我们在列中有销售总额,在行架中有利润总额。

由于架子上的两个字段都是连续度量,Tableau自动生成一个标记类型来绘制两个度量之间的总值。自动选择的标记类型符号在下拉菜单中可见。当我们将销售总额更改为离散维度时,请观察变化。

让我们删除销售总额药丸并拖入客户细分字段。每个值的标记现在设置为条形。标记卡的符号也更改为条形。将标记类型设置为自动,让Tableau根据我们拖入行和列架的字段类型选择标记。如果需要不同的视图,你始终可以在列表中选择不同的标记类型。例如。

我们可以轻松地将这个条形图更改为区域图。如果我们将标记类型设置为区域。在标记类型下是颜色,使用不同的颜色,让用户能够轻松区分视图中的不同标记。默认颜色设置为蓝色,但你可以根据静态颜色自定义,从调色板中选择新颜色。

或通过将字段拖入颜色卡。例如,让我们将标记类型更改回条形图,然后将客户细分字段从数据面板拖入颜色卡。这为每个客户细分的条形图应用了不同的颜色。接下来,我们有大小卡。在当前的条形图中,这会调整条形的宽度。

你可以使用滑块来增加或减少标记的大小。形状卡仅在设置为散点图、符号图或圆形视图时可见。在这个表中,我们有一个散点图,目前只有一个单一的点,显示总销售额和利润的交集。

在详细信息卡中添加另一个维度会为视图增加一个粒度层级。例如,让我们将产品子类别添加到散点图的详细信息卡。这会在网格中添加额外的产品点,但不会改变结构,点仍然通过形状卡按形状划分。

形状卡上方是标签,简单来说,它决定了在视图中显示的标签或文本值。将另一个产品类别字段从数据窗格拖入标签卡。这为每个点添加了产品类别名称。最后,我们有工具提示。工具提示是在视图中悬停在一个或多个标记上时出现的信息。

Tableau产品套件由几款软件组成,可以分为两个部分,开发工具。用于创建图表或视图,以及生成报告,连接或合并数据并形成仪表板。TableauPrep。

让我们从开发工具开始。TableauDesktop允许用户创建视图和仪表板,并允许用户自定义报告。它有多个功能,允许用户进一步改善他们的可视化,并且还可以连接并执行简单的数据合并。它主要由目前在分析和报告领域工作的专业人士使用。

TableauDesktop有两种类型,基于其连接和发布选项。TableauDesktop专业版可以完全访问所有数据源和数据类型。专业版还允许你通过Tableau服务器在线共享你的仪表板。另一种版本是TableauDesktop个人版。

与专业版相比,TableauDesktop个人版限制更多。它仅能连接平面文件,例如Excel和CSV,且其仪表板不能发布到Tableau的服务器上,但你可以将工作簿保存在本地或发布到TableauPublic网站。

TableauPublic是免费的版本,仍然可以让你创建和自定义仪表板。你可以用它连接平面文件,但无法连接实时数据库。与TableauDesktop个人版相比,它不允许你将工作簿保存到本地,但你可以将创建的仪表板发布到TableauPublic网站。

它也有100万行的限制。这个版本最适合想要尝试产品并探索数据分析的初学者。在本课程期间,我们将利用TableauPublic。TableauPrep是一个自助数据准备工具,提供了一种直观且直接的方式来组合、整理和清理数据。它由两个产品组成。

TableauPrepBuilder和TableauPrepConductor。TableauPrepBuilder为你的数据分析提供了一个完整的视图,允许你组合、整理和清理数据,以准备可视化。它有三个协调视图,可以让你查看每个字段或列的行级数据概况以及整个数据准备过程。TableauPrepBuilder还允许你连接到本地或云中的数据。

另一方面,Tableauprepconductor让您可以安排、监控和管理数据流。数据流可以发布到Tableau服务器或TableauOn,管理员可以安排何时运行以及何时更新数据,并监控计划的流。

现在,让我们来看看在从开发工具创建工作簿或仪表板后可以使用的共享工具。Tableaureader是一款免费的桌面应用程序,允许最终用户查看打包的工作簿或提取数据源的仪表板。

它还提供了核心许可选项,允许访客访问。它允许创建和维护多个站点,而无需额外费用。配置用户和权限。TableauOn是Tableau服务器的托管SaaS版本。仪表板和数据将保存在Tableau组提供和维护的服务器上。

TableauServer和TableauOn都可以与TableauMobile一起使用。TableauMobile是一款在iOS和Android上均可用的免费应用程序,可以让您随时随地访问和监控仪表板和KPI。它经过优化,以便快速直观地访问数据。它具有交互式预览。

这会在您连接到服务器时下载您喜欢的工作簿,以便您可以稍后访问,即使在离线状态下。由于Tableaudesktop针对移动布局进行了改进,您可以在较小的移动屏幕上以清晰可读的格式查看仪表板。。

理解数据概念和正确的结构对高效使用Tableau平台至关重要。与您非常熟悉的数据一起工作,可以让您正确可视化并突出您的分析。让我们开始学习应该使用哪种数据结构。

Tableau最适合格式化为表格的数据,类似于电子表格。即数据采用垂直格式,字段名称位于列的标题中,而数据值则放置在行中。知道这一点后,数据分析的初学者可能会问,如何区分是行还是列?一行或记录包含数据值。

1条数据记录意味着表格中的一行水平行。例如,在这个超市销售的Excel文件中,行中的每条数据对应单独的记录。而列则是表格中的单个字段或垂直组。

在这个表中,我们有客户名称列和城市。每列的标题或标签称为字段名称,以避免混淆。只需记住,列是垂直的,行是水平的。有些数据源可能采用宽格式,例如这个难民统计数据集。

另一个问题是值没有自己的字段名称或上下文。由于数据采用宽格式,每行代表不同的国家,列显示年份值,因此我们没有任何指示来说明阿尔巴尼亚的数字76、26和2001所对应的内容,以解决此问题。

我们可能需要在将数据导入Tableau之前将其重新塑造成高格式。在这种格式下,我们现在有国家名称、年份和难民数量作为每行的字段名称。使用这个数据集进行分析要容易得多,因为每个字段现在代表数据的独特特性。

重新塑造数据集时,有一些额外的检查项。确保顶部没有多余的标题。前两行对Tableau理解数据源至关重要,因此最好删除插入在正确字段名称上方的标题和标题。删除数据集中的“总计”。Tableau可以自动为您计算总数。

因此,保留这些总列是没有必要的,可能会导致重复计算。最好使用传统格式的日期字段,而不是转换为年份、月份或其他日期聚合的格式。Tableau可以自动聚合日期,因此使用传统格式可以更有效地解锁日期字段的全部功能。

现在,让我们看看Tableau如何读取和分类字段。你可能会注意到,在将Tableau连接到新数据源时,每个字段名称上方会出现一个符号。这些符号表示每一列的数据类型。数据类型对给定字段中的数据进行分类,并提供有关数据应如何格式化的信息。

解释以及可以对这些数据执行哪些操作。例如,数值字段可以进行数学运算,而地理字段可以进行地图映射。ABC图标用于文本或字符串字段,如客户名称和产品类型。

最后,我们有Gbe图标,它指的是地理字段,如邮政编码和国家。当你创建新视图时,所有这些字段及其相应的数据类型图标也会列在数据窗格中。这些字段随后会被Tableau分类为维度或度量。维度有蓝色数据类型图标和蓝色胶囊。

维度包含定性值,意味着它们无法测量,而是被描述。维度通常是城市或国家、眼睛颜色、类别、团队名称等。你可以使用维度对数据进行分类、分段并揭示细节。此外,维度会影响视图中的详细程度。度量包含数值。

在数据平面中,维度默认首先列出,后面是通过一条线分隔的度量。为了显示维度和度量之间的区别,我们将在此表中创建一个显示每个产品类别销售情况的条形图。将销售字段拖入行架上。由于销售具有数值,因此被视为度量。

正如我们所见,Tableau自动使用默认聚合度量(求和)对其进行了聚合。聚合是将值聚集成一组,以便将其作为整体进行可视化,而不是使用每个单独的值。由于聚合方法设置为求和,我们现在可以看到柱状图标记为总销售额,接近1500万。我们将在本课程的后续学习中了解更多不同的聚合方法。

接下来,我们来看看维度如何影响这个可视化。我们将产品类别字段添加到列架上。由于产品类别字段是一个维度,它将数据分为三个产品类别。你还可以将产品类别小药丸移动到颜色标记卡中,以按颜色对柱状图进行分段。

Tableau根据维度和度量是离散还是连续来以不同方式表示数据。离散值是单独分开的,彼此不同,因此只能包含某些可计量的值。例如,不同类型的产品是离散的。每个产品的销售也被视为离散的。

在这个柱状图中,我们有一个利润的连续度量和一个订单日期的离散维度。正如你所见,图表没有X轴线,因为订单日期的年份被设置为离散或独特的年份值。年份被视为每个柱子的标题或标签。现在,让我们将其与这个使用相同数据的第二个图表进行比较。在这个折线图中,我们仍然使用利润的连续度量。

在使用多个数据源时,您可能会遇到术语“关系”和“连接”。这两者都将来自多个表的数据结合在一起,但功能并不相同。数据关系是一种动态、灵活的数据结合方式。可以把它想象成表之间的一个合同。Tableau使用该合同从这些表中提取数据,以构建包含适当连接的查询。

关系没有前期的连接。您只需设置匹配字段来定义关系。该关系在数据源画布的逻辑层中可见,其中一条灵活的线连接或显示表之间的关系。

在上下文感知的Tableau中,它会自动选择基于可视化中使用的字段的连接类型。在分析过程中,Tableau智能地调整连接类型,并保留数据的原生细节级别。您可以看到可视化中字段的细节级别的聚合,而无需考虑底层连接。

Tableau建议将关系作为结合数据的首选方法,因为这使数据准备和分析变得更简单、更直观。当您绝对需要时可以使用连接,例如在明确使用特定连接类型或使用支持共享维度的数据模型时。

许多领先行业使用Tableau将现代商业智能应用于他们的系统。Tableau是一个视觉分析平台,成立于2003年,源于斯坦福大学的一个计算机科学项目,旨在改善分析流程,并通过可视化使数据对人们更易于获取。

它目前是增长最快的数据可视化工具之一,功能强大、易于使用,并且可以轻松集成。Tableau已连续九年被Gartner评选为分析和商业智能平台的领导者。

它还可以处理大量数据,而不会影响仪表板的性能。它的仪表板具有响应式设计,可以让你在多种手持设备上查看和操作,例如手机和平板电脑。Tableau可以帮助扩展你组织中使用的数据的频率、深度和多样性。最重要的是,Tableau的可视化分析能力不需要编程技能。

它提供了对业务运营的历史、当前和预测视图,将原始数据转化为可操作的洞察。商业智能工具分析数据集,并使用报告、摘要、仪表板、图形、图表和地图呈现其发现,以向用户提供有关业务状态的详细情报。商业智能的关键目的在于支持企业最终用户评估当前的业务状态,并促进更好的商业决策。

它还可以用于创建收入分析和比较销售表现。人力资源可以实施BI进行工资追踪,同时获得员工满意度的洞察。财务部门也可以通过商业智能帮助进行费用管理。

他们可以利用BI工具进行财务规划和分析。投资于一个可靠的BI战略和系统有助于提高高管对流程的可见性,因为他们可以使用实时数据在仪表板上主动做出决策。使用有效的可视化方法突出洞察,使他们能够快速理解数据,而不是浏览数页年度报告来评估业务。这也有助于衡量和监控新活动和流程的有效性。

BI使企业能够获得关于业务的详细洞察和分析。这些数据帮助他们识别风险和制约因素,以及不利于业务增长的元素。BI系统还推动日常流程的效率,例如自动处理和提取数据。

许多领先行业使用Tableau将现代商业智能应用于他们的系统。Tableau是一个可视化分析平台,成立于2003年,源于斯坦福大学的一个计算机科学项目,旨在改善分析流程,并通过可视化使数据更易于人们获取。

在早期的课程中,我们已经识别了连接和关系方法的不同。这两种方法在组合来自一个数据源的多个数据连接时应用。但是,如果我们需要来自不同数据源的数据呢?

Blens与关系或连接不同,数据从未真正结合。相反,blends独立查询每个数据源,结果被聚合到适当的级别。然后,结果在视图中以视觉方式呈现。因此,lenses可以处理不同的细节级别,并且它们与发布的数据源协同工作。例如。

在这个工作簿中,我们有两个数据源。第一个是客户数据源,包含客户信息。第二个是交易数据源,包含交易信息。这两个数据源都有客户ID字段,但细节级别不同。如果顾客多次在商店购买,交易数据源中可以包含多个客户ID。

主要数据源将始终是视图中使用的第一个数据源。例如,在这个视图中,我们将客户ID作为行架上的第一个字段,因此客户数据源被标记为sheet1的主要数据源。在数据窗格中,主要数据源的名称上会有一个对勾。

让我们在这个视图中提供blend。点击交易数据源,然后选择总金额度量字段,将其设置为视图中的文本值。这样一来,就创建了blend,并将交易数据源标记为次要数据源。次要数据源的名称在数据窗格中会有一个橙色对勾指示器。

请注意,在交易数据源的客户ID字段中有一个红色链条图标。这意味着Tableau自动将客户ID作为主要和次要数据源的连接字段。如果字段在两个数据源中具有完全相同的名称,它将自动设置为连接字段,以使blend工作。

连接字段的值必须具有相同的值或成员。您可以通过导航到数据菜单并点击编辑blend关系来编辑连接字段。新菜单让您指定哪个数据源将被设置为主要源,以及将用作链接的字段。如果连接字段处于活动状态,它将以红色链条标记,表示它当前在视图中使用。

如果字段未被使用,将被替换为灰色断链图标。观察如果我们移除客户ID并将其替换为出生日期会发生什么。在这样做后,数据面板中的客户ID字段现在显示为灰色链条图标。它还移除了数据源之间的链接,因此表格中的值变为单一值。

这是汇总金额。灰色链条图标也作为标记,表明该字段可以作为链接字段使用。让我们点击该图标以建立链接字段。一旦激活,正确的值将显示在表格中。在借用数据时,主数据源定义了我们创建的此表格视图的汇总方式。

总金额,最初是按订单或交易汇总的,现在已汇总到客户级别,显示每个客户ID支付的总金额。次要数据源将仅限于那些与主数据源有对应匹配的值,因此在客户数据源中没有记录客户ID的客户将不会包含在视图中。

这个过程类似于传统的左连接,但两者之间的主要区别在于应用汇总的时机。连接是在应用汇总之前先组合数据,而混合则是在组合数据之前先进行汇总。

在Tableau版本2020.01及更早版本中,采用了一种更高效的方式来使用关系组合数据。关系是推荐的组合数据方式,尽可能使用,并且只有在前者不可用时才应使用混合。

之前,我们提到混合类似于左连接。作为复习,连接是在数据源页面的物理层面上应用的。你需要建立一个特定字段用于连接和特定的连接类型。让我们看一下可以在Tableau中应用的不同类型的连接。

让我们看看内连接在这个电影数据源中的应用。该数据连接有两个表。第一个是电影标题,包含六条记录,并包含电影信息和类型。第二个表是导演和投票表。

其中有六条记录,包含导演姓名、平均投票和总投票数。两个表都有标题ID字段,我们将在应用连接时使用。打开物理层,将第二个表拖入此层。Tableau会自动在这两个记录之间应用内连接,因为它识别出标题ID的相似字段。内连接的结果仅包含从标题1到标题5的五条记录。

从左表和右表中各删除了1条记录。删除的记录是t0,0,0,7,来自左表的《白雪公主》,和t0,0,0,8,由约翰·福特导演。这两条记录被删除,因为它们在另一张表中没有匹配记录。

接下来是左连接。当你使用左连接来组合表格时,结果是一个包含左表所有值及其在右表中对应匹配的表格。当左表中的某个值在右表中没有对应匹配时,你将在数据网格中看到一个空值。

在示例Tableau数据源中,让我们将连接更改为左连接,并观察输出中包含哪些字段以更改连接类型。点击连接图标,在连接窗口中设置连接类型。选择左连接,并保留使用的连接子句。输出有六条记录。相同的标题1到5在左右表中都有匹配记录。

还有一条ID为T0007的记录,这是左表中的唯一记录。你可以看到该记录在左表中是唯一的,因为在右表的字段中有空值,包括投票、导演和平均投票。由于这是左连接,因此包括左表的所有记录,即使是那些与右表没有匹配值的记录。

让我们将此数据源中的连接类型更改为右连接。右连接的结果是五条与标题ID值匹配的记录,以及来自右表的唯一记录t0,0,0,8。请注意,与左连接相同,该记录在左表中没有匹配值。

最终的连接类型是全外连接。当你看到全外连接合并表时,结果是一个包含两个表所有值的表。当任何一个表的值与另一个表没有匹配时,你将在数据网格中看到空值。让我们将连接类型更改为全外连接并观察输出。

我们有两个工作表,电影列表1和电影列表2,它们具有相同的字段和数据类型。建议在结构相同的表中使用联合。它们应具有相同数量的字段,具有匹配的字段名称和数据类型,以创建联合,双击工作表或表部分的新联合按钮。这会打开一个新窗口,你可以在其中手动或自动指定工作表。

首先尝试使用手动方法,将电影列表1从工作表部分拖到联合窗口。然后将电影列表2从相同部分拖到联合窗口中,放置在电影列表1的下方,完成后点击应用。数据面板现在显示来自两个工作表的所有记录。联合是无缝的,因为它们具有完全相同的结构。

点击联合的下拉菜单并选择移除。一旦画布被清除,双击新联合以返回联合窗口。在此窗口中选择通配符自动选项卡。你可以设置一个标准,以在联合中包含多个文件。这样。

默认情况下,你不必将所有文件拖入联合窗口。这将搜索我们没有为第一次创建的数据连接指明的路径中的可用文件。你可以启用下面的两个复选框,以扩展搜索到子文件夹和父文件夹,以捕获更多文件。你可以设置的标准仅限于设置通配符或要从该数据源找到的表格或工作簿的确切值。

我们将设置表格的标准以包含电影列表,星号表示电影列表名称后有字母数字字符的组合。在表名中。如果你希望排除带有这种名称的表格,可以在下拉菜单中设置排除。对于工作簿标准。

我们已将其设置为包含movielist.dotXLSX。由于我们有确切的工作簿名称,你可以在工作簿名称中指明通配符。如果你要包含多个文件,完成后一次应用。与手动联合输出相同,它还包括根据设置的标准从两个表中找到的所有9行。请注意,包含的两个字段是路径和表。此次使用路径而不是表名。

与关系或连接不同,混合从未真正结合数据。相反,混合独立查询每个数据源。结果会聚合到适当的级别。然后,结果在视图中一起以可视化形式呈现。在这个视图中,我们使用客户ID作为行货架中的第一个字段。

因此,客户数据源已被标记为表1的主数据源。主数据源在数据面板的名称中标记有勾选标记。让我们在此视图中提供混合。单击交易数据源,然后选择总金额度量字段,并将其设置为视图中的文本值。这样做后。

这创建了混合,并将交易数据源标记为次要数据源。次要数据源在数据面板的名称中会有一个橙色勾选指示器。请注意,在交易数据源的客户ID字段中有一个红色链图标。这意味着Tableau自动将客户ID设为主数据源和次要数据源的连接字段。

连接在应用聚合之前先合并数据,联合则是垂直地附加或组合值,而不是水平地。我们来创建一个关于这部电影列表的数据源的联合。我们有两个工作表,电影列表1和电影列表2,它们具有相同的字段和数据类型。建议在结构相同的表中使用联合。

它们应该具有相同数量的字段,匹配的字段名称和数据类型。要创建联合,请在工作表或表部分双击“新联合”按钮。这会打开一个新窗口,你可以手动或自动指定工作表。

我们先尝试使用手动方法,将电影列表1从工作表部分拖入联合窗口,然后再将电影列表2从同一部分拖到联合窗口中电影列表1的下方,完成后点击应用。数据面板现在显示来自两个工作表的所有记录。由于它们具有完全相同的结构,联合过程非常顺利。

Tableau数据源是源数据与Tableau之间的链接。它本质上是你的数据总和、连接信息、包含数据的表或工作表名称,以及你将在数据上进行的定制。

连接到Tableau数据源之前需要考虑几个因素。首先是位置和访问。你的用户能否访问数据?是否需要用户过滤和行级安全?接下来是形状和整洁度。源数据是否为Tableau良好结构?是否有多余或缺失的数据?

在Tableau中,哪些计算或操作最适合原生执行?

第三是数据模型和数据组合。数据是否分散在多个系统中?

结合每个数据表的最佳方式是什么?

你还应该考虑元数据和定制化。表格和字段名称是否易于理解?是否需要计算?第五是可扩展性、安全性和可发现性。数据源是否应该嵌入工作簿中?源数据会有多大?最后,查看性能和新鲜度。

数据连接是实时的还是提取的?数据刷新计划是什么?

TableauDesktopProfessional具有完整的数据源连接,包括对服务器托管数据源的原生连接。它提供多种关系型、多维和基于云的数据库和存储库选项。而TableauDesktopPersonal和Public只能连接到平面文件。

GoogleSheets、O数据和Web数据连接器。如前所述,Tableau可以使用来自数据库、平面文件和Web数据连接器的数据。数据非常好用,因为它们已经具有定义的结构,数据类型已经定义,而格式错误的数据会被自动阻止。

这使Tableau能够准确理解如何使用每个字段中的数据。然而,有时平面文件被用作数据源。平面文件可能容易出现数据格式错误,并且对列名的变化敏感。确保遵循我们在上节课中提到的数据结构提示,以正确将数据加载到Tableau中。但除此之外,平面文件因其灵活性而非常优秀。

您可以轻松调整列并向文件中插入行。如果您决定使用平面文件来更新仪表板,请始终注意格式的一致性。最后,我们有网络数据连接器。网络数据连接器是一个包含JavaScript代码的HTML文件。您可以使用网络数据连接器连接到可以通过HTTP访问且没有现成连接器的数据。它允许开发人员创建自己的数据源连接,以从在Tableau中未包含的网页中获取数据。

在Tableau中连接平面文件有两种方法。第一种方法是直接将文件从文件资源管理器拖到平台的起始页面。当加载完成时,会显示一个小进度窗口,并引导您进入数据源页面。第二种方法是通过从起始页面的连接窗格中选择您的数据集的文件类型来插入平面文件。

这将打开一个新的文件浏览窗口,您可以在其中导航到数据源的文件路径。一旦找到文件,选择它并点击打开。这将加载数据,并引导您进入数据源页面。一旦进入数据源页面,您现在可以根据需要为数据添加更多格式。如果您的平面文件只有一个工作表。

它应该在画布的逻辑层中自动可用,但如果它有多个工作表,您仍然需要通过从工作表窗格中拖动工作表名称或表名称到画布中来指明您将使用哪个。

一旦成功连接到数据库或服务器,它将引导你到数据源页面。从表格部分选择你将用于可视化的表,并将其拖入画布以查看所选表的数据。

如果你需要使用不同的数据库,可以从左侧面板的数据库部分选择新的数据库。对于SQL数据库连接的额外功能是能够创建自定义SQL查询。当你确切知道所需的信息并理解如何编写SQL查询时,使用自定义SQL查询非常有用。只需点击表格部分下方的新建自定义SQL按钮。

你可以使用自定义SQL查询来垂直合并数据,应用于数据库连接,减少或重构你的数据,以及其他许多操作。在创建数据连接并选择要使用的表或工作表后,你现在可以前往Tableau工作表窗口开始可视化。

Tableau工作区将是我们创建可视化和分析的主要界面。如我们在早期课程中讨论的Tableau工作区,它由多个卡片、架子和窗格组成,我们可以拖放字段以形成图表。首先,让我们看一下数据窗格,它保存我们的数据字段、集和参数。

窗格的顶部包含数据源名称。如果您创建了多个数据源,可以使用此视图在数据源之间切换,每个数据源将在数据窗格上有单独的数据字段列表。您还可以右键点击数据源名称以显示其他功能,例如提取数据。

编辑别名、过滤器和发布数据源。要查看数据而不返回数据源页面,您可以点击搜索框右侧的查看数据图标,过滤器应显示数据窗口。此窗口右上角的数字限制了视图中的行数。

您可以编辑指示的值以增加或减少显示的行数。行数限制的最大值为10000。除了行数限制外,您还可以通过使用显示别名功能的复选框来隐藏或显示别名。由于我们使用了三个通过数据关系链接的表。

窗口底部可见三个标签。每个标签代表一个单独的表或工作表,您可以通过点击显示的数据的标签来切换。您可以通过拖动列名将列移动到左侧或右侧。如果您希望复制或导出选定的行或预览中的所有数据,可以通过点击列名对数据进行排序。您可以选择行或列,并点击右上方的复制或导出所有按钮。现在,让我们看一下可用字段。您可以通过查看数据图标旁的下拉按钮,基于数据源或文件夹对字段进行分组。按数据源分组将根据各自的表或表单列出字段,而按文件夹分组将默认列出数据源中所有可用字段。

例如,您可以通过使用层级创建国家、州、城市的地理层级,或按年份、月份、周的日期层级,您可以轻松深入到可视化中的不同数据级别。让我们尝试为此数据集创建一个两级层级。

这创建了一个层级,你可以在弹出的窗口中命名。我们将这个新层级命名为“自行车商店位置”。输入名称后,它将在数据窗格中显示。首先列出的字段将是更高的层级。因此,我们的第一层设置为“州”,然后可以向下钻取到“城市”。

例如,我们在数据集中没有可用字段来说明我们在自行车购买时向客户开具了多少发票。但我们有字段“价格”,即自行车的价格,以及“数量”,即客户订购的自行车数量,以创建一个计算字段。

点击数据窗格的下拉菜单,选择“创建计算字段”。这将打开一个新窗口,你可以在其中指明计算字段名称及其表达式。我们输入“开票金额”作为名称。然后输入计算,价格乘以数量。

将这两个字段相乘。完成计算后,请确保左下角的消息指示计算有效。然后点击“应用”或“确定”。新的计算字段现在已插入到数据窗格的度量列表中。当原始数据源中的字段名称已更新或移除,并且在图表中需要该字段时。

数据窗格中将看到一个红色的感叹号,与字段平行。要映射修正后的字段,请点击“写入”并选择“替换引用”。这将打开一个新窗口,其中列出了数据源中的所有字段。选择正确的字段并点击O。这将把正确的字段映射到使用它的架构和属性上。现在。

让我们尝试从计算字段和我们创建的层级中创建图表。在数据窗格中,选择层级“自行车商店位置”。然后按住键盘上的控制键并选择计算字段“开票金额”。一旦选择了这两个字段,将它们拖入画布。

这将自动创建一个符号地图,指示美国每个自行车商店每个州的销售额。正如你所观察到的,Tableau自动从我们的数据集中州和城市字段生成了经度和纬度,并将其设置为行和列,以标记地图上的X和Y轴。

你还可以在火星卡上看到层次结构和开票金额如何影响可视化。当前状态被设置为细节,指示圆圈的位置。而开票金额则作为地图上的标签。让我们将其转换为热图。导航到“显示我”按钮并从列表中选择地图。

请注意,这改变了字段在标记卡上的应用方式。状态仍然在细节上,但开票金额现在设置在颜色卡上。这将地图从符号转换为热图,因为开票金额现在决定了每个状态的颜色饱和度。

如果你希望格式化标记,例如,你想将开票金额的渐变颜色更改为绿色阴影。点击颜色卡。这将打开一个新窗口,你可以设置其他属性以更改标记的外观。在这里,我们可以更改所用颜色的调色板,以及改变颜色的透明度,并添加边框和光环等额外效果。窗口中提供的每个选项将取决于卡片类型。因此大小。

标签和工具提示有自己独特的设置或属性进行自定义。我们将通过在课程后面创建不同图表来深入了解不同的标记卡。让我们通过双击地图上方的默认工作表标题来为此图表指明一个标题。这将打开编辑标题窗口,我们可以在其中输入新标题。将其设置为按状态销售。

从此窗口,我们还可以对标题应用文本格式。我们可以更改字体大小,使文本加粗、斜体或下划线,并更改字体颜色及其对齐方式。你还可以插入字段值,以使用插入按钮的下拉菜单使标题动态。点击应用以在画布上显示更改。获取额外的格式选项。

右键单击标题并点击格式标题。这将在标题面板中显示格式标题,你可以为标题和说明设置阴影和边框。除了标题,你还可以格式化可视化中大多数可见的内容。只需点击字段的药丸或图表的某个点。

然后右键单击并选择格式。这将打开格式面板,你可以设置整个工作表或仅特定字段的字体属性、对齐方式、阴影和边框。如果你希望隐藏工作区中的某些架子和面板,可以使用每个架子右上角的下拉菜单选择隐藏卡片。

这可在过滤器、标记、页面或列、行和图例架上使用。如果您希望取消隐藏卡片,请导航到工作表菜单,显示卡片,并选择您希望放回工作区的卡片。数据和分析的窗格不能被隐藏,但如果您单击右侧的箭头,它将被最小化。

最后,让我们看看构成视图的不同元素。确定视图每个部分的名称以便在创建和自定义自己的图表时容易格式化和区分它们非常重要。首先,让我们看看这个表的元素。模型和订单日期值被称为标题。

标题是在您将维度或离散字段放入行架或列架时创建的。标题显示每个字段在架上的成员名称。由于我们显示的是模型和订单日期的每个成员或值,它们都被分类为标题。字段名称。

模型和订单日期被称为标题的字段标签。您可以通过右键单击其在架上的图标并在字段标签菜单中取消选中“显示标题”来隐藏标题。您还可以通过右键单击标题或字段标签,并在菜单中选择“隐藏行或列的字段标签”来隐藏它。接下来,我们有单元格。单元格是您可以在Tableau中创建的任何表的基本组件。

它们由行和列的交点定义。26,60的值位于一个单元格内。一组单元格横向或纵向排列称为窗格。标题也是视图的元素之一。默认情况下,它设置为工作表名称,但您始终可以编辑它,以提供有关视图的更多上下文,就像我们之前在地图上所做的。如果您希望进一步解释视图,可以添加一个标题。

所有视图都可以有一个标题,该标题可以是自动生成的或手动创建的。要显示自动生成的标题,请在画布的空白处右键单击并在菜单中选择标题。这将显示标题卡片在视图下方。您可以双击标题卡片以编辑标题的格式和文本。接下来,我们有坐标轴。当您将度量或连续字段放入行或列架上时,将创建坐标轴。

在此折线图中,我们有一个水平和一个垂直坐标轴,因为我们有两个都是连续度量的字段。悬停在标记或数值上会显示工具提示。它们包含视图的附加数据详细信息。当您选择一个或多个点或标记时,工具提示还包括过滤标记、排除或仅保留的选项。

显示具有相同值的标记,创建组,创建集合,或显示基础数据。视图的最后一个元素是我们之前创建的地图上的图例。图例会自动创建,以显示地图上每种颜色的值,范围从100到38320,再到3400万的州销售额。

图例指示视图如何与数据编码。它可以使用颜色,也可以使用符号、大小和形状作为图例。Tableau工作区将是我们创建可视化和分析的主要界面。首先,让我们看一下数据窗格,其中包含我们的数据字段、集合和参数。

窗格顶部包含数据源名称。如果你创建了多个数据源,可以使用此视图在数据源之间切换。每个数据源将在数据平面上有一个单独的数据字段列表。你还可以右键单击数据源名称以显示其他功能,例如提取数据。

编辑别名和过滤器并发布数据源。现在,让我们尝试从已创建的计算字段和层级创建一个图表。在数据窗格中,选择层级“自行车商店位置”。然后按住键盘上的控制键并选择计算字段“开票金额”。

一旦选择了这两个字段,将它们拖到画布上。这将自动创建一个符号图,指示美国各州每个自行车商店的销售额。正如你所观察到的,Tableau自动从数据集中州和城市字段生成了经纬度,并将其设置为行和列,以标记地图上的X和Y轴。你还可以在Mars卡上看到层级和开票金额如何影响可视化。

状态目前设置为圆圈所在的细节,而开票金额设置为地图上的标签。让我们将其转换为热图。导航到“显示我”按钮并在列表中选择地图。注意,这改变了字段在标记卡上的应用方式。

状态仍然处于详细信息中,但开票金额现在设置为颜色卡。这将地图从组装符号转换为热图,因为开票金额现在决定了每个州的颜色饱和度。如果你想格式化标记,例如,想将开票金额的渐变颜色更改为绿色的色调。

点击颜色卡。这会打开一个新窗口,你可以设置其他属性以更改标记的外观。我们可以更改所使用的颜色调色板,并且可以改变颜色、不透明度,添加边框和光晕等额外效果。窗口中可用的每个选项将取决于卡片的类型和大小。

好的,我们来创建一个rug图,具体来说,我们将再次查看小费数据集,尤其是小费金额。基本上,rug图会将数据框中的单列数据点绘制为棍棒。因此,您会在这个轴的底部看到这些不同的棍棒。在rug图中,您会看到数量较多的地方会有更多密集的线条,这有点像直方图在值较高的地方更高,而rug图则在值更常见的地方更密集。好的,rug图并不常用,但我在这里玩弄这些图形,我现在想要专注于样式,以便我们可以制作。

大家好,N,欢迎来到我的Seaborn视频教程系列,在这里你将学到几乎所有你想知道的关于Seaborn的内容,所有内容都在一个视频中,基本上Seaborn是一个建立在Matplotlib之上的数据可视化库,如果你不知道Matplotlib是什么,请查看视频下方的描述。

我将涵盖所有你可能想要了解的内容,这是我数据科学和机器学习教程的一部分。

我们的图看起来更漂亮了。好吧,我在这里想做的第一件事是向你展示如何为你的轴和网格设置样式,方法是输入SNS并设置样式,假设我们选择白色,然后我会在这里创建一个联合图,然后我会改变它的样式。所以我会说联合图,使用我们的车祸数据,因此我们会有超速,我会做酒精使用。

当然,我们的数据将来自我们的事故数据框,我将为此做一个回归图,所以你可以看到我们的图,我们会在这里稍微调整一下样式,以便你可以看到,比如说我想改变这个图的大小,为此我可以说图和图形,我们使用你之前在matteplotlive中看到的fig大小,你可以看到我们在图中稍微改变了大小,另外你也可以展示一些其他不同的样式,你也可以选择白色,你还可以访问黑暗。

所以就是这样。还有你会有黑暗。我们把黑暗放进这里。然后就是黑暗。看起来也挺不错的。然后你有刻度。这就是我所有不同的选项。根据你的数据和你使用的调色板。

你会使用不同的网格,有些看起来不错,有些则可能不太好。所以这就是刻度。我暂时就停在刻度这里。有一点是你的标签和文本,所有东西都有点难以看清。那么我们如何改变我们的标签、线条和其他不同元素,以最好地适应并美观地展示我们的数据呢。

所以我要说字体缩放为E01。4,你可以看到字体发生了变化,依此类推。然后我将展示其他不同的选项。你可以选择纸张样式,可以选择演讲样式,你可以看到那样更容易查看,此外你还可以选择海报样式,这样会超级清晰。你可以看到它非常大,这就像你在海报上使用的,而演讲样式适合于演示,而纸张样式则适用于JupyterNotebook。好的。

看看效果。我觉得这很易读。当然,如果你想精确调整,可以更改字体大小。还有一点是,有时候这些不同的轴,这些脊柱有点突兀,可能对你的数据没有太大帮助。好吧。

它向左移动的等式是。错了,意外地按了一个T而不是E,你可以看到我们的左轴在那儿。我们把这个设置为真。现在你看到它缺失了,好吧,假设我们也想出于某种原因去掉这个底部的部分,你也可以这样说,底部为真,现在我们没有底部,依此类推。

正如你所看到的,他们默认左侧发生的事情也会发生在右侧,底部发生的事情也会发生在顶部。当然,你也可以决定是否要显示右侧和顶部的脊柱,或者选择不使用它们,从而获得这样的布局。好吧,有一些不同的样式选项,随着我们继续,我将深入探讨其他不同的样式选项,以及通过matplotlib提供的色彩映射讨论不同的着色选项,但现在我想谈谈。

现在,箱形图将允许你比较不同的变量,它会显示数据的四分位数。所以我将打印一个,然后解释它所展示的内容。我非常喜欢箱形图。假设天数,我们要在这里查看男性和女性在多个不同天的总账单变化。所以我将说Y是总账单,当然数据将来自我们的提示数据框,这也是你第一次看到hue在这里,它将引用性别。

男性或女性,这是我们的箱形图。正如我所说,箱子将显示我们数据的四分位数,你可以在这里看到图例等等。现在,这条横跨中间的线是中位数,箱子将延伸一个标准差,这就是箱子所代表的内容。这些点被称为胡须,它们将延伸到所有其他数据,除了我们的标准差范围内的点,另外那些被认为是异常值的点。这些点被认为是异常值。基本上,hue为我们提供了一种额外的方式来添加另一个类别。所以我们在查看天数和总账单时,加入性别这个hue,也将允许我们创建。

对于每一天的男性和女性的多个箱形图,这样我们可以进行比较。我们可以看到,男性在星期五的支出往往高于星期六,而女性的支出则相对较高。如果你想移动这个图例,因为有时这些图例会挡住视线,比如说你想移动它,你可以去绘图和图例位置,这通常几乎总是有效的,如果你只输入位置0,它会保持在同一位置。我将在几秒钟后更详细地讲解图例。

讨论条形图。好的,我们在这里可以做的另一件事是改变图形大小,使其更大。我们再次使用matplotlib,所以假设八和五的尺寸相当大,然后我们放入这个条形图,看看效果如何。要创建一个,你只需调用stripplot,条形图将绘制一个散点图,表示所有不同的数据点,其中一个变量是分类的,通常用于显示与箱线图不同的观察结果,该箱线图代表平均分布。所以我们设定X为day。

数据框出错了。这是图形,你可以看到条形图的工作方式,我们可以加入一个名为jitter的属性,它将使我们的数据点分散开来,而不会堆叠在一起,只需设置jitter为true,你就会看到它们稍微分开。假设我们想将数据进一步分为男性和女性,我们再次使用H。

现在你可以看到男性和女性之间的差异,此外,你可以使用Dodge,这将完全分离男性和女性的数据,因此每个都有自己的条形图。好的,这就是带有许多酷功能的条形图。现在我想谈谈另一种图形,它结合了多种其他图形的能力,称为。

群集图,好的,我想在这里做的是创建一个小提琴图,然后在它上面叠加一个群集图。所以我会说x等于day,y等于totalbill,数据将来自我们的tips数据框。正如我所说,群集图有点像条形图,但点会被调整,以便它们不会重叠,创建时看起来就像小提琴图和条形图的结合。我将把所有这些数据从这里复制出来并运行,你可以看到,因为它对这里所有不同点使用了完全相同的颜色,但你可以轻松修复,只需将相同颜色设置为白色,现在你可以看到里面所有不同的图形,好的。

如果你只想像这样单独查看它。显然你不能让颜色是白色,你可以清楚地看到它的样子。好的,所以有很多很多不同的绘图选项可供选择。现在我想谈谈调色板。

Facet网格。那么,使用facetgrid,你将能够在一个网格中打印多个图,其中你可以定义列和行。假设我想要获取吸烟者和非吸烟者的直方图,基于午餐和晚餐的总账单,我将使用tips数据框来完成这个。

你可以看到我们在这里创建了一个类似网格的系统。我现在想做的是为我的直方图传入属性。所以我将说使用tips、FG、map,并绘制一个直方图。基于总账单。我将把它放在八个桶或箱中。

还有午餐,让我们去更改我们的调色板。所以我们将说调色板等于。我将使用一个叫setone的调色板。我还将更改我们散点图中点的边缘颜色为白色。你可以看到我们所做的更改。好吧,真是不错的东西。

现在让我们展示一些其他选项,因为这个家伙有很多选项。假设我们想更改大小和线宽,并为标记分配不同的颜色,使用不同的标记。这些点称为标记。我可以更改所有这些。我要做的是创建一个字典。

facetgrid将等于SNSfacetgridtipstatframe。让我们的列等于性别,我们的Hue变化将基于这个人是否吸烟。让我们将每个的高度定义为4,宽高比为1.3。

让我们继续添加各种疯狂的东西。假设我们想更改我们的H顺序,让吸烟者是“是”,非吸烟者是“否”。好的,这就是它所指的。然后我们还可以通过说hKWs等于字典来更改我们的标记。

我们将定义我们的标记符号,像这样用这个尖头符号做一个向上的三角形。然后我们用一个V放在里面,做一个向下的三角形。好的,我在试图弄清楚所有不同的参数,然后我们将为标记分配一个字典形式的数据。

映射,并根据总账单、提示金额来创建我们的散点图,然后传入我们在标记方面制作的其他数据,你可以看到我们刚才做的所有疯狂的事情。好的,如果你想看到几乎每一个可想象的选项,最后我想在facetgrid上展示一些有趣的东西,我将去获取不同的数据。这是出席数据,所以SSdotload。

数据集。以及注意力。这是数据框,将提供不同学生在测试阶段能够提供的注意力水平下所获得的分数,这些有点奇怪的东西。我将去S和S,我将再次创建一个面格网,我想在这里做的是把每个人放在他们自己的图中。

每行5个主题,并根据他们在测试阶段能够集中注意力的程度绘制每个主题的分数。好吧,这有点像是玩弄数据的乐趣。所以列将是主题。我将说我每行只想要五个主题,所以列换行5,我将定义高度为1.5。然后我将做一个常规的传统绘图。所以我将说TtFG图,并做一个常规绘图。

不。,我们会有解决方案。然后是分数,我们还可以定义自定义标记。因此,我们会说在这种情况下我们的自定义标记是一个非常简单的点。哦,我在列换行而不是列包裹和分数中输入了。这应该是分数,运行它,你可以看到所有正在测试的个别主题或学生。

他们的分数以及他们的分数如何根据他们能集中多少注意力而变化。好吧,有这么多不同的方式来看待和玩弄数据。为了结束这个教程,我想谈谈你将一直使用的东西,那就是。

关于加载数据,你将能够进入并加载CSV文件以及通过使用pandas提供的无数其他不同文件类型。这就是我在这里使用的,因此我可以进入计算机销售,这是我以前使用过的CSV文件,你可以看到它的样子,没问题,但在这个教程中,我不会这样做,为了让每个人都能更容易,我主要将使用seaborn内置的数据集,你可以通过输入gitdatasetnames来查看内置的内容,那里你可以看到这些数据集的名称。只需忽略这个,它是一个错误,有时在我们调用这些数据集时会出现,如果我们没有正确使用它,它不知道我们在使用什么类型的数据,只需不担心它。所以有各种各样的内置数据集,我将在这个教程系列中使用至少三个。

因此,你可能会问自己,如何加载这些数据集呢?首先,我将使用一个交通事故数据集,你只需输入loaddataset,然后键入它的名称,即carcrashes,你可以看到它的样子在这里。所以你可以看到这些是交通事故的总数,这些是州。阿拉巴马州、阿拉斯加州、亚利桑那州、阿肯色州、加利福尼亚州。

他们分析的总事故数,包括人们是否超速、是否饮酒、是否没有分心,是否没有以前的事故以及保险费用和保险损失。好吧,这就是我们将要分析的内容,并且在视频下面的描述中,你将找到一个Jupyternotebook。

有大量的注释来帮助你,所以这是一个巨大的备忘单,当然,这都是免费的,因为。

在GiHub好的,现在我想谈谈你可以使用的不同分布图,第一个我们要看的图叫做分布图,基本上它们提供了一种查看单变量分布的方法,你可能会问什么是单变量分布?它只是为一个变量提供分布,获取它们的方法是说S和S。

分布图,当然你可以通过按shift和tab找到更多关于这个具体命令的信息,它会向你展示所有关于可用属性的不同信息,我将覆盖其中一些内容,而一些我不会,我会尝试在提供你会经常使用的内容与深入每个你不会用的内容之间找到一个平衡点。好吧,假设我们对没有分心的事故感兴趣,我们可以在这里看到一张图,这条线或者说这是一个直方图图,这就是它的名称,而这个图是所谓的核密度估计。

如果你进来这里不想要那个,你可以直接说KdeE等于false,看看它现在消失了,基本上它只是提供你数据集总结果的估计,没什么复杂的,还有我们能在这里做些什么呢?

我们还可以定义区间,所以我们可以说区间等于$25,看看这如何改变我们的数据,基本上区间就像一个桶,用于将数据分隔成不同的区间。例如,如果你在做利润方面的分析,可以说把10到20之间的所有利润放在一个桶或区间里,这只是决定你在数据中会看到多少条这样的柱状图,基本上这就是分布。

你可以说数据是相等的,我们正在使用碰撞数据框,假设我们想生成一条回归线。我们可以设置类型为回归,然后你会看到它在这个地方绘制了所有这些疯狂的东西。

你还可以通过进入类型区域并设置KdeE来创建这样的KdeE图,看看我们可以在这里制作的各种酷炫图表,KdeE再次指的是核密度估计,正如我之前所说的。

在分布上,只需像这样输入十六进制。你可以看到这些数据是如何分布的,以及大多数人在饮酒和超速之间的快乐点,任何时候他们发生事故时。所以你可以用这个做很多非常酷的事情。

现在我想再次谈谈配对图,仍然是在分布图区域,基本上配对图将绘制整个数据框数值之间的关系,所以让我们创建一个,可以说配对图和Cash数据框,并查看所有信息,所以有很多信息,您可以看到左侧有我们的总数。

我们有超速数据,我们还将有关于酒精的数据,我们将比较这些列和行,以及这些不同数据如何相互影响,以生成对角线上的直方图,以及其他地方的散点图。

您还可以进来,我会很快详细介绍调色板的样式。这是一个名为blues的matplotlib调色板,我在之前的教程中使用过,您现在可以看到所有内容都使用蓝色样式,您还可以看到浅色点代表男性,深色点代表女性,您可以看到我们能够制作的图表,基本上是总账单、提示和规模,总账单、提示和规模是我们在这里提取的信息,我会在稍后讨论样式,所以我们可以更改这些字体大小等等,当我们进入网格时,我会向您展示如何制作这些图表,并在我们的图表网格的顶部、对角线和底部放置不同的图形,但现在我想谈谈rug。

男性与总账单金额之间的方差等,默认情况下。这些数据将基于均值进行聚合,但你可以修改它。因此,估算器是你将如何更改它,你也可以基于中位数进行计算,并且能够使用各种numpy公式。因此,这些数据是基于中位数的,你也将能够基于标准差进行计算。

现在我想谈谈计数图,计数图有点像条形图,但估算器只是简单地计算出现的次数。我们可以称之为计数图,并在X轴上,比如说我们想找出数据框中男性和女性的数量,你可以看到男性总数与女性总数的比较,正如我所说的那样。

你可以在这个函数后点击Shift和Tab查看所有额外选项。这里有Hue,我们之前已经讨论过,可以改变顺序,改变我们正在使用的颜色、调色板和饱和度,我将谈论Dodge以及其他不同选项,随着下面内容的深入,你还可以阅读所有不同可用的内容和所有不同参数的更多细节。

这样可以让我们的图表看起来更好,所以我要改变图表的大小,并且在这里设置我的网格样式,使用更深的颜色,我会把它变得更大,呈现出一种演示的样子,通过调用talk,现在我想要做的是创建一个条形图,让我们坚持我们习惯的样式。

这是我们的小费数据和总账单。我们的数据来自小费数据框,让我们使用h等于性别。在这里你可以看到它最终会呈现的样子。现在我们使用的这些不同颜色,有时候看起来很棒,有时候则不然。如果你想改变它们,你可以设置调色板。

然后你可以为自己找到不同的颜色选项。通过访问matplotlib,特别寻找颜色映射。如果你输入matplotlib颜色映射,它会带你到这个页面。你可以看到很多,这些都是可供你使用的不同颜色映射的示例。

把它设为magma并运行,你可以看看这样是否更好,你也可以尝试其他不同的样式,比如说你也可以输入purplebluegreen。让我们试试AFMhot,好吧,让我们试试AFMhot,我也不知道。

这看起来很不错,当然我们可以把头发的颜色改成白色。等等。好了,有一些不同的方法可以改变你的图表颜色,正如我之前所说,有时候这个图例会出现在错误的位置。嗯,很经常你可以通过简单地设置图例的位置为0来解决这个问题,它就会保持在原位。所以如果你想要其他选项来移动它,你可以尝试改变图形的大小,现在它不会遮挡任何数据。

至少这是你可用的另一个选项,或者如果你不喜欢最佳选项,也就是零会给你的,你可以尝试把它放在右上角,方法是输入值一。所以让我们在里面放一个一,现在它在右上角。如果你也不喜欢这样,你可以尝试。

或者左侧,已经是原来的位置,如果有两个的话,可以放在左下角三个位置,所以我们可以试试。而且这仍然有点阻碍,我认为左上角绝对是最佳选项,这是最好的选择。如果你想了解所有其他可用选项。

你可以去Macplotlib,专门查找piplot图例,它会显示所有其他不同的选项,你还可以选择具体放置,选项包括左上、右上、左下、右下等等,这里是所有这些不同位置的代码数字,你还可以通过使用元组将其特定放在XY轴上。所以有很多不同的方法可以通过改变调色板和位置来样式化图例等等。接下来我想讨论一种完全不同的图表,称为矩阵图。

Pop物种。好的,这将说明我们希望根据不同物种返回的值。然后我可以说S和S。聚类图。抱歉,我不是花卉专家。所以我真的不知道这些不同的家伙之间的区别。好的,这就是我们创建的内容,看起来有点复杂。

但我将尝试准确解释这个聚类图中发生的事情。现在这就是我们称之为分层聚类热图的东西,它在这里所做的是计算点之间的距离,然后将最近的点连接在一起,这将继续进行下一个最近的点,并且将比较我们的热图的列和行。所以我们来看看你可能已经习惯的另一组数据。这基本上就是在尝试聚类相似的数据类型,我们的数据点。我是说,所以我们来使用我们的航班数据来展示一些你已经知道的东西。

看了一点点,所以我将去做SNS和聚类图,航班和CM等于蓝色。而标准化尺度的作用是将数据归一化,以专注于聚类。这将有点混淆日期,正如你所说的,你必须将其设为1。好了,你可以看到我们的航班数据,你也可以看到我们确实集中并聚类了7月和8月的数据,你还可以看到下面的年份不再按顺序排列。所以这就是热图之间的区别。

热力图不会尝试重新定位数据以寻找数据集群,而是会在现有数据的基础上工作,而集群图则会紧密适应并聚集数据,以便你可以看到正在形成的非常具体的模式,这些数据是关于人们乘坐飞机的航班数据,非常有趣,接下来我将讨论配对网格。

现在这是Jupiternotebooks,在这里我会完成所有的内容,你可以看到我将在这个教程中涵盖的所有内容,视频下方也会有一个目录,供你跳转到任何你可能感兴趣的部分。现在,在Mattplotlib中,你通常需要写多行代码来创建一个图表,但正如你将看到的,Seaborn会根据你的需求做出假设,这通常会使你用一行代码获得完全相同的图表,因此它真的很酷。你可以通过使用Anaconda环境标签来安装它,或者在终端中输入这些命令,既可以说pipinstallseaborn,也可以说condainstallseaborn,所以这两种方式都会让一切正常运行。接下来我会做什么。

首先,设置一切需要导入nuy,我还会导入pandas和Madplotlib,当然还要导入seaborn。如果不这样做,做seaborn教程会很困难,我还会做其他一些事情。

好的,我们在这里想做什么?基本上我之前在这里提到过成对图,成对图的工作方式是你插入数据,它会给你一堆不同的图,但当你想要更具体地控制图和数据的显示位置时,那就是成对网格的用武之地。

所以我想在这里做的是,首先我将再次使用Iis,我想基于这个鸢尾花数据创建一个空的网格系统,我说成对网格和Iis。

h将等于物种,因此我们将根据不同的鸢尾花数据框中的物种进行上色,然后我想在上、下和对角线上放置一个散点图。那么我该怎么做呢?我使用IisGmap。

在上、下以及对角线上绘制图,我将说IGmap绘制散点图,假设我想在对角线上放置一个直方图,我可以说IGmap和对角线和绘制直方图,现在你可以看到我们有一个直方图,但我们也有其他的散点图仍然显示在这里,所以让我们去掉散点图,假设我们想让散点图在对角线的上部和下部显示。那么我们说IG和map在对角线外部绘制我们的散点图,现在我们得到了不被散点图遮挡的直方图,并且我们在成对网格的上部和下部得到了散点图。

但是我们想说我们要去放置不同的散点图。

G等于SNS。Paragrid。Iris?我将说色调将基于物种,然后X变量将基于萼片长度。我想我发音正确,但我对花朵不太了解,所以如果我说错了,请原谅。然后是萼片宽度,Y变量将等于……让我们复制这个,然后把它改为pal,再把它改为pal,然后我们可以说我们想绘制一个散点图,接下来去掉这一部分,然后我们也可以在这里添加一个图例,你可以看到我们能够创建我们的自定义图表,太好了。

对我们来说,另一个与箱线图非常相似的图是所谓的“小提琴图”,你可以通过搜索小提琴图来创建一个,基本上它是箱线图和KdeE图的结合。假设我们想要的信息几乎完全相同,我们将获取日期信息和总构建信息,并从我们的提示数据框中提取这些数据,同时也使用H,以便我们可以获得男性和女性的数据,这就是小提琴图的样子。箱线图对应数据点,而小提琴图使用数据点的KdeE估计来创建这些图形。我们还可以在这里添加一个名为split的选项并将其设置为true。

像这样,分割将允许你比较不同类别之间的关系。因此非常有用。正如我所说,这取决于你的数据类型,以帮助你找到最适合你的图表。接下来,我想谈谈条形图。然后我将更深入地讨论一些样式选项。

有不同的调色板可供选择,但首先我们要。

好的,首先我们要讨论的第一个矩阵图是热力图。让我们来进行一些样式设置。我将设定我的图形大小为8和6,并且我还将更改我的网格背景上下文。

我将把这个改为纸张,哎呀,要用引号把它括起来。我将使用1.4的字体缩放,这通常也有效,如果不行我们再改。好的,要用数据创建热力图,你基本上需要以矩阵格式设置变量。这样做。

数据框,好的,就这样。我们需要做的就是创建一个热力图,我们必须让在我们的列上的数据与这些列也作为行对齐,而不是像这样用索引,有两种主要的方法来做到这一点,我将向你展示这两种方法。

我将添加注释,这将在热图每个部分的中心显示数字。如果你在mapplotlib中创建过热图,你会知道使用Seaborn有多么简单,你可以看到,这就是在mapplotlib中创建热图的快速方式,大约四五六行代码。这是一个完整的代码,并且这是一个来自我之前展示的mapplotlib页面的颜色映射,你可以使用任何不同的颜色映射,你可以准确看到我们的热图与之对齐,基本上是同样的数据,只是看起来更好。因此,让我们展示另一种创建矩阵的方法,所以让我们继续,我将保持完全不变,你也可以通过使用称为透视表的方式来创建矩阵。

我为什么不直接使用完全不同的数据呢,我要去获取一些航班数据。我将其称为flights。然后是SNS。并加载。此次使用的数据集是内置的,称为flights,你可以看到,基本上它是基于年份和月份的飞行人数。好吧,你也可以看到这里有索引,除非我们将列中的内容放入行中并展示它们之间的关联,否则我们无法创建热图。所以我们要做的是创建一个透视表。我将调用flights.dotpivottable,这只是另一种将列放入行并关联所有数据的方法。这就是它的含义,所以我将说我想创建一个以月份为索引的矩阵,我希望我的列等于年份,而我想要的数据值是乘客数量。你可以准确看到这些数据来自哪里,所有三个数据部分都会被使用。

如果我运行这个,你会看到我们的月份在左侧,而年份在顶部,特定年份和月份的乘客数量就是你看到的实际数据。好吧,这非常非常有用。我现在想做的是实际创建这个热图。我将说热图使用我们的flights数据,我将使用我的颜色映射。

这是我比较喜欢的蓝色图,你也可以在这里放入白线来分隔数据。不过我先给你展示一下它的样子,哦,航班。这将只是S和S,我们不需要这个,好吧。所以你可以看到这是基于我们航班数据的新热图,但你也可以在数据之间放置线条,如果这样更方便操作,但除非你定义线宽,否则它是不会显示的。

所以我会再次使用我的小费数据。让我们去看看这些数据的前五个,只是提醒你我们将使用什么类型的数据。好的,所以我想做的是,我将定义图形的大小,图形大小将等于8乘6,我会将其设置为纸张格式。

上下文。为了纸张,我会将我的字体缩放到1.4,以使其看起来不错,并绘制一个回归图,我在之前的教程中多次提到过,你可以像这样使用LM图。我想研究总账单是否会影响小费金额,当然会,这就是我们这么做的原因,所以我将输入总账单金额,对于Y,我们将输入小费金额,Hugh将用于显示男性和女性之间的分隔。

圆圈。然后对于女性,我将使用大写三角形,然后我还会通过将scatterunderscoreKWS设置为和我将定义我的标记的大小,让它为100。

看看那是什么样子。我还会定义对齐宽度,让我们把它设为0或0.5。我还会改变边缘颜色。让我们把它设为白色,如果我运行它,你可以看到我们的高度自定义散点图,你可以在这里应用我们在这个教程中学到的所有其他内容,玩弄并让它看起来像你认为的最佳样子。

然后,最后,把你正在使用的数据框放入,你可以看到所有这些数据是如何发挥作用的,以及它如何影响我们的回归分析,它提供了多种不同的方式来查看多个数据点。如果你不喜欢这个样子,有时你可以调整上下文。

所以让我们把这个放进去,就这样。然后将其改为海报格式。哦,那非常,非常大。所以这不太合适。我们还是坚持使用纸张格式,这样比较容易阅读。当然,你也可以来调整高度和宽度等。

联合图,我之前谈到过KDE图,如果你想完全自己生成一个,你可以简单地说KDE图并崩溃一个框架,这样我们就可以看看关于酒精使用的崩溃情况,你可以看到,接下来我会更深入地讲解KDE图,因为它们常常涉及到其他图表。

我真的想感谢Brilliant赞助这个系列。如果你们能通过下面描述部分的链接查看他们的内容并支持赞助商,那将是太好了。我会在稍后谈到他们的服务。所以说完这些,让我们开始吧。好的,首先。

我将在下面的描述部分提供下载数据和我正在使用的笔记本的链接。所以我已经打开了我的笔记本,正在读取这个CV文件的数据,我们来看看这是什么样子的。我们可以看到,我正在加载这个CV文件,我将其命名为ETH_1H,因为这是以小时为单位的以太坊历史数据,这是一种加密货币。这些数据被分解为每小时的段落。所以如果我们查看这个数据的头部,我们可以看到有一些列在这里。

我怀疑这行不通,但我们还是试试看吧。好吧,我预期会出现一个错误。如果我们向下滚动查看错误,可以看到它提示未知字符串格式。因此,它不知道如何解析这个日期。但正如我之前所说,取决于你的日期格式。

那么这实际上可能适合你。恰好是以一种格式显示,pandas无法自动转换,除非我们告诉它我们的日期是如何格式化的。因此,我们需要在这里传入一个格式字符串,说明日期是如何格式化的,以便它能够正确解析。现在我提前为这个特定日期创建了正确的字符串格式。

不过要明确的是,我从来没有真的记住这些格式化代码。我总是需要去Python文档中查找这些代码。所以我这里打开了那个页面。我会在描述部分留下这个链接。不管你的日期是如何格式化的,我们的日期是以年份开头的。

所以我们可以看到那是%Y,然后我们有月日,因此我们可以在这里找到。另一个例子是像8PM这样的格式。所以我们可以看到这里的这些I,这个I是指12小时制,这是我们所用的。然后这个%p是指当地的上午或下午的表示。

所以这些将会在我们的格式字符串中,但我会留一个链接以防万一你的日期格式不同,需要你自己创建。因此我需要传入的格式字符串基本上是在告诉pandas如何解析我们的日期,我们将先看到年份,然后是一个破折号,然后是月份,再然后是日期,中间有破折号,然后是一个空格,接着是百分比,我记得是12小时制。

然后是一个破折号,然后是百分比P。所以让我来运行这个。如果我把它正确地输入,那么这个应该会工作。好的,所以我们没有得到任何错误。但让我们确保一下。因此我将查看这里的日期列。我们可以看到这些现在看起来更像是我们在编程中习惯看到的datetime对象。

所以它将晚上11点转换为23。抱歉,我以为晚上11点是第一个。不,它是晚上8点。好的。所以它将晚上8点转换为20,晚上7点转换为19,以此类推。现在这已转换为datetime,我们应该能够运行这些之前给我们带来错误的datetime方法。所以在这里我们得到了这个错误,当时我们尝试抓取这些的日期名称。

我将复制这个并粘贴到这里,现在让我们尝试重新运行这个,我们可以看到现在它表示我们系列中的第一个日期,这个3月13日是一个星期五,所以这很好,看起来它工作了。现在我们这样做的方式是,在用这一行加载数据后将其转换为日期,但如果我们希望在加载数据时就将其转换为日期,那么我们也可以这样做。所以如果我回到顶部,在这里加载的这行读取CSV。

将会有日期。我们这里只有一个,所以这将只是一个包含一个项目的列表。抱歉,我本来想写日期,而不是日期们。现在,就像之前一样,如果你的日期已经以pandas能解析的方式格式化,那么你这里不需要添加其他内容。但我们之前已经看到需要传入特定的格式。

因此在这里我们不能仅仅传入格式字符串,我们需要传入一个将每个字符串转换为datetime对象的函数。所以首先,让我们创建那个函数。在这个系列中我们见过lambda函数,但以防你不熟悉,你也可以简单地创建一个普通函数,如果你更习惯这样,但这只是一种更简短的方式。所以要创建这个lambda函数。

我会把这个叫做Dunderscoreparser,我将把它设置为一个lambda函数。我会把x用作这里的变量。那么我们想要返回什么呢?所以当我们在这里使用Pdo2datetime时,我们实际上是将整个序列传递给PD2date。Time,但现在这实际上只是将每个单独的字符串通过这个函数。

这就是我们所需的日期解析函数。因此,日期解析器的参数是dateunderscoreparser。我将把它设置为那个Dpars变量,该变量设置为我们的lambda函数。好的,现在如果我运行这个单元格。然后我们可以看到没有出现错误。所以这很好。

所以我会删除那个,因为之前是用来进行转换的,我也会删除那个。我会保留这个供参考,因为我之后会把这些放到我的GitHub上。好的。在这里之前,我们看到如何对单个值运行datetime方法,当我们使用这个dayname方法时,但如果我们想对整个序列运行该方法呢?假设我们想查看这一整列日期的日期名称。

为此,我们可以访问序列对象上的Dt类,并以这种方式访问datetime方法。所以这样做。我们可以首先获取那个序列,所以日期列将返回一个序列。如果我运行它,我们可以看到得到所有那些值。现在,如果我们想要在序列对象上访问Dt类,我们可以直接说.Dt。

然后我们可以看到,现在我们可以快速看到右侧,好的,13号是星期五,然后在底部有这些日期,这是一周六,所以能看到这些交易实际上发生在哪些日期真是不错。

现在让我们看看如何探索我们的数据。通过查看最左侧的索引,我们可以看到这个数据集有超过20000行。那么让我们看看如何查看这个数据集中最早和最新的日期。为此,我们可以使用最小和最大方法。所以为了查看最早的日期,我可以简单地访问。。

这个日期序列。然后我可以直接对其运行最小方法。如果我运行这个,那么我们可以看到给出的最早日期是2017,0,7,0,1。现在如果我想看看那是什么。那是2017年7月1日。为了查看我拥有的最近日期,它应该是我下载这个数据的日期。

我们将查看这两者。所以让我们看看这个例子和一些代码,这样它就更有意义了。首先,我将创建一个在单独变量中的过滤器,就像我在之前的视频中所做的那样。但如果你更喜欢这样做,也可以在行内进行。我只是觉得将过滤器分开会稍微容易阅读一些。所以假设我想要我们的日期序列。

我想要大于某个值的对象或行。然后我现在只会传入一个字符串。这里我可以传入2020年。Pandas会知道我在说2020年。让我们实际进行一个大于或等于的操作。好的,现在我有了这个筛选。

让我们再做一次DfdoLo。我们在之前的视频中见过这个。然后我会传入那个筛选。所以如果我运行这个,那么我的底部行应该是2020年1月1日。确实是。我们可以看到这里有17000小时的2020年数据,或者抱歉,是1700小时的2020年数据。好的。这不超过2020年的原因很简单,因为我们的最新数据已经没有了。因此,我们没有2021年的数据,因为2021年还没有发生。但如果我们想要2019年的数据呢?那么为了做到这一点,我们还需要设置一个上限。

我将说,好吧,我们希望我们的数据大于或等于2019年。我们只是想在这里进行一个筛选。我会把这个复制过来,然后将其替换为小于,并且我们会说小于2020年。如果我运行这个,我们可以看到底部行是2019年1月1日的午夜,顶部行是2019年12月31日晚上11点。所以这给了我们2019年的所有数据行。

所以首先让我们设置索引,以便它使用这个日期列。所以在底部,我会说Dfsetunderscoreindex,然后我将传入我们希望将索引设置为日期。如果我运行这个,那么看起来很好,我们已经将索引设置为使用日期,现在看起来不错。

它实际上并没有进行那项更改,我想说将inplace设置为true以使更改永久化,所以我会运行它,如果我们再次查看我们的数据框,那么现在我们将该日期作为索引,现在通过该日期索引,我们实际上可以通过将日期传递到我们的括号中来过滤日期,所以如果我们想要2019年的数据,我可以直接说我想要2019年的数据,将其传递到我的括号中,如果我运行它,那么我们可以看到我们得到相同的结果,这里我们获得了1月1日的值和顶部值。

这是12月31日,所以当这些是我们的索引时,直接在括号中访问会更简单,而不是创建过滤器。如果你想抓取特定范围的日期,那么可以使用切片。假设我们想要2020年1月和2月的所有数据,那么使用这个切片,我可以说好的,我想要从202001开始,也就是1月,然后我可以使用冒号做一个切片,然后说好的,我想要到2020年2月,所以如果我运行这个,第二个值是包含在内的,所以我们可以看到2020年1月1日在底部,这个切片一直到2月29日,因为这是一个闰年,现在这非常有用。

为了分析我们的数据,因为假设我们想要获取以太坊在这些日期的所有行的平均收盘价,做法很简单。我们可以直接抓取这个收盘列,然后计算平均值或均值。为了做到这一点,我们可以说,让我先复制这一部分。让我访问那个收盘序列,如果我运行它。

但是如果我们想以不同的方式查看这些数据呢?如果我们想要按天而不是按小时查看这些数据呢?首先,我们需要考虑什么样的视图适合按天查看。例如,假设我们想查看每天的高点。那么现在。

我们将这些高点按小时划分,实际上让我查看一下第一个。让我抓取这个日期范围,然后我们看一下前24个,这样我们可以获取24小时的数据。所以我们可以看到在2月29日,我们有这些不同的小时,每个小时都有不同的高值。但是如果我们说,好吧,我们看到所有这些不同的高值。

但那天的最高值是什么呢?所以实际上,让我抓取一天的高值,然后我们看看那天的高值。所以我们不查看所有这些日期,只抓取2020年1月1日,然后我们将查看那一天的高值。所以再次。

我们并不关心每一天每小时的高值,我们只想知道整天的高值。为此,我们只需获取该系列的最大值,我们已经看到如何做到这一点,方法就像在这里运行mean一样,我们只需说.dotmax,如果我运行这个,我们可以看到那天的高值是132。

68所以现在让我们记住这个值132.68,因为我们将看到如何对数据进行重采样,以便获得我们数据中每一天的高值。然后我们将使用这个值来与2020年1月1日进行比较。所以,现在我们的数据是按小时划分的。

如果我们想重新处理,使其按天、周或月划分,那么我们可以通过重采样来实现这一点。所以让我们看看这是什么样子。如果我想重采样并查看按天的高值。那么我可以简单地访问这个高列。在那个系列上,我可以说,好的,我想对这个进行重采样。

所以我总是需要在文档中查找它们。所以我在这里拉取了pandas文档中的这些日期偏移量,并且我将在下面的描述部分中留下这个页面的链接,如果你们想尝试其中的一些。但我们可以看到,我们有小时、分钟、秒、毫秒。

微秒,各种各样的事情。如果你在做财务,你可以按季度等进行处理。所以我想每天做一次。因此,我将在这里放一个D。现在我们必须告诉它,好的,那么我们想对这些重采样做什么,如果我查看的是整天的数据。

如果我取这个整天的第一天,我想对这个高值做什么。我们只是说,我们想要每一天的最大值。所以如果我运行这个,我们可以看到这给我们提供了一个系列,包含每一天的高值。那么现在我们将这个系列保存为一个新变量,并查看之前使用的特定日期。

我将把这个保存为一个变量,称之为highs。接下来,让我们访问20200101这一天的高值。现在,由于我们使用的是相同的日期,我们应该得到132.68这个值。所以如果我运行这个。

然后我们可以看到那天的高值实际上等于我们在这里做的值,所以这有效。但现在,不像之前一次只获取一天的数据,现在我们重采样后,我们有了数据中每一天的高值。好吧,那为什么这种做法有用呢?我的意思是。

你知道,这可能很有用,因为它很有趣。但我们也可以做其他事情。假设我们想要绘制这个图。但不是逐小时查看这些价格的图,现在我们可以做一个按天划分的总价格图。在JupyterNotebook中,绘制信息非常简单。我实际上会做一个关于使用pandas绘图的整个系列,所以我不会在这个视频中详细讲解,但我们将看到如何在这里做一个非常简单的折线图。首先,我们需要在JupyterNotebook中使用这个特殊行,允许我们的图表在浏览器中显示。所以我们所要做的就是在这里加一个百分号,然后可以说matplotlibinline。我想提到的一件事是,我确实必须在我使用的虚拟环境中安装matplotlib,所以如果你只安装了pandas,那就要回去安装matplotlib,否则你会在这里遇到导入错误。

但我在我的虚拟环境中安装了这个,以便我们可以看到它在那里工作,现在用这一行代码,我们可以直接在我们的Jupyter笔记本中显示图表。所以我可以简单地对这个重采样的数据框变量运行绘图方法,获得图表。所以我只是说,好吧,我想要高值的图表。所以高值.dot图表。我会运行这个。

我们可以看到这里有一个不错的matplotlib图。好吧,所以这对于,知道吗,只是几行代码来说,挺不错的。现在你可能会想知道是否可以一次重采样多个列。我们可以通过在整个数据框上运行重采样方法来做到这一点,而不是在单个系列上。那么,举个例子,我这是什么意思。好吧,每当我说,知道吗。

一次重采样多个列。我是说如果我们想按天重采样。到目前为止,我们只看到如何获得高值,但如果我们说,好吧,我想按天重采样。但是我还想要,知道吗。整天的平均收盘价。我想要那整天所有交易量的总和。

然后我想要知道,最大高值。我想要最小低值。我们在这里通过访问单列的方式来做这件事,而用这种方法我们无法做到。所以为了重采样并使用多个列,方法如下。我们可以通过在整个数据框上运行重采样方法来实现。

所以如果你想在所有列上使用相同的聚合方法。举个例子。假设Df进行重采样。现在我们在这里重采样整个数据框对象。现在我们要传入我们想要重采样的内容。我们把“天”换成“周”。现在我们将按每周进行重采样。

所以如果你想对所有内容使用相同的聚合方法,你只需在那里放入该聚合方法。如果我运行这个,那么这将给我每个列的周均值。现在这很酷,我们可以这样做,有时你可能想这样做,但在这种情况下,使用均值来获取所有列的平均值并不合理。所以例如。

我们实际上在之前的视频中已经看到过这个方法。但是我们这里想用的是AG方法,ag方法还接受我们希望在该列上运行的列和聚合函数的映射。例如。

现在,让我们用这些值来做,看看。我们将处理收盘列,高列和低列,然后我们也将处理交易量。所以我要从上面获取这些。然后我们将进行DF.dot.resample,并传入W以进行按周计算。现在,代替传入dot.mean。

就像我们在这里所做的,我将传入dot.AGG。现在我可以传入列名的字典,然后值将是我们希望在该列上使用的聚合函数。所以。例如,假设对于收盘值,我确实想获取其均值。

这是列名,这里是聚合函数。所以我们正在计算收盘价的均值。我们在整个周期间计算高价的最大值,低价的最小值,然后对交易量求和。所以如果我们运行这个,它将给我们提供每周的高低概述。

在结束之前,我想感谢本视频的赞助商,那就是Brilliant。我非常喜欢Brilliant提供的教程,并且绝对推荐你们去看看。在这个系列中,我们学习了Pandas以及如何在Python中分析数据。Brilliant将是一个很好的补充,帮助你通过他们的实践课程来扩展在这里学到的知识。

他们有一些优秀的课程和课件,深入探讨如何正确思考和分析数据。对于数据分析基础,我强烈推荐他们的统计学课程,它教你如何分析图表并确定数据的显著性。我也推荐他们的机器学习课程。

这将数据分析提升到一个新的水平,你将学习被用来让机器做出决策的技术,而这些决策涉及的变量对于人类来说实在是太多了。因此,支持我的频道并了解更多关于Brilliant的信息,你可以访问brilliant.org/forgelash/cs,注册免费账户。此外,前200位访问该链接的人将获得20%的年费折扣。。

现在,我想提到的是我们确实有一个赞助商来支持这一系列视频。那就是brilliant。所以我非常感谢brilliant赞助这个系列。如果大家能通过下面描述部分的链接查看他们,并支持赞助商,那就太好了。我会在稍后更多地谈论他们的服务。因此,话说回来。

让我们开始吧。好的,首先,让我们看看CV文件,因为我们已经在这一系列中使用过这些。我们应该已经熟悉从CSV中读取数据,因为到目前为止我们一直在做这个。但如果这是你观看的系列的第一部视频,让我们再复习一遍,然后我们也将学习如何写入CV文件。

所以在我笔记本的顶部,我们可以看到我正在读取这个CSV文件,这个Cv文件位于与文件系统中的Jupyter笔记本相同位置的一个数据文件夹中。如果你在系统的其他地方加载了一个cv文件,那么你需要传递该文件的完整路径,而不仅仅是我们这里的相对位置。

我们可以看到在读取我们的Cv文件时可以传递不同的参数。所以在这个例子中,我将索引自动设置为此受访者列,即每个参与此调查的人的受访者ID。当我读取Cv时,我们可以看到它将这个数据框架设置为相等。

例如,我们可以过滤这个调查中的特定位置,可能你正在为你的特定国家进行一些分析,你只想看到来自该位置的调查结果,我们在之前的视频中见过这一点。但是如果我们想过滤,我们可以简单地说我会在这里创建一个过滤器,只要说我想要这里的国家,如果国家等于印度。所以假设你在做一些分析,你只想要来自印度的调查结果,现在我要在这里创建一个新的数据框。

我将称之为Indiadf并做一个DfdoLo并传入过滤器。所以现在如果我做一个Indiadfdohead来查看这个新数据框的开头,如果我们在国家列中查看,那么我们可以看到这里所有的国家现在都设置为印度。所以现在假设我们想将这个新的过滤数据框导出到一个CSv文件。因此,为此我们可以使用两个CSv方法。

所以我们可以说我会说印度下划线Df,这就是我们的数据框do2下划线CSv,现在我将把它传入那个数据目录中的相同位置,然后我将称之为这个修改后的docv。所以如果我运行这个,我们可以看到没有任何错误,现在如果我回去看看我的文件系统,那么我有这个修改后的docv。

所以如果我点击这个。那么我们可以看到这现在是一个小块在一起,因为这是一个CSV文件。我们正在查看一个RosCSsv文件。但我们可以看到我们有所有的列名在这里。然后第二行应该是第一个结果,我可以看到这里我们有印度作为那个国家,如果我查看第二个结果,我们可以看到我们再次有印度,并且在这里再次有印度,我可能看不到,但你知道我们可以假设它在那里,看起来很好。

实际上,它就在那儿。所以我们可以看到我们确实将这个数据框导出到一个新的CSv文件中,所以这很简单。现在让我们看看如何读取和写入一些其他格式。所以你可能会遇到一个制表符分隔的文件,这几乎与CSV文件完全相同。

但是你的数据不是用逗号分隔,而是用制表符分隔。因此,为此,我们仍将使用我们已经看到的相同的CSV方法,但我们将传入一个自定义分隔符,所以我们可以通过将文件扩展名更改为TSV来写入一个制表符分隔的文件,我还将指定一个分隔符参数。所以我会说epSP。然后你想传入你的分隔符。

如果你想传入任何内容,例如用井号分隔的文件或其他内容,但逗号和制表符可能是最常见的。所以我将在这里放一个反斜杠T,因为这就是我们在Python中指定制表符的方式。现在,如果我运行这个单元,我将返回到我们的数据目录,我们可以看到现在我们有这个修改后的doTSv。如果我点击它,我们可以看到这看起来几乎和逗号分隔的文件一样。

但是现在我们这里有制表符而不是逗号。现在,如果你正在读取制表符分隔的CSV文件,你只需要将SP设置为反斜杠T。你可以将其作为参数添加到这里的readCSV,这基本上是相同的。好的,现在让我们继续其他文件格式。

在处理这种数据时,非常流行的文件格式是Excel。现在,如果我们想写入Excel,那么我们需要Pip安装几个软件包。所以我打开了我的终端,当前环境是我在使用的Jupyternotebook。让我抓取我的另一个终端。所以我在Jupiter中使用的是相同的环境。

你想确保使用相同的环境,以便你的Pip安装在正确的位置。现在我们要安装几个软件包。首先,我要说Pipinstall。这是XlWT。Xwt将写入较旧的XlsExcel格式。但如果你想写入较新的Excel格式。

然后我们还需要安装openpiXL。你可以通过列出所有软件包来安装多个。,但只需在这里列出它们。最后,如果我们想读取Excel文件,那么我们可以安装XLRD包。所以我认为这是我们在处理Excel文件时所需的三个软件包。所以我将继续安装所有这些,让它们完成。一旦安装完成。

让我们回到我们的笔记本。现在让我们尝试写入一个Excel文件。为了写入Excel文件,我将写入我们这里的相同修改后的数据框。我们将使用两个下划线Excel方法。这就像传入一个参数一样简单。比如说,我将把它保存在那个数据文件夹中。我将其命名为modifieddotXlsX。

现在,这在Jupiter中可能无法打开,因为这是一个Excel文件。我们可以看到,我们无法在浏览器中打开它。我们实际上需要Excel。所以让我打开我的查找器窗口。我在这里打开了它。我在这个数据文件夹中,我们可以看到我们有修改后的dotXsx文件。

现在我实际上在这台机器上没有Excel,我有Numbers。所以我将在Numbers中打开它。它在Windows上基本上应该是一样的,但你可以直接用Excel打开。再次说明,这可能需要一秒钟来打开,因为我们这里的数据仍然有很多行。好的。

所以我们已经在Excel中打开了这个文件。再次说明,我用的是Numbers,因为我在Mac上,没有安装Excel。但它在Excel中也应该能正常打开。让我放大一点,以便我们可以看到,如果需要,我们可以格式化这些内容。例如,我们可以在这里更改列的大小,使所有内容适应,但我们可以看到我们的回应者是。

如果我查看国家,我们可以看到它确实导出了我们希望导出的过滤数据框。所以一切看起来都很好。现在,我们还可以对Excel做一些更高级的操作。如果你熟悉Excel,可能知道我们有不同工作表的概念,可以在一个Excel文件中有多个电子表格。如果你想读取或写入特定工作表。

那么你可以将工作表参数传递给这些方法。实际上,我正在尝试滚动到我的笔记本上。让我滚动到最底部。正如我所说的,如果你想读取或写入特定工作表,你可以将工作表参数传递给这些方法。还有一种方法可以从不同的列和行开始。

所以我们需要指定我们的索引列是那个回应者列。为了做到这一点,我就叫它测试,因为我们将从刚创建的Excel文件中创建一个新的数据框。我们将使用read_excel方法,并且我想传入位置,我会复制这个位置。

这是我机器上的修改版XlSX。现在我要将索引列设置为回应者,在你的数据中可能会不同,但我希望我的索引列等于那个回应者。所以我将运行那个单元格并加载它,然后查看测试数据框。在我运行这个之前,我会确保这个处理完成,并且这个星号消失。

所以这被导出到Excel并正确导入了。好的。那么现在我们来介绍一些其他流行的文件格式。现在JSon在这种数据中也非常流行。那么我们来看一下。首先,让我们将修改后的数据框写入一个Json文件。对于写入Json文件,我们可以使用to_json方法。

所以你可能开始看到一个模式。这些方法名称非常直接。现在这个稍微有点不同,因为我们可以为Json使用一些不同的方向。因此,只需使用默认参数,我可以说,这就是India_Df.to_json。然后我将传入一个文件位置,但不是Excel文件,而是Json文件。

现在我将暂时使用默认参数。然后我会告诉你如何稍微改变一下。所以如果我运行这个。我们可以看到它运行得非常快。如果我返回到我的数据文件夹。那么现在我们有了这个JSon文件。如果我在这里查看。好的。

这只花了一秒钟就能在我的机器上打开。再说,我们这里确实有很多数据。但是如果我们在这里查看,就会发现这非常像字典。所以我们这里有一个主分支键,然后该键的值是仅针对该列的所有响应。如果我向下滚动,就能找到其他键和其他响应。因此,默认情况下,这就像一个字典类型的Json。现在,我们也可以用不同的方式来编写Json文件。

再次,我不会深入到每一个细节。但假设我们希望这个Json是列表形式而不是默认的字典形式。那么为了做到这一点,我们可以更改orient参数。所以我们在参数中添加一个。并且我会说orient等于。如果我们传入records,并且lines等于true。

然后这将使其变成记录形式,即列表形式。并且lines等于true。让我拼写正确。好吧,只是让每个都在新的一行上。这样可能更容易阅读。如果你想查看可以传递给orient的确切参数,那么再次查看pandas的to_json方法。它会带你到文档中,那里有所有可以传入的不同内容。

所以让我运行这个。现在让我们返回并重新加载我们的Json文件,看看它的样子。现在我们这里有的更像是列表形式。因此在之前我们有一个单一的字典,其中的值是所有响应的列表。但是现在我们一次只有一个响应。所以我们有主分支。然后这实际上是这里的第一个。如果我向下滚动。

我们可以看到这是第二个。这实际上是整个第一个响应。所以我们有主要分支,然后是答案,然后是开源,然后是答案,依此类推。我们在这里看到,对于国家,我们有印度。每个调查中的响应实际上都在不同的行上。

这与之前的情况有点不同,但我们可以根据需要以不同的方式导出这些Json文件。好的。那么现在我们已经将数据写入Json文件。现在让我们也读取这个Json文件,以确保我们知道如何做到这一点。

现在,由于我们在这里使用这些不同的参数写了Json文件。那么在读取数据时,我们也需要使用相同的参数。所以,如果你在读取Json文件时遇到任何问题,那么你可能需要调整不同的参数以适应你尝试读取的数据。

在这种情况下,我要复制整行。然后我会说test等于。实际上,让我先抓取这部分。我会说pd.read_json,然后将所有这些参数传递在这里。所以我们从这个位置读取JSON文件。我们知道Orient是列表而不是字典,并且这些都是在新行上。

同样,根据你的JSON数据,你可能需要根据数据的外观来调整这些设置。所以如果我运行这个,看看。如果我们有之前导出的相同数据。看起来是这样的,这看起来与我们导出数据时完全相同。好的。那么我们要查看的最后一种文件格式。

首先,让我们看看如何连接到这个数据库。现在,就像使用Excel一样,我们需要安装一个包来实现这一点。所以让我打开我的终端。我要关闭这个数字文件。让我试着退出这个,实际上,我会把它最小化。关闭时遇到了一些麻烦。好的。

让我回到我希望能打开以安装一些不同包的终端。这是我的Jupyternotebook。我的另一个终端在哪里?来了。好的。那么要连接到我们的数据库,我们需要安装SQLAlchemy。这是一个非常流行的PythonORM,它使我们更容易处理数据库。

如果你不知道什么是ORM,它是对象关系映射的缩写。这只是我们用Python对象连接到数据库的一种方式。我计划将来制作一个关于SQLAlchemy的完整视频或系列教程。但现在,让我们继续安装这个。所以这是PipinstallSQLAlchemy。我将安装它。

根据你使用的数据库,你可能在这里不需要做其他任何事情。例如,如果你使用的是SQLite或类似的东西。但由于我在这个教程中使用的是Postgres数据库,我还需要安装psycopg2包,以便我们能够使用Postgres。

我不确定这是否是这个包的正确发音,但我一直都是这么称呼它的。所以Pipinstall以安装这个与Postgres一起使用的包,它是psycopg2-binary。所以我将安装它,安装了这些包后,让我们回到我们的笔记本,看看能否使用SQLAlchemy连接到这个数据库。

首先,我们需要导入所有需要的内容。所以从SQLAlchemy中,我将导入他们的创建引擎,这将允许我们连接到数据库。现在我还需要导入psycopg2。所以让我运行这个单元,现在这些都已导入,我们应该能够创建引擎。

但是如果你在做生产代码,我强烈建议使用环境变量,这样你就不会在代码中暴露用户名和密码。好的,所以我们有了我们的用户名和密码。现在是我们想要连接的数据库。这是在本地主机上。这是在我的本地机器上。它运行在5432端口,现在是数据库的名称。

现在我在这里打开了Pg管理器,可以看到我的数据库。我们可以看到我刚刚创建了一个名为sampleunderscoreDb的空数据库。这就是我将要连接的数据库。好的,如果我在这里输入的内容正确,那么我应该能够连接到这个数据库。

现在让我们尝试将修改后的数据库框架写入这个数据库中的一个表。这个表不需要当前存在。默认情况下,它会为我们创建这个表。如果它已经存在,我们需要添加另一个参数来处理。但我们马上就会看到这一点。为了做到这一点,我可以直接说IndiaunderscoreDf。

这是我们想要导出的数据框。接着是tounderscoreSQO。现在我们想要写入此数据的表。我将其称为sampleunderscoretable。现在,这个表目前不存在,但它应该会被创建。现在我们需要传入我们的数据库连接。

我称之为引擎。现在让我们传入它。如果我运行这个,我们来看看它是否有效。好的,所以在我读取或写入时没有出现任何错误。但现在让我们回到我的PG管理器,看看我能否看到这个表。首先,我只需右键单击并刷新。我喜欢在进行任何更改时这样做。

我们可以在这里看到,我们在下面有一个样本表。我将右键单击它,选择查看和编辑数据,查看所有行。我们可以看到这确实有效。我知道在我的屏幕上可能有点难以看到,但我们的所有数据都写入了数据库。好的。

所以能够将数据从pandas导入SQL很好。但是如果我们更新了数据并希望将其重写到这个数据库中怎么办?让我们回到我们的笔记本,看看这将是什么样子。现在,如果我尝试再次运行这行,将其导出到SQL。

然后我们实际上会得到一个错误,因为这个表已经存在。如果你想覆盖一个表,我们可以添加一个额外的参数。我们想要添加的参数称为ifunderscoreexists等于。现在,如果这个表已经存在,我们该怎么办。现在,在我的情况下。

但还有其他选项。我们可以让它抛出一个错误,这就是默认情况下的行为。我们也可以将数据追加到一个表中。因此,如果你在进行每日脚本以分析信息,你可以将每日数据追加到现有表中,但对于这个例子来说。

我只是要用这个替换表。现在运行这个,处理完成后我会回到PGadmin,再次让我上去刷新一下,深入数据库,关闭这个视图,看看我们是否仍然有这个数据。好的,我们可以看到这个有效,我们能够重新运行那个命令,并且用我们的新数据替换了原有表中的数据。在这个情况下,它是相同的。

那么请回去查看我们如何将数据写入数据库,并看看我在这里是如何设置这个数据库连接的,因为我们将重用那个连接来读取我们的数据。好了,所以这现在很简单,因为我们实际上已经设置好了这个数据库连接来做到这一点。

我们可以简单地说我会称之为SQL_df。然后我们会说pd.read_sql,现在我们想传入我们要读取的表。那个是sample_table,现在传入我们的数据库连接。我这里的连接。

我称之为engine。而且,我还会传入一个索引列,就像我们在读取CSV时所做的那样。所以我会说索引列等于,这将是你数据中的这个respondent行,可能会有所不同。因此,无论你想要什么作为索引,都可以传入。如果你想让pandas使用默认索引,那么你可以完全省略这个。好的,如果我运行这个,那么让我们看看SQL_df.head以确保这个有效。

我们可以看到这运行得很好,我们仍然有与开始时相同的数据框,我们将这些国家筛选为仅来自印度的结果。现在可能有一些情况,你不想加载整个表,而是想运行一个特定的SQL查询来加载我们的数据。

我们可以使用方法read_sql_query来运行一个特定的SQL查询。所以让我复制我在这里所做的,并粘贴到这里。现在我不打算读取整个表,而是实际上要在这里运行一个查询。所以我会做read_sql_query。现在在这里不再是表名。

我实际上要传入一个SQL查询。现在我只是要在这里加载所有内容。所以我会说select*fromsample_table,其他所有内容都将是相同的。我们仍然有我们的数据库连接,并且我们仍然希望索引列等于respondent。所以这仍然会抓取所有行,但如果你想自定义这个。

然后你可以在这里添加一个where子句来过滤数据。让我来运行一下。现在我们来看一下我们的SQL数据框。我们可以看到这也成功了。因此,我们使用SQL查询加载这些数据,而不是简单地读取整个表。这在处理大数据库时特别有用,你只想通过查询加载特定数据。

好的,我们快要完成了。但在结束之前让我再给你一个提示。你可能见过一些人使用URL而不是特定文件加载数据,这对于我们之前看过的一些方法是可以的。你只需确保使用正确的方法来处理URL上的数据格式。

例如,在我的Flask和Django系列中,我创建了一个Json文件,其中包含该系列网站的一些示例帖子。这个Json文件在我的GitHub页面上。如果我想将其引入pandas,那么我可以简单地使用读取Json方法,并传入那个URL。实际上我不需要先下载那个Json,然后再以那种方式传入。

我在这里打开这个。如果你不知道,GitHub上可以查看原始文件。我们可以看到这里有一个很长的URL,但我会在下面的描述部分发布这段代码,方便你跟进。所以我将复制这个URL。这不在我的文件系统上。现在看看我们是否可以直接加载它。我将这个命名为post_df。

我将其设置为PD.dot.read_json,因为这是URL上的Json。如果是Cv,你需要使用read_csv,依此类推。现在我可以在这里粘贴那个URL。现在让我们运行这个单元格。我们可以看到没有出现错误。现在我来查看一下我们数据框的头部。我们可以看到我确实有我的示例帖子。

这些是我在那个网站系列中使用的示例帖子。因此,根据那个URL中的数据,你应该能够使用我们看到的方法,从URL加载数据,就像我们在这里做的一样。在结束之前,我想感谢本视频的赞助商,那就是Brilliant。我非常喜欢Brilliant提供的教程,绝对推荐你去看看。

Brilliant是一个问题解决网站,通过主动完成指导课程来帮助你理解基础概念。Brilliant是补充你在这里学到的内容的绝佳方式,提供动手课程。他们在数据科学方面有一些优秀的课程和课程,深入探讨如何正确思考和分析数据。因此,如果你在看我的Pandas系列,是因为你想进入数据科学领域。

在该语言中组织数据。它们的指导课程会挑战你,但你也可以获得提示甚至解决方案,如果你需要的话。它真的很注重理解材料。所以支持我的频道并了解更多关于brilliant的信息。

你可以去brilliant.org注册免费账户,并且前200位访问该链接的人将获得年度高级订阅20%的折扣,你可以在下面的描述部分找到这个链接。再次提醒,那是brilliant.org,所以我认为这段pandas视频就到这里。

但与此同时,如果你想找到一个学习pandas的好资源,那么我强烈建议你查看DataSchool频道。这个频道由KevinMarkham运营,他已经在Pycon上做了几年的pandas教程,他并没有让我推荐他的频道,我只是认为他做得很好。其实他的频道完全致力于pandas和数据科学。

THE END
1.艺术签名设计新思路,AI设计来啦00:00/00:00 艺术签名设计新思路,AI设计来啦 大娟爱风景发布于:安徽省2023.07.27 09:30 分享到https://www.sohu.com/a/706578473_121695662
2.Ai里钢笔工具设计艺术字体过程智能机械战队 24-12-8 07:31 发布于 北京 来自 微博视频号 Ai里钢笔工具设计艺术字体过程 - (本内容由AI生成)#AI探索计划# #AI创造营# L智能机械战队的微博视频 小窗口 ?收藏 转发 评论 ?赞 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候 ühttps://weibo.com/5067535466/5109211031930695
3.图书排行:计算机书籍每周销量排行榜Top06:Photoshop CC从入门到精通PS教程(全彩视频版)重印40次销售25万册 作者:唯美世界 出版社:水利水电出版社 Top07:深度学习 人工智能算法,机器学习奠基之作,AI圣经 作者:[美]Ian Goodfellow(伊恩·古德费洛)、[加]Yoshua Bengio(约书亚·本吉奥)、[加]Aaron Courville(亚伦·库维尔) https://www.jianshu.com/p/933988f36e71
4.盘点200款超好用的AI工具,打工人必看!!!lumaaiCartoonize - 使用 AI 将照片变成卡通风格图像的工具 Diffusion Land - 一种使用人工智能和机器学习生成图像的工具 Erase.bg - 使用 AI 从图像中删除背景的工具 Eye for AI - 一个使用人工智能为营销和品牌生成图形和设计的平台 Mage Space - 一种使用人工智能和机器学习生成独特和个性化图像的工具 https://blog.csdn.net/logic1001/article/details/135763420
5.阮一峰的网络日志FeedsAnywhere一篇初学者教程,关于怎么用 Docker Compose 在本机架设数据库应用。 工具 1、Bananas 从中可以学习,怎样的控制台设计才是好的。 下面是一些糟糕的设计,你根本分不清,什么操作用什么按钮。上面有两个选项,"创建智能体"是创建一个传统的 AI 聊天,"创建应用"则是创建一个自定义界面的 AI https://feedsanywhere.com/feed/39994
6.DizzyK/ustccyber算法分析与设计 教材: 算法导论 ( 原书第3版 ) , 机械工业出版社, Thomas H. Cormen 教学内容: 算法入门, 函数增长, 递归分析, 分治策略, 概率分析人工智能导论 教材: 人工智能导论模型与算法, 高等教育出版社, 吴飞 参考书: 机器学习, 清华大学出版社, 周志华 很有名的一本书, 绰号"西瓜书" https://toscode.gitee.com/DizzyK/ustc_cyber_security
7.论文分享丨人工智能如何赋能传统工艺美术传承?图8.智能绘画系统:“AI赞绘:金山农民画”的界面设计与互动流程 3 收获与反思:延展工艺美术的技艺与数字工具的关系 这套系统运行三年,累计有上万人参与创作。参与者只需通过选择主题、手绘元素、签名、生成四步,即可生成出一幅自己的金山农民画。一键优化的功能则在参与者创作的画作基础上二次加工,使参与者发现更多https://www.d-arts.cn/article/article_info/key/MTIwNDAxMTc0MDWD34Wsr4bKcw.html
8.flygondahanghai2024/docs/ai对于有一定基础的从业者,比如设计师,也可以通过 AI 绘画,提升工作效率。在老板说出“五彩斑斓的黑”的需求的时候,你可以通过 AI ,提前给老板样稿,对齐思路,节省后续的沟通和修改。 总的来说,AI 绘画是一个非常先进且充满创意的领域,它通过人工智能技术,让计算机不仅能够理解艺术,还能创造艺术。随着技术的进步,我们https://github.com/OpenDocCN/flygon-dahanghai-2024/blob/master/docs/ai-huihua/README.md
9.发布白皮书,全部功能及重要更新ReleaseNoteOdooAi欧度智能比尔人工智能 供应商帐单行上的税收和帐户预测现在始终处于激活状态。可以在设置中激活产品预测。 分支机构改进了链接缩略图的设计。 键盘快捷键 添加了用于快速访问和导航的键盘快捷键。 通过URL 导航 通过URL显示最流行的知识文章、论坛帖子和电子学习课程的链接。 库存 自动批次 仅在就绪阶段对操作进https://www.odooai.cn/en/blog/odoo-install-6/odoo17-official-release-all-functions-and-important-updates-315
10.深度学习人工智能创造艺术作品:创意对抗网络(CAN)【深度学习】人工智能创造艺术作品:创意对抗网络(CAN) 人类编程或教授给计算机最困难的事情之一是创造性的思考。计算机能非常好地完成我们告诉他们做的事情并且完成速度很快,但是创造是一个抽象的概念,教机器的创造已经被证明给机器学习带来了很大挑战。 6月份,罗格斯大学(Rutgers)发表了发表了一篇研究论文,向世界介绍了https://cloud.tencent.com/developer/article/1050686
11.AI人工智能思维导图原图下载:https://pan.baidu.com/s/115K0tgORMQAdUVyg2srk-Q?pwd=1314提取码:1314延伸阅读:62页PPT,初步看懂人工智能!入门必读!写给初学者https://www.eet-china.com/mp/a338121.html
12.人工智能第一次代码.txt基于NineAI 二开的可商业化 AI Web 应用.zip 快应用开发 上传者:admin_maxin时间:2024-02-09 Python入门1.txt 入门教程,可载入python解释器,边看边实操,加强学习快乐,适合初学者 上传者:qq_54812919时间:2021-03-06 第二次python考试编程题代码.zip https://www.iteye.com/resource/weixin_43580684-11171571
13.电子邮件签名设计图片免费下载电子邮件签名设计素材现代时尚的下第三横幅模板设计。矢量视频标题。矢量插画 免费下载渐变颜色的电子邮件签名集合AI人工智能大自然 免费下载平面样式的电子邮件签名集合AI人工智能大自然 免费下载平面设计空白电子邮件模板AI人工智能 免费下载带有联系表的信封和电子邮件模板AI人工智能 免费下载技术摘要 facebook 封面图书书籍 免费下载平面设计https://www.58pic.com/tupian/dianziyoujianqianmingsheji.html
14.人工智能专业英语教程Unit1ArtificialIntelligence.ppt人工智能专业英语教程 Unit1 Artificial Intelligence.ppt,参考图书 参考图书 参考图书 参考图书 Thank You! 文秘英语 陈红美 司爱侠 编著 人工智能专业英语教程 Artificial Intelligence (AI) Unit 1 Contents New Words Abbreviations Phrases Notes 参考译文 New Words Nhttps://max.book118.com/html/2021/0623/8060053043003113.shtm
15.配音在线生成免费人工智能名片在线制作免费生成?什么是AI在线免费写作生成器 AI在线免费写作生成器是一种利用人工智能技术,能够自主产生文章和文本内容的软件工具。通过对大量的数据进行学习和分析,这些工具可以自动生成高质量的文章,极大地提高了写作效率和质量。 AI在线免费写作生成器的优点 提高写作效率 https://tool.a5.cn/article/show/72608.html
16.易百教程?它可以在不同的平台上工作,并且已经被重新设计,使.NET变得快速,灵活和现代。 A/B测试教程AIML教程 AIML代表人工智能建模语言。 AIML是一种基于XML的标记语言,旨在创建人工智能应用程序。 AIML可以Java运行于各种平台,如Windows,Mac OS和各种版本的UNIX。本教程提供Java学习和入门实例及步骤。 https://www.yiibai.com/
17.Paragoger衍生者AI训练营AIGCRAG人工智能残疾、无障碍和人工智能 09500 chris 2024-09-17 随笔 AI如何在各个行业和职业中创造历史上最大的生产力飞跃 08500 chris 2024-09-17 随笔 从语法到语义:代码如何将 LLM 转化为更好的模型 08500 chris 2024-09-14 随笔 DeepMind 的 AlphaProteo:利用机器学习彻底改变蛋白质设计 09600 chrishttps://www.shxcj.com/
18.10款优秀的AI生成logo软件,简单易上手Looka 是一个在线AI logo生成软件,它通过收集市场研究来为你打造专属标志。它会问你一些关于行业的问题,并给出多种风格供你选择。你还可以添加一句口号,让品牌信息更明确地传达出去。在AIlogo生成后,你可以随意修改,直到满意为止。Looka 利用机器学习和人工智能技术给出现代化的建议,帮助优化你的标志设计。其功能强https://pixso.cn/designskills/10-ai-logo-generation-softwares/
19.AI辅助编程实战本书深入探讨了AI(人工智能)如何革新软件开发领域,从AI辅助编程的演变、优势与挑战到具体的工具与技术实现,为开发者打开了一个全新的世界。全书共10章,第1章介绍了编程的历史演变和生成式AI的崛起;第2章深入技术细节,解释了AI辅助编程工具的主要功能和工作原理;第3章讨论了提示工程的重要性,以及如何与AI工具进行有https://labs.epubit.com/bookDetails?id=UB88f34e144bd9e
20.人工智能辅助智慧医疗系统建设项目初步设计的批复(二)建设人工智能辅助智慧医疗系统:新建基层人工智能辅助医疗子系统、AI影像处理子系统、基层卫生一体化子系统、基层远程医疗子系统、基层运行监管子系统等5个系统,为我省基层医疗机构提供全方位支撑,提升我省基层医疗信息化水平。 1.基层人工智能辅助医疗子系统,主要包括基层智能辅助诊疗系统和基层公卫智能随访系统,其中https://www.jiangxi.gov.cn/art/2023/9/2/art_15409_4808357.html