KDNuggets 博客中文翻译(二百五十九)

原文:KDNuggets

协议:CC BY-NC-SA 4.0

解锁 GPT-4 摘要能力与 Chain of Density 提示

原文:www.kdnuggets.com/unlocking-gpt-4-summarization-with-chain-of-density-prompting

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

图像由作者使用 Midjourney 创建

关键要点

  • Chain of Density(CoD)是一种新颖的提示工程技术,旨在优化像 GPT-4 这样的大型语言模型的摘要任务。

  • 该技术处理生成摘要中的信息密度,提供一个既不稀疏也不密集的平衡输出。

  • CoD 对数据科学有实际意义,尤其是在需要高质量、上下文适当的摘要任务中。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你的组织的 IT


选择摘要中包含的“正确”信息量是一项困难的任务。

介绍

提示工程是推动生成式 AI 效能提升的动力。虽然现有的提示技术如 Chain-of-ThoughtSkeleton-of-Thought 关注结构化和高效的输出,但一种名为 Chain of Density(CoD)的新技术旨在优化文本摘要的质量。这项技术解决了选择“正确”信息量以确保摘要既不过于稀疏也不过于密集的挑战。

了解信息密度链

Chain of Density(信息密度链)旨在提高像 GPT-4 这样的大型语言模型的摘要能力。它专注于控制生成摘要中的信息密度。一个平衡良好的摘要通常是理解复杂内容的关键,而 CoD 旨在达到这种平衡。它使用特殊的提示来引导 AI 模型包含必要的要点,同时避免不必要的细节。

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

图 1:使用示例的密度链过程(来自 Sparse to Dense: GPT-4 Summarization with Chain of Density Prompting)(点击放大)

实施密度链

实施 CoD 涉及使用一系列链式提示来引导模型生成总结。这些提示旨在控制模型的焦点,引导其关注重要信息,避免无关细节。例如,你可以从一个概括性的总结提示开始,然后跟进具体提示以调整生成文本的密度。

密度链提示过程步骤

  1. 确定待总结的文本:选择你希望总结的文档、文章或任何文本。

  2. 制作初始提示:创建一个针对选定文本的初始总结提示。目标是引导大型语言模型(LLM),如 GPT-4,生成一个基本总结。

  3. 分析初始总结:审查从初始提示生成的总结。确定总结是否过于稀疏(缺少关键细节)或过于密集(包含不必要的细节)。

  4. 设计链式提示:根据初始总结的密度,构建额外的提示来调整总结的详细程度。这些就是“链式提示”,是密度链技术的核心。

  5. 执行链式提示:将这些链式提示反馈给 LLM。这些提示旨在通过添加必要细节来增加密度,或通过删除不必要的信息来降低密度。

  6. 审查调整后的总结:检查通过执行链式提示生成的新总结。确保它捕捉到所有关键点,同时避免不必要的细节。

  7. 如有必要,进行迭代:如果总结仍未达到所需的信息密度标准,请返回第 4 步,调整链式提示。

  8. 完成总结:一旦总结达到所需的信息密度水平,即视为完成并准备使用。

密度链提示

以下 CoD 提示直接取自论文。

文章:{{ ARTICLE }}

你将生成越来越简洁、实体密集的上述文章总结。

重复以下 2 个步骤 5 次。

第 1 步。识别文章中缺失的 1-3 个信息实体(用“;”分隔)。

第 2 步。写一个新的、更紧凑的总结,长度相同,覆盖前一个总结中的每个实体和细节,以及遗漏的实体。

遗漏的实体是:

  • 相关的:与主要故事相关。

  • 具体的:描述性但简洁(5 个词或更少)。

  • 新颖的:在前一个总结中没有。

  • 忠实的:在文章中存在。

  • 任何地方:位于文章的任何位置。

指导原则:

  • 第一个总结应长(4-5 句,约 80 个单词)且高度非特定,包含除了缺失实体之外的信息很少。使用过于冗长的语言和填充词(例如,“本文讨论了”)以达到约 80 个单词。

  • 让每一个词都发挥作用:重写之前的总结以改进流畅性并为附加实体腾出空间。

  • 通过融合、压缩和移除诸如“本文讨论了”等无信息性短语来腾出空间。

  • 总结应变得高度密集且简洁,但内容自成一体,例如,即使没有文章也能轻松理解

  • 遗漏的实体可以出现在新的总结中的任何位置。

  • 永远不要从先前的总结中删除实体。如果没有空间,可以减少新增实体的数量。

记住,每个总结的字数要完全相同。

以 JSON 格式回答。JSON 应该是一个长度为 5 的字典列表,字典的键为“Missing_Entities”和“Denser_Summary”。

信息密度链并不是一刀切的解决方案。它需要精心编排的链式提示,以适应任务的具体需求。然而,当正确实施时,它可以显著提高 AI 生成总结的质量和相关性。

结论

信息密度链(Chain of Density)为提示工程提供了新的途径,特别是旨在改善总结任务。它对信息密度的控制使其成为生成高质量总结的宝贵工具。通过将 CoD 融入你的项目中,你可以利用下一代语言模型的高级总结能力。

Matthew Mayo (@mattmayo13) 拥有计算机科学硕士学位和数据挖掘研究生文凭。作为 KDnuggets 的主编,Matthew 旨在使复杂的数据科学概念变得易于理解。他的专业兴趣包括自然语言处理、机器学习算法和探索新兴的 AI。他的使命是让数据科学社区的知识变得更加普及。Matthew 从 6 岁起就开始编程。

Matthew Mayo (@mattmayo13) 拥有计算机科学硕士学位和数据挖掘研究生文凭。作为 KDnuggetsStatology 的执行主编,以及 Machine Learning Mastery 的特约编辑,Matthew 旨在使复杂的数据科学概念变得易于理解。他的专业兴趣包括自然语言处理、语言模型、机器学习算法和探索新兴的 AI。他的使命是让数据科学社区的知识变得更加普及。Matthew 从 6 岁起就开始编程。

更多相关内容

解锁健康经济学和结果研究中的数字力量

原文:www.kdnuggets.com/2023/07/unlocking-power-numbers-health-economics-outcomes-research.html

在健康经济学和结果研究中,数据的可用性是一个关键挑战,因为获得适当的数据,尤其是长期结果和成本统计数据,可能很困难。此外,不同来源的数据的质量和一致性可能会变化,使得确认结果的可信度变得不可能。HEOR 研究中经常使用复杂的设计和程序来回答特定的研究问题。选择正确的研究设计,如观察研究、随机对照试验或建模方法,需要深思熟虑。

选择适当的统计方法、样本大小和终点引入了额外的障碍,这可能影响结果的有效性。经济建模在 HEOR 中至关重要,因为它估算长期成本、结果和成本效益。然而,开发稳健的经济模型需要做出假设和简化,这可能会导致不确定性和偏差。在建模假设的透明性和用真实数据测试模型输出方面至关重要,但也很困难。为了应对 HEOR 中的这些定量问题,经济学家、统计学家、流行病学家、医生以及其他相关专业人员必须共同合作。提高 HEOR 研究的严谨性和可信度还需要持续的方法学突破、数据标准化工作和稳健的统计研究。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织在 IT 方面。


通过统计学应对挑战

在健康经济学和结果研究中,量化挑战可以通过统计学有效解决。统计学可以通过分析和解释数据提供对医疗保健多个方面的重要见解,包括患者结果、治疗效果和成本效益。

为了更好地提供决策支持并提升医疗服务,研究人员可能会使用统计方法来发现大数据集中的模式、趋势和联系。统计学对健康经济学和结果研究的进步至关重要,无论是用于评估新治疗的效果还是医疗干预的有效性。在解决健康经济学和结果研究(HEOR)中的定量问题时,统计方法绝对不可或缺。

研究人员可以通过这些工具进行复杂的数据分析,评估治疗效果,并做出明智的判断。统计方法如回归分析、生存分析、倾向评分匹配和贝叶斯建模对于确定关联、控制混杂因素和估计治疗效果非常有帮助。其他统计方法包括生存分析和贝叶斯建模。

此外,高级建模技术如成本效益分析和决策树有助于简化经济分析和资源分配决策。HEOR 研究通过利用强大的统计工具,有潜力提高研究结果的准确性、可靠性和推广性。这将最终改善医疗政策和实践。

下面我们探讨两种在从经济角度评估医疗干预影响时至关重要的方法。

Markov 链

Markov 链在创建成本效益模型时可能是一种极好的技术。Markov 链通过模拟不同状态间的变化,能够揭示不同变量如何影响系统的总成本。例如,Markov 链可以帮助估计治疗特定疾病的长期成本,通过模拟患者在不同健康阶段之间的转变。

在图 1 中,我们比较了有无治疗干预的疾病转归概率图。最初,我们可以观察到从阶段 1 到阶段 2 的转归概率为 0.3,从阶段 2 到阶段 3 为 0.4,依此类推。然而,当治疗在阶段 1 后引入时,我们可以观察到从阶段 1 到阶段 2 的转归概率降低到 0.1,如果治疗继续到阶段 2,则从阶段 2 到阶段 3 的转归概率也降至 0.1,从而确认了治疗/药物的有效性。因此,我们可以得出结论,治疗帮助减少了疾病进展到最新阶段的概率 1/3,并可能提高了患者的质量调整生命年(QALY),从而帮助我们估算治疗成本的减少。

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

图 1:基于 Markov 过程的转归图

此外,干预的时机或治疗选择是与资源分配相关的两个决策,这些决策可以通过使用马尔可夫链进行优化。马尔可夫链有助于提高成本效益模型的准确性和可靠性,这将最终通过提供对影响成本效益的因素的更全面的理解,带来更好的医疗决策及其他行业的决策。

贝叶斯推断

在从财务角度评估医疗干预的价值时,贝叶斯推断是有帮助的。贝叶斯推断通过将先前的知识和信息考虑在内,使研究人员能够更准确地预测结果并评估可能干预的效果和成本效益。由于允许研究人员用已有的知识填补数据空白,这种方法在数据稀缺或不足时尤为有用。通过采用贝叶斯推断,研究人员可以提高成本效益评估的精确度和可靠性,从而改进医疗决策和患者结果。通常,贝叶斯定理如下所示:

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

贝叶斯推断是一种在医疗行业中越来越受欢迎的统计方法,用于评估干预的效果。贝叶斯推断通过考虑先前的信息并结合新的证据进行更新,使得对特定治疗或干预成功的可能性进行更精确的估计。它是一位教学教授,任教于波士顿东北大学的数据科学硕士课程。他在多机器人系统和强化学习方面的研究已发表于人工智能领域的顶级期刊和会议上。他还是 Medium 社交平台的顶级作者,经常发布关于数据科学和机器学习的文章。

例如,在研究一种新药的效果时,贝叶斯推断不仅可以考虑原始数据,还可以结合关于药物作用机制、潜在副作用以及与其他药物的相互作用的先验知识。这种方法可以提供更具信息性和准确性的药物疗效与安全性评估,从而帮助指导临床决策。

研究遗传数据以寻找潜在的疾病风险因素是贝叶斯推断在医疗保健中的另一个应用。通过结合关于影响疾病风险的遗传和环境因素的先验知识,贝叶斯推断可以帮助识别新的干预目标,并提高我们对疾病基本机制的理解。

另一个例子是评估医疗保健政策和干预措施。通过整合类似政策和干预措施的有效性先前数据,政策制定者可以做出更明智的决定,确定实施哪些政策以及避免哪些政策。总体而言,贝叶斯推断是评估医疗保健干预措施的强大工具,允许进行更准确和信息丰富的决策。

此外,预测建模如线性回归是贝叶斯推断在医疗保健中使用的各种方式之一。贝叶斯推断可以通过考虑患者的病史、症状和其他风险因素,帮助做出更准确的健康结果预测。

总的来说,贝叶斯推断是一种有效的技术,用于评估医疗保健干预措施,能够通过提供关于健康结果的更精确和详细的预测,帮助患者获得更好的结果,并做出更好的临床决策。

Mayukh Maitra 是沃尔玛的数据显示科学家,专注于媒体混合建模领域,拥有超过 5 年的行业经验。从构建基于马尔科夫过程的医疗保健结果研究模型,到进行基于遗传算法的媒体混合建模,我不仅对人们的生活产生了影响,还通过有意义的洞察力将企业提升到新的水平。在加入沃尔玛之前,我曾有机会在 GroupM 担任数据科学经理,专注于广告技术领域,在 Axtria 担任决策科学高级助理,涉及健康经济学和结果研究领域,并在 ZS Associates 担任技术分析师。除了我的专业角色外,我还曾参与多个同行评审会议的评审和技术委员会,有机会担任多个技术奖项和黑客马拉松的评审。

更多相关话题

通过验证链解锁可靠生成:提示工程的新飞跃

原文:www.kdnuggets.com/unlocking-reliable-generations-through-chain-of-verification

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

图片由作者使用 Midjourney 创建

主要收获

  • 验证链(CoVe)提示工程方法旨在减轻 LLMs 中的幻觉问题,解决生成看似正确但实际上不准确的信息

  • 通过一个四步过程,CoVe 使 LLMs 能够起草、验证和改进回答,培养一种增强准确性的自我验证机制,结构化自我验证

  • CoVe 在各种任务中展示了改进的性能,例如基于列表的问题和长文本生成,展示了其在减少幻觉和增强 AI 生成文本准确性方面的潜力


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业道路。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你组织的 IT 工作


我们研究了语言模型在回应过程中反思其回答以纠正错误的能力。

介绍

在人工智能(AI)领域,对准确性和可靠性的不断追求带来了提示工程中的突破性技术。这些技术在指导生成模型提供精确且有意义的回答方面发挥了关键作用。最近出现的验证链(CoVe)方法标志着这一追求的重要里程碑。这一创新技术旨在解决大语言模型(LLMs)中的一个臭名昭著的问题——生成看似正确但实际上不准确的信息,俗称幻觉。通过使模型对其回答进行反思并经历自我验证过程,CoVe 在提高生成文本的可靠性方面树立了一个有前途的先例。

大型语言模型(LLMs)蓬勃发展的生态系统,凭借其基于大量文档语料库处理和生成文本的能力,在各种任务中表现出卓越的能力。然而,一个持续存在的问题是——生成虚假信息的倾向,尤其是在较少知晓或罕见的话题上。验证链方法在这些挑战中成为了一线希望,提供了一种结构化的方法来最小化虚假信息,并提高生成响应的准确性。

理解验证链

CoVe 展开了一个四步骤机制,以减轻 LLMs 中的虚假信息:

  • 草拟初步回应

  • 规划验证问题以核查草稿

  • 独立回答这些问题以避免偏见

  • 基于答案生成最终验证回应

这种系统化的方法不仅解决了虚假信息的问题,还包含了一个自我验证的过程,提升了生成文本的正确性。该方法的有效性已在各种任务中得到验证,包括基于列表的问题、闭卷问答和长篇文本生成,展示了虚假信息的减少和性能的提升。

实施验证链

采用 CoVe 涉及将其四步骤过程融入 LLMs 的工作流程。例如,当任务是生成历史事件列表时,使用 CoVe 的 LLM 会首先草拟一个回应,计划验证问题以事实核查每个事件,独立回答这些问题,最后根据验证结果生成经过验证的列表。

CoVe 固有的严格验证过程确保了生成的回答具有更高的准确性和可靠性。这种对验证的严谨态度不仅提升了信息质量,还在 AI 生成过程内培养了问责文化,为实现更可靠的 AI 生成文本迈出了重要一步。

示例 1

  • 问题:列出 20 世纪的著名发明。

  • 初稿:互联网、量子力学、DNA 结构发现

  • 验证问题:互联网是在 20 世纪发明的吗?量子力学是在 20 世纪发展的吗?DNA 的结构是在 20 世纪发现的吗?

  • 最终验证回应:互联网、青霉素发现、DNA 结构发现

示例 2

  • 问题:提供一个非洲国家的列表。

  • 初稿:尼日利亚、埃塞俄比亚、埃及、南非、苏丹

  • 验证问题:尼日利亚在非洲吗?埃塞俄比亚在非洲吗?埃及在非洲吗?南非在非洲吗?苏丹在非洲吗?

  • 最终验证回应:尼日利亚、埃塞俄比亚、埃及、南非、苏丹

采用 CoVe 涉及将其四步骤过程整合到 LLM 的工作流程中。例如,当任务是生成历史事件列表时,使用 CoVe 的 LLM 将首先起草一个回应,计划验证问题以核实每个事件,独立回答这些问题,最后根据收到的验证生成一个经过验证的列表。

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

图 1:简化的 Chain-of-Verification 过程(图像来源:作者)

该方法需要上下文示例以及提问 LLM 的问题,或者可以对 LLM 进行 CoVe 示例的微调,以便在这种方式下处理每个问题,如有需要。

结论

Chain-of-Verification 方法的出现证明了在提示工程中朝着实现可靠和准确的 AI 生成文本所取得的进展。通过直面幻觉问题,CoVe 提供了一种强有力的解决方案,提升了 LLM 生成信息的质量。这种方法的结构化方法,加上其自我验证机制,代表了在促进更可靠和真实的 AI 生成过程方面的重要跃进。

CoVe 的实施是对从业者和研究人员的号召,继续探索和完善提示工程技术。拥抱这些创新方法将对释放大型语言模型的全部潜力至关重要,预示着一个未来,在这个未来中,AI 生成文本的可靠性不仅是一个愿景,而是一个现实。

Matthew Mayo (@mattmayo13) 拥有计算机科学硕士学位和数据挖掘研究生文凭。作为 KDnuggetsStatology 的主编,以及 Machine Learning Mastery 的特约编辑,Matthew 旨在使复杂的数据科学概念变得易于理解。他的专业兴趣包括自然语言处理、语言模型、机器学习算法以及探索新兴的人工智能。他致力于使数据科学社区的知识民主化。Matthew 从 6 岁起就开始编程。

更多相关主题

初级数据科学家和高级数据科学家之间的无形差异

原文:www.kdnuggets.com/2020/10/unspoken-difference-junior-senior-data-scientists.html

评论

Mısra Turp,数据科学家

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

图片由 Christina @ wocintechchat.com 提供,来源于 Unsplash

成为高级数据科学家被视为一种终极成就,尽管许多人并不知道担任高级职位真正意味着什么。最常见的印象是,作为高级数据科学家意味着你了解所有关于数据科学的知识,并且是真正的专家。这确实是对的,但仅在一定程度上,因为数据科学的学习永无止境。此外,成为高级数据科学家不仅仅是技术知识这么简单。

你可能会想,为什么我现在应该关心这个呢?我认为了解数据科学家所遵循的标准路径是重要的,这样你可以更明智地决定自己想处于这个路径的哪个方面。简单来说,了解得越多,当在两个公司、两个职位或两个项目之间做选择时,你就会更容易做出决策。

[参加免费的 数据科学入门迷你课程 以更好地了解数据科学是什么,它在更大的人工智能世界中的定位以及学习所需的要求。]

让我们看看数据科学家的通常职业生涯是什么样的。

初级数据科学家

背景

作为初级数据科学家,对你的期望是拥有基本的数据科学知识。你的能力应该足以独立完成任务或在更资深同事的帮助下完成任务。此时,你可能没有太多的专业实践经验。

学习

你应该乐于学习,不怕问很多问题。更资深的同事会乐意帮助你学习。作为初级数据科学家,你每天学到新东西也不会令人惊讶。

项目

你的主要职责将是被分配给你的任务。当你遇到问题时,你将得到更资深的数据科学家的帮助。除了你的技术能力外,你还需要对与特定任务相关的领域有良好的理解。

数据科学家

在初级数据科学家之后,你很可能会进入一个过渡角色,通常被称为数据科学家。

背景

此时,你对数据科学的主要概念和技术的知识必须扎实。这并不意味着你已经知道一切。相反,这意味着你知道很多事情,也知道自己不知道什么。你可能已经在这个层面上获得了一些良好的实践经验。

学习

学习永无止境,所以你仍然对新想法和方法保持开放。你仍然会提出很多问题,同时也会被他人提问。初级同事会向你请教问题。你仍然在学习新事物,也许不是每天,但每隔一个月会学习一些新东西。你试图更深入地理解某些技术和工具。

项目

你是项目决策过程的一部分。你对项目的整体背景有较好的理解,但你仍然不需要了解超出你工作所需的知识。

高级数据科学家

然后是高级数据科学家职位。此时你基本上具备了数据科学家的一切特质,同时拥有一些额外的能力和责任。让我们看看这些是什么。

背景

你对主要概念和技术有了扎实的理解,也对其陷阱有了更深入的了解。这些知识是在项目工作中获得的。现在你已经积累了扎实的实践经验。

学习

你更容易学习更高级的主题,因为你已经掌握了基本概念。你仍然保持开放的学习态度。教授和支持更初级的同事是你工作的一个部分。

项目

你是项目的领导者。你不仅参与决策过程,还主导它。项目的成功是你的责任,在许多情况下,团队成员的幸福也是如此。在领导项目的同时,你还需要与外界沟通。向业务部门报告是你的职责。在项目中,你需要牢记非技术性的限制,并确保将技术团队引导到正确的方向。你必须对上下文和领域有整体和完整的理解。保持目标并交付成果是你的责任。

当然,并不是每位数据科学家的职业生涯在世界上每家公司中都是这样的。你可能是一个自由职业的数据科学家,或者你可能创办了自己的公司并成为 CTO,那么你的职业路径会显得非常不同。但一般来说,根据我与数据科学社区人士交流所学到的,这是一个良好的数据科学家职业路径的总体代表。

我们今天探讨这个问题的原因是,每家公司都有自己的结构、规则和路径,你需要知道在有选择时选择哪个方向。有些会随着你变得更资深而倾向于更多的技术工作,有些则倾向于更多的管理和行政工作。你可以利用本文中的解释作为基准,确定你希望在职业旅程的高级阶段处于何种位置,并据此调整你的求职方向。当然,计划和偏好会随着时间变化,但对自己想要的目标有个大致的想法总比盲目进入要好。

你已经有想倾向的方向了吗?可以通过评论或发邮件告诉我!

查看你想成为数据科学家?获取专门为忙碌的职业人士准备的文章和免费资源,帮助他们将职业转向数据科学。

个人简介:Mısra Turp:我白天是数据科学家,晚上是在线创作者。目前我在荷兰阿姆斯特丹的制药科技公司 myTomorrows 工作。在此之前,我在 IBM 担任数据科学家。

除了我的数据科学工作,我喜欢教人们我所知道的。我总是收到很多关于我的职业生涯和数据科学的一般性问题,这些问题来自那些希望达到我现在位置的人。因此,我创建了**你想成为数据科学家?**,在那里我通过文章分享我的知识和经验,并通过播客分享我的人脉。

我制作了这个课程,因为我意识到有抱负的数据科学家最大的不足是实践经验。我设计了这个课程,帮助你将迄今为止获得的所有小知识点结合起来,并在过程中完成一个你可以引以为傲的项目。

原文。经许可转载。

相关:

更多相关主题

非结构化数据:2022 年分析的必备

原文:www.kdnuggets.com/2022/01/unstructured-data-analytics-2022.html

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

背景照片由 jcstudio 制作 - www.freepik.com

数据管理一直对企业组织保持业务连续性至关重要。然而,长期以来,数据管理指的是信息的存储和偶尔访问这些信息。在这段时间里,数据管理的重要性往往排在数据分析技术如机器学习和人工智能(AI)之后。


我们的三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业轨道。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 在 IT 领域支持你的组织


到了 2022 年,数据管理对企业组织的关键性已经无法被低估。组织需要筛选的数据量如此之大,以至于他们不能把数据管理视为对数据分析工作的附属任务,尤其是考虑到全球高达 90%的数据是非结构化的。企业必须依靠现代方法来解析大量非结构化的数据集。

为此,让我们快速调查企业组织目前需要快速解析非结构化数据的需求,并检查几个在 2022 年高度相关的数据管理趋势。

商业数据管理正变得自动化

企业组织在数据科学领域存在的几乎整个时间里,一直依赖于手动技术来解析其非结构化数据集。这些手动技术不幸的是非常繁琐,并且需要人力来支持多个数据科学团队,以便非结构化数据可以被解析并正确索引。

比以往更多的组织认识到,手动处理和分类非结构化数据的技术已经不再可行。相反,企业组织需要商业化的自动化数据管理解决方案,这使数据科学家可以更有效地解析数拍字节的数据并持续进行目录管理。这些商业解决方案将利用 AI 来自动化非结构化数据的存储,甚至可以向数据科学家推荐更优化的非结构化数据存储方法。

随着商业数据管理解决方案变得更加成熟并广泛提供给公众,企业组织应该认真考虑通过项目管理软件来补充其数据分析工作。具备关键功能的强大项目管理软件,如基于网页的项目文件集中存储和项目进度跟踪器,可以加快企业分析和处理大规模非结构化数据的速度。

基于云的项目管理软件和自动化数据管理工作流程的结合,可以显著减少数据科学家处理和索引非结构化数据所需的时间,并为他们提供更多时间投资于利用 AI 和 ML 数据分析技术来分析数据的新方法和改进方法。

数据仓储正在帮助变现非结构化数据

过去,企业组织通过解析其业务系统来变现(主要是结构化的)数据,获取有关客户活动趋势的洞察。然而,如今数据变现的做法更多依赖于非结构化数据集。

考虑以下场景:一家企业希望通过使用机器学习提高其客户满意度来改善支持聊天和电话的质量。该企业需要一种方法来分析不同的客户对话,这种方法依赖于如机器学习等创新技术,这些技术需要非结构化数据来不断改进系统和解决方案。

对于希望改善数据货币化策略的企业来说,越来越多的公司现在提供云基础的数据仓储产品,以更好地支持系统解析非结构化数据集。这些公司认识到,非结构化数据正变得比结构化数据更有用来建立与客户和消费者的关系,并提供可以分析不同客户互动的云基础数据仓储,从而更好地把握客户行为和产品需求等智能信息的趋势。

风险投资者已经注意到越来越多的企业正在提供数据仓储解决方案,以更好地管理非结构化数据,这可能有助于提升公众对非结构化数据在数据管理中的重要性的认知。这种公众认知的趋势可能会说服更多组织投资依赖于非结构化数据的数据管理工作流,并确保保护客户数据,如个人身份信息(PII)。

考虑到客户与企业之间传输的个人身份信息(PII)比以往任何时候都多,这种可能性似乎并不那么遥远。例如,自疫情开始以来,投资保险政策的人数增长了 50%,客户很可能期望企业有解决方案来保护他们的敏感信息,并确保信息不被丢失。

数据孤岛正在帮助——而不是伤害——数据管理

数据孤岛在一些数据专业人士中获得了不良声誉,原因是可以理解的。尽管它们看似无害,但数据孤岛可能会阻碍相关方之间的信息共享,并可能导致多个部门之间的数据不一致。一些 IT 领导者可能甚至觉得,当存在数据孤岛这样的障碍时,难以全面描绘业务数据的全貌。

尽管如此,数据孤岛在短期内不太可能消失。鉴于这一事实,IT 领导者需要接受解析非结构化数据集并在孤岛之间保护这些数据的方法,而不必觉得需要将所有数据存储在一个单一的孤岛中。

一旦 IT 领导者更加舒适地接受数据孤岛及其在搜索、分类和保护非结构化数据方面提供的机会,他们应考虑数据孤岛如何改善跨数据存储平台的标签管理。存在于多个平台的便携数据管理使数据专业人士能够更容易地将数据集转移到新的基于云的环境和软件解决方案中,同时保留使数据快速分段的标签。

结论

非结构化数据、基于云的数据管理解决方案以及将数据货币化的新方法正在提升对数据管理重要性的认识。毫无疑问,非结构化数据在企业寻找洞察力的方式中变得比以往任何时候都更加重要,这些企业生成和存储的数据跨越多个数据孤岛和存储环境。

考虑到技术创新如 AI 和 ML 是现代数据分析的关键组成部分,非结构化数据的重要性在可预见的未来可能会持续增长,因为它能促进更有效的方式来推动更明智的业务决策。

Nahla Davies 是一名软件开发者和技术作家。在全职从事技术写作之前,她曾在一家客户包括三星、时代华纳、Netflix 和索尼的 Inc. 5,000 体验品牌组织中担任首席程序员。

更多相关话题

在类别不平衡数据集上使用弹性 Info-GAN 的无监督解耦表示学习

原文:www.kdnuggets.com/2023/01/unsupervised-disentangled-representation-learning-class-imbalanced-dataset-elastic-infogan.html

介绍

在本文中,我们将讨论一篇与弹性 Info-GAN 相关的论文,该论文尝试解决传统 GAN 无法克服的缺陷。让我们讨论一下论文的目标或摘要,描述了主要贡献:

本文尝试利用 Info-GAN 论文中的两个主要缺陷,同时保留其他优点/改进。

这些是两个缺陷:

缺陷-1: 我们讨论了 Info-GAN,它主要关注通过操作潜在代码向量 c 来生成解耦表示。我们可以看到,它考虑到这个潜在代码向量是由连续和离散潜在变量组成的事实。

他们做出的一个假设是离散潜在变量具有均匀分布。

观察: 这意味着他们提供的类别分布是平衡的。然而,现实世界中的数据集可能没有平衡的类别分布。不平衡的数据将尝试使生成器生成更多来自主导类别的图像。

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

图像来源:弹性 Info-GAN 论文

缺陷-2: 尽管 Info-GAN 在给定一致的类别分布时能生成高质量的图像,但在给定不平衡数据集时,它很难从同一类别中生成一致的图像。第 1 行、第 2 行、第 4 行、第 7 行等在中心图像中显示出来。他们的推理是,模型在对图像进行分类时考虑了其他低级因素(如旋转和厚度)。

提到的缺陷的解决方案

第一个问题的解决方案

核心思想:

他们重新设计了使用潜在分布来检索潜在变量的方式。他们移除了对潜在类别分布的任何先验知识的假设,而是决定并提前固定这些潜在变量。

实现思想中的数学术语:

他们认为类别概率是可以学习的优化过程参数。他们使用 Gumbel-Softmax 分布来允许梯度流回类别概率。在 InfoGAN 中,用 Gumbel-Softmax 分布(一个可以被解码为类别分布的连续分布)替代固定的类别分布,这样可以进行可微分样本的采样。

让我们看看这个 softmax 温度表示了什么:

  • 它控制 Gumbel-Softmax 样本与类别分布的相似程度。

  • 这个参数的低值会使样本具有类似于单一类别样本的属性。

第二个问题的解决方案

这里他们尝试通过对比损失帮助 Q 学习表示。

核心思想(直观解决方案):

这个想法是基于对象身份生成正样本对(例如,一辆车及其镜像翻转的对照)和负样本对(例如,一个红色的哈士奇帽和一辆白色轿车),并且 Q 应为它们生成相似和不相似的表示(上图表示了相同的事物)。

数学意义:

  • 从数学角度来看,对于一批 N 个真实图像,

  • 通过构建其增强版本,利用身份保留变换对每个图像进行处理,最终生成总计 2N 张图像。

  • 对于批次中的每个图像,我们还定义了相应的变换图像 Ipos 和所有其他 2(N-1)张图像作为 Ineg。

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

图片来源: 论文链接

在其中一个数据库上重现的结果

在这里,我们将使用 MNIST 数据集来训练这种类型的模型:

关于 MNIST 数据集:

MNIST 默认是一个平衡数据集,有 70k 张图像以及每个类别的训练样本数相似。我们人工引入了 50 个随机分割的不平衡,并报告了平均结果。

MNIST 数据集中有很多手写数字。AI/ML/数据科学社区的成员钟爱这个数据集,用于验证他们的算法。事实上,MNIST 经常是研究人员首先尝试的数据集。“如果在 MNIST 上不起作用,那就完全没用,”他们说。“即使在 MNIST 上有效,也可能在其他数据集上无效。”

GitHub 仓库中的不同文件

evаl_metriсs.рy: 这个文件包含打印评估指标的代码,包括与入口和 NMI 相关的均值和标准差。

mnist-trаin.рy: 这个文件包含在 MNIST 数据集上运行给定模型的代码。

dаtаlоаder.рy: 这个文件包含数据加载程序,说明如何将数据加载到环境中。如果我们需要在不同的数据集上运行相同的模型,需要更改这个文件。

评估指标

我们的评估应具体捕捉在不平衡数据集中将类别特定信息与其他因素分离的能力。由于前述指标,包括 Gumbel-Softmax 等,并未捕捉到这一属性,因此我们提议使用以下指标:

  1. 入口: 这个指标评估两个属性:

(i)为给定分类代码生成的图像是否属于相同的真实类别,即,为每个分类代码生成的图像的真实类别直方图是否具有较低的熵。

(ii)每个真实类别是否与一个唯一的分类代码相关联。

  1. NMI: NMI 代表归一化互信息。我们将生成的虚假图像的潜在类别分配(我们为每个分类代码生成 1000 张虚假图像)视为一个聚类,将预训练分类器对虚假图像的类别分配视为另一个聚类。NMI 测量这两个聚类之间的相关性。NMI 的值介于 0 到 1 之间;NMI 越高,相关性越强。

结果

完成 5 个时期后的结果:

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

完成 10 个时期后的结果:

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

完成 15 个时期后的结果:

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

完成 20 个时期后的结果:

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

总共 20 个时期时间:896.10 秒

最终结论结果:

实验数量为 19

  • 熵均值 - 0.52500474

  • 熵标准差 - 0.30017176

  • NMI 均值 - 0.750077

  • NMI 标准差 - 0.134824

损失与迭代次数的曲线:

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

结论

在不了解类不平衡的情况下,我们提出了一种无监督生成模型,该模型更好地将对象身份作为变异因素进行解缠。尽管存在一些限制(例如,在高度偏斜的数据中的适用性),我们相信我们已经解决了一个重要的、之前未曾探讨的问题。我们希望这项工作能为无监督学习方法在类不平衡数据中的发展铺平道路,就像有监督机器学习领域随着时间的发展以应对实际数据中的类不平衡一样。

本文的主要观点:

  1. 在本文中,我们讨论了与弹性 Info-GAN 相关的一篇论文,该论文尝试解决传统 GAN 无法克服的缺陷。

  2. 以上对两个问题的主要数学解决方案已用适当的数据分布假设进行说明。

  3. 我们在论文中使用的一个数据库上训练了我们的弹性 info-GAN 模型,并观察了生成器和判别器的损失和准确率曲线。

  4. 我们使用了两种不同的评估指标,即 NMI 和熵,这些指标已在理论和实际方面进行了说明,并且还说明了我们选择这些指标的原因。

  5. 最终,我们得到了结果,并基于这些结果,我们可以进一步调整我们的模型,以优化其在任何数据集上的性能。

Aryan Garg 是一名 B.Tech. 电气工程学生,目前在本科最后一年。他对网络开发和机器学习领域感兴趣。他已经追求了这一兴趣,并渴望在这些方向上做更多的工作。


我们的前 3 个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析水平

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持您的组织 IT


更多相关话题

无监督学习揭秘

原文:www.kdnuggets.com/2018/08/unsupervised-learning-demystified.html

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

无监督学习听起来可能像是“让孩子们自己学会不要碰热烤箱”的华丽说法,但实际上它是一种从数据中挖掘灵感的模式发现技术。它与机器在没有成人监督的情况下跑来跑去、形成自己对事物的看法无关。让我们揭开谜底吧!

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

如果这让你感到熟悉,无监督机器学习可能是你的新朋友。

本文适合初学者,但假设你对到目前为止的故事有所了解:

什么是无监督学习?

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

你的任务?随意将这六张图片分成两组。

查看上面的六个实例。缺少了什么?这些照片没有标签。不用担心,你的大脑在无监督学习方面很厉害。我们来试试吧。

想想你希望如何将这些图像分成两组。没有错误的答案。准备好了吗?

对数据进行聚类

在一个实时课堂上,谷歌员工会喊出像“坐着还是站着”、“能看到木地板还是不能”、“猫自拍还是非猫自拍”这样的答案。我们来检查第一个答案。

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

将图像分成两类的一种方法是:坐着与站立。嗯,“坐着”与站立。

无监督学习的秘密标签

如果你选择根据猫是否站立来定义你的聚类,你的系统输出的标签是什么?毕竟,机器学习就是关于对事物进行标记的。

如果你认为“坐着与站着”是标签,那就再想想吧!那是你用来创建集群的配方(模型)。无监督学习中的标签要无聊得多:比如“组 1 和组 2”或“A 或 B”或“0 或 1”。它们只是表示群组成员关系,没有额外的人类可解释(或诗意)的意义。

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

无监督学习的标签仅仅表示集群成员关系。它们没有更高的人类可解释的意义,尽管这可能令人失望。

这里发生的只是算法根据相似性对事物进行分组。相似性度量由算法选择决定,但为什么不尝试尽可能多的算法呢?毕竟,你不知道自己在寻找什么,这没关系。把无监督学习看作是“物以类聚”的一种数学版本。

像一个 罗夏墨迹测验,结果在于帮助你做梦。

不要过于认真地对待你看到的内容。

再看一眼!

作为这两只独立猫咪的骄傲母亲,我感到遗憾,在我教了这个课程约 50 次的过程中,只有一个观众注意到了:“猫 1 与猫 2。” 相反,得到的回答却是“坐着、站着”或“木地板缺失/存在”或有时甚至是“丑猫与漂亮猫。”(哎呀。)

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

原来这些是我两只独立猫咪的照片!也许你看出来了,但大多数观众没看出来……除非我给他们标签(监督他们的学习)。如果我一开始就用名字标签展示数据,然后让你对下一张照片进行分类,我敢打赌你会觉得任务很简单。

总结经验

想象一下我是一名初学者数据科学家,刚刚开始进行无监督学习,自然对自己两只猫很感兴趣。当我查看这些数据时,我无法忽视我的猫咪。因为我的小可爱对我来说如此重要,我期望我的无监督机器学习系统能恢复唯一值得关心的东西。哎呀!

在这十年之前,计算机甚至无法与世界上最优秀的模式发现者——人脑竞争。这对人来说很简单!那么,为什么成千上万的谷歌员工看到这些未标记的照片却错过了“猫 1 与猫 2”的答案呢?

把无监督学习看作是“物以类聚”的一种数学版本。

仅仅因为某些东西对我有趣,并不意味着我的模式发现器能找到它。即使模式发现器很棒,我也没有告诉它我在寻找什么,所以为什么要期望我的学习算法能提供它呢?这不是魔法!如果我不告诉它正确的答案是什么……我就接受结果,不会感到不满。我能做的只是看看系统返回的簇,并看看是否觉得它们有启发。如果我不喜欢它们,我就不断运行不同的无监督算法(“观众中的其他人,为我换个方式分割”),直到有趣的东西出现。

结果如同罗夏墨迹图,帮助你做梦。

这个过程不一定会产生令人振奋的成果,但尝试一下也无妨。毕竟,探索未知本该是一种冒险。好好享受吧!

在未来的节目中,我们将探讨如果你忘记标签只是灵感而不应过于认真对待,甚至不应被视为可由人解释的,可能会发生的警示故事。(提示:可能会提到在一片吐司中发现埃尔维斯的故事。)它们只是用来给你一些关于下一个可能感兴趣的方向的想法。

总结: 无监督学习通过将相似的事物分组,帮助你从数据中找到灵感。定义相似性的方式有很多,所以不断尝试算法和设置,直到一个酷炫的模式引起你的注意。

个人简介: Cassie Kozyrkov 是谷歌首席决策智能工程师。❤️ 统计学,机器学习/人工智能,数据,双关语,艺术,戏剧,决策科学。所有观点均为个人意见。

原文。经许可转载。

相关:

  • 数据科学家需要知道的 5 种聚类算法

  • K 均值在现实生活中的应用:聚类锻炼课程

  • 使用 K 均值算法进行聚类


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全领域的职业生涯

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT 工作


更多相关主题

揭示隐藏模式:层次聚类介绍

原文:www.kdnuggets.com/unveiling-hidden-patterns-an-introduction-to-hierarchical-clustering

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

作者提供的图像

当你熟悉无监督学习范式时,你将学习到聚类算法。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 工作


聚类的目标通常是理解给定未标记数据集中的模式。或者可以是寻找数据集中的组并对其进行标记,以便我们可以在现在标记的数据集上执行监督学习。本文将涵盖层次聚类的基础知识。

什么是层次聚类?

层次聚类算法旨在找到实例之间的相似性——通过距离度量来量化——以将它们分组为称为簇的段。

算法的目标是找到簇,使得簇中的数据点彼此更相似,而与其他簇中的数据点的相似度较低。

有两种常见的层次聚类算法,每种算法都有其独特的方法:

  • 凝聚聚类

  • 分裂聚类

凝聚聚类

假设数据集中有 n 个不同的数据点。凝聚聚类的工作方式如下:

  1. 从 n 个簇开始;每个数据点本身就是一个簇。

  2. 根据数据点之间的相似性将数据点组合在一起。这意味着相似的簇会根据距离进行合并。

  3. 重复步骤 2 直到只剩下一个簇。

分裂聚类

如名字所示,分裂聚类尝试执行凝聚聚类的逆过程:

  1. 所有 n 个数据点都在一个簇中。

  2. 将这个单一的大簇划分为更小的组。请注意,凝聚聚类中数据点的组合是基于相似性的,但将它们划分到不同的簇中是基于不相似性;不同簇中的数据点彼此不相似。

  3. 重复直到每个数据点本身都是一个簇。

距离度量

如前所述,数据点之间的相似性是通过距离来量化的。常用的距离度量包括欧几里得距离和曼哈顿距离。

对于 n 维特征空间中的任意两个数据点,它们之间的欧氏距离由下式给出:

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

另一种常用的距离度量是曼哈顿距离,计算公式为:

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

闵可夫斯基距离是对这些距离度量在 n 维空间中的一般化——适用于一般 p >= 1:

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

聚类间的距离:理解连接标准

使用距离度量,我们可以计算数据集中任意两个数据点之间的距离。但你还需要定义一种距离来确定每一步如何将聚类组合在一起。

记住,在每一步的凝聚型聚类中,我们选择两个最接近的组进行合并。这由连接标准来捕捉。常用的连接标准包括:

  • 单链接

  • 完全链接

  • 平均连接

  • Ward’s linkage

单链接

单链接或单链接聚类中,两组/聚类之间的距离被视为两聚类中所有数据点对之间的最小距离。

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

完全链接

完全链接完全链接聚类中,两聚类之间的距离被选为两聚类中所有点对之间的最大距离。

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

平均链接

有时使用平均链接,它使用两聚类中所有数据点对之间距离的平均值。

Ward’s Linkage

Ward’s linkage 旨在最小化合并后聚类内的方差:合并聚类应尽量减少合并后的方差总增加。这会导致更紧凑且分隔良好的聚类。

两个聚类之间的距离通过考虑合并聚类的均值的总平方偏差(方差)增加来计算。其目的是测量合并后聚类方差增加了多少,与合并前的各个聚类的方差相比。

当我们在 Python 中编写层次聚类代码时,我们也会使用 Ward’s linkage。

什么是树状图?

我们可以将聚类的结果可视化为一个树状图。它是一个层次树结构,帮助我们理解数据点——以及随后形成的聚类——是如何随着算法的进行被分组或合并在一起的。

在层次树结构中,叶子表示数据集中的实例数据点。可以从 y 轴推断出合并或分组发生的相应距离。

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

示例树状图 | 作者提供的图片

由于连接类型决定了如何将数据点分组在一起,不同的连接准则会产生不同的树状图。

根据距离,我们可以使用树状图—在特定点切割或分割—以获取所需数量的簇。

与一些聚类算法如 K-Means 聚类不同,层次聚类不需要你事先指定簇的数量。然而,进行聚合聚类时,处理大型数据集可能非常耗费计算资源。

使用 SciPy 进行 Python 中的层次聚类

接下来,我们将在内置的 酒数据集 上逐步进行层次聚类。为此,我们将利用 聚类包scipy.cluster—来自 SciPy。

第 1 步 – 导入必要的库

首先,让我们导入必要的库和来自 scikit-learn 及 SciPy 库的模块:

# imports
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.preprocessing import MinMaxScaler
from scipy.cluster.hierarchy import dendrogram, linkage

第 2 步 – 加载和预处理数据集

接下来,我们将酒数据集加载到 pandas 数据框中。这是一个简单的数据集,属于 scikit-learn 的datasets的一部分,对探索层次聚类很有帮助。

# Load the dataset
data = load_wine()
X = data.data

# Convert to DataFrame
wine_df = pd.DataFrame(X, columns=data.feature_names)

让我们查看数据框的前几行:

wine_df.head()

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

wine_df.head()的截断输出

注意,我们仅加载了特征—而不是输出标签—以便我们可以执行聚类以发现数据集中的组。

让我们检查数据框的形状:

print(wine_df.shape)

数据集中有 178 条记录和 14 个特征:

Output >>> (178, 14)

由于数据集包含跨不同范围的数值,接下来让我们预处理数据集。我们将使用MinMaxScaler将每个特征转换到范围[0, 1]。

# Scale the features using MinMaxScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

第 3 步 – 执行层次聚类并绘制树状图

让我们计算链接矩阵,执行聚类,并绘制树状图。我们可以使用来自 层次 模块的linkage来计算基于 Ward 链接法的链接矩阵(将method设置为’ward’)。

如前所述,Ward 的链接法最小化每个簇内的方差。然后我们绘制树状图以可视化层次聚类过程。

# Calculate linkage matrix
linked = linkage(X_scaled, method='ward')

# Plot dendrogram
plt.figure(figsize=(10, 6),dpi=200)
dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True)
plt.title('Dendrogram')
plt.xlabel('Samples')
plt.ylabel('Distance')
plt.show()

因为我们还没有(尚未)截断树状图,我们可以可视化 178 个数据点如何被分组到一个簇中。虽然这似乎很难解释,但我们仍然可以看到有三个不同的簇。

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

截断树状图以便于可视化

实际上,我们可以可视化一个更容易解释和理解的截断版本,而不是整个树状图。

要截断树状图,我们可以将truncate_mode设置为’level’并将p设置为 3。

# Calculate linkage matrix
linked = linkage(X_scaled, method='ward')

# Plot dendrogram
plt.figure(figsize=(10, 6),dpi=200)
dendrogram(linked, orientation='top', distance_sort='descending', truncate_mode='level', p=3, show_leaf_counts=True)
plt.title('Dendrogram')
plt.xlabel('Samples')
plt.ylabel('Distance')
plt.show()

这样会截断树状图,只包含那些在最终合并的 3 个级别内的簇。

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

在上述树状图中,你可以看到一些数据点,如 158 和 159,是单独表示的。其他一些数据点在括号中提到;这些不是单独的数据点,而是簇中的数据点数量。(k)表示一个包含 k 个样本的簇。

第 4 步 – 确定最佳簇数

树状图帮助我们选择最佳的簇数。

我们可以观察到 y 轴上的距离急剧增加,选择在那个点截断树状图——并使用该距离作为形成簇的阈值。

对于这个例子,最佳的簇数是 3。

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

第 5 步 – 形成簇

一旦我们决定了最佳的簇数,我们可以使用 y 轴上的相应距离——一个阈值距离。这确保了在阈值距离以上,簇不再合并。我们选择一个threshold_distance为 3.5(从树状图中推断得出)。

然后我们使用fcluster,将criterion设置为’distance’,以获取所有数据点的簇分配。

from scipy.cluster.hierarchy import fcluster

# Choose a threshold distance based on the dendrogram
threshold_distance = 3.5  

# Cut the dendrogram to get cluster labels
cluster_labels = fcluster(linked, threshold_distance, criterion='distance')

# Assign cluster labels to the DataFrame
wine_df['cluster'] = cluster_labels

你现在应该能看到所有数据点的簇标签({1, 2, 3}中的一个):

print(wine_df['cluster'])
Output >>>
0      2
1      2
2      2
3      2
4      3
      ..
173    1
174    1
175    1
176    1
177    1
Name: cluster, Length: 178, dtype: int32

第 6 步 – 可视化簇

现在每个数据点都已分配到一个簇,你可以可视化特征的子集及其簇分配。以下是两个这样的特征的散点图及其簇映射:

plt.figure(figsize=(8, 6))

scatter = plt.scatter(wine_df['alcohol'], wine_df['flavanoids'], c=wine_df['cluster'], cmap='rainbow')
plt.xlabel('Alcohol')
plt.ylabel('Flavonoids')
plt.title('Visualizing the clusters')

# Add legend
legend_labels = [f'Cluster {i + 1}' for i in range(n_clusters)]
plt.legend(handles=scatter.legend_elements()[0], labels=legend_labels)

plt.show()

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

总结

就这样!在本教程中,我们使用 SciPy 执行层次聚类,以便更详细地涵盖涉及的步骤。或者,你也可以使用来自 scikit-learn 的AgglomerativeClustering类。祝编程愉快!

参考资料

[1] 机器学习导论

[2] 统计学习导论 (ISLR)

Bala Priya C 是来自印度的开发者和技术作家。她喜欢在数学、编程、数据科学和内容创作的交汇处工作。她的兴趣和专长领域包括 DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编程和咖啡!目前,她正致力于学习和与开发者社区分享她的知识,通过编写教程、操作指南、观点文章等来实现。

了解更多相关主题

揭示 Midjourney 5.2:AI 图像生成的飞跃

原文:www.kdnuggets.com/2023/06/unveiling-midjourney-52-leap-forward.html

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

使用 Midjourney 生成。提示:“Midjourney 5.2 真棒!–ar 16:9 --v 5.2”

作为图像生成领域的领先平台之一,Midjourney 最近发布了其最新版本,Midjourney 5.2,推出了一系列创新功能,旨在重新定义 AI 图像生成的格局。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持组织的 IT 工作


Midjourney 是一个由 AI 驱动的图像生成系统,将文本提示转换为惊艳的视觉效果。其最新版本 Midjourney 5.2 于 2023 年 6 月发布,以其先进的功能、改进的美学和增强的用户体验而受到好评。

Midjourney 5.2 中最令人兴奋的功能之一是“缩小”功能。此功能允许用户扩展原始图像,扩大其范围,同时保持原始图像的细节。 "缩小"功能模拟了相机镜头缩小的效果,在中心图像周围生成一个场景。这个功能特别令人印象深刻,因为它可以不断在不断扩展的图像上构建,创造出视觉上连贯的环境,将创意提升到另一个层次。

然而,需要注意的是,当前的“缩小”功能仅适用于在 Midjourney 中生成的图像。用户可以通过生成任何 v5.2 图像并放大结果来尝试缩小。随后,"缩放"按钮会显示出 1.5x、2x 或自定义量的缩小选项。

Midjourney 5.2 中另一个值得注意的新增功能是“裁剪成正方形”工具。此功能允许用户调整图像的形状,使其适应不同于完美正方形的纵横比。使用此工具,可以垂直扩展横向图像,反之亦然,为图像生成提供了更多灵活性。

Midjourney 5.2 还引入了 ‘Variation Mode’。该功能允许用户控制他们想要应用于输出的视觉细微差别和变化。用户可以将此功能设置为 ‘High Variation Mode’ 或 ‘Low Variation Mode’。高变异模式会导致与原始输出略有不同的视觉效果,可能会产生更有趣或探索性的结果。另一方面,保持设置较低则有助于保持更大的视觉一致性。

在这个最新版本中,‘Stylize’ 命令也进行了彻底的更新。这个命令有效地影响图像的非现实感。新版本在现实性和风格方面增强了模型现有的风格化能力,为用户提供了更多对生成图像美学的控制。

最后,Midjourney 5.2 引入了新的 /shorten 命令。此功能使用户能够评估提示,以尝试删减非必要的词语,从而更容易生成与用户意图相符的图像。

总之,Midjourney 5.2 代表了 AI 图像生成领域的一次重要进步。其新功能和改进不仅提升了用户体验,还推动了 AI 艺术领域的可能性。随着 AI 技术的不断发展,像 Midjourney 这样的平台正在引领潮流,改变我们创作和互动数字艺术的方式。

Midjourney 5.2 证明了 AI 在艺术和设计领域的潜力。随着我们继续探索和理解这一技术,我们可以期待更多创新功能和改进,进一步革新 AI 图像生成领域。

了解更多

揭开神经魔法:深入激活函数

原文:www.kdnuggets.com/unveiling-neural-magic-a-dive-into-activation-functions

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

作者提供的图片

为什么使用激活函数

深度学习和神经网络由互连的节点组成,其中数据顺序地通过每个隐藏层传递。然而,线性函数的组合不可避免地仍然是线性函数。当我们需要在数据中学习复杂和非线性的模式时,激活函数变得重要。

使用激活函数的两个主要好处是:

引入非线性

线性关系在现实世界中很少见。大多数现实世界场景是复杂的,并遵循各种不同的趋势。使用线性算法如线性和逻辑回归无法学习这样的模式。激活函数为模型添加了非线性,使其能够学习数据中的复杂模式和变异。这使得深度学习模型能够执行复杂的任务,包括图像和语言领域。

允许深层神经网络

如上所述,当我们顺序应用多个线性函数时,输出仍然是输入的线性组合。 在每一层之间引入非线性函数可以让它们学习输入数据的不同特征。如果没有激活函数,深度连接的神经网络架构将与使用基本的线性或逻辑回归算法没有区别。

激活函数使深度学习架构能够学习复杂的模式,使其比简单的机器学习算法更强大。

让我们来看看一些在深度学习中常用的激活函数。

Sigmoid

在二分类任务中常用的 Sigmoid 函数将实数值映射到 0 和 1 之间。

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

上述方程如下所示:

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

图片由Hvidberrrg提供

Sigmoid 函数主要用于二分类任务的输出层,其中目标标签是 0 或 1。 这使得 Sigmoid 函数在这种任务中更受青睐,因为其输出限制在这个范围内。对于接近无穷大的高值,sigmoid 函数将其映射到接近 1。相反,它将接近负无穷大的值映射到 0。在这些值之间的所有实数值都映射到 0 到 1 的范围内,呈 S 形趋势。

缺点

饱和点

Sigmoid 函数在反向传播过程中对梯度下降算法会带来问题。除了接近 S 形曲线中心的值,梯度非常接近零,这会导致训练问题。在渐近线附近,它可能会导致梯度消失问题,因为小梯度可能显著减慢收敛速度。

非零中心

经实验证明,具有零中心的非线性函数可以确保均值激活值接近 0。具有这种归一化值可以确保梯度下降更快地收敛到最小值。虽然不是必要的,但具有零中心的激活可以加速训练。当输入为 0 时,Sigmoid 函数的中心在 0.5。这是使用 Sigmoid 在隐藏层中的一个缺点。

Tanh

双曲正切函数是对 Sigmoid 函数的改进。与[0,1]范围不同,TanH 函数将实数值映射到-1 和 1 之间。

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

TanH 函数如下所示:

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

图片由Wolfram提供

TanH 函数遵循与 Sigmoid 相同的 S 形曲线,但现在是零中心的。这允许在训练过程中更快的收敛,因为它改进了 Sigmoid 函数的一个缺点。这使得它在神经网络架构中的隐藏层中更为适用。

缺点

饱和点

TanH 函数遵循与 Sigmoid 相同的 S 形曲线,但现在是零中心的。这允许在训练过程中更快的收敛,改进了 Sigmoid 函数的表现。这使得它在神经网络架构中的隐藏层中更为适用。

计算开销

尽管现代计算中并非主要问题,但指数计算比其他常见的替代方法更为昂贵。

ReLU

实践中最常用的激活函数,修正线性单元激活(ReLU),是最简单但最有效的非线性函数。

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

它保留所有非负值并将所有负值钳制为 0。可视化时,ReLU 函数如下所示:

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

图片由Michiel Straat提供

缺点

死亡 ReLU

梯度在图的一端趋于平坦。所有负值的梯度为零,因此一半的神经元可能对训练贡献很小。

无界激活

在图的右侧,可能的梯度没有限制。如果梯度值过高,这可能导致梯度爆炸问题。通常通过梯度裁剪和权重初始化技术来纠正这个问题。

不是零中心

类似于 Sigmoid,ReLU 激活函数也不是零中心的。同样,这会导致收敛问题并可能减慢训练速度。

尽管存在所有缺陷,但它仍然是神经网络架构中所有隐藏层的默认选择,并且在实践中被经验验证为高效。

关键要点

既然我们了解了三种最常见的激活函数,我们如何知道什么是我们场景中最佳的选择呢?

尽管这在很大程度上依赖于数据分布和具体问题陈述,但在实践中仍有一些基本的起点被广泛使用。

  • Sigmoid 只适用于目标标签为 0 或 1 的二分类问题的输出激活。

  • Tanh 现在主要被 ReLU 和类似函数取代。然而,它仍然在 RNN 的隐藏层中使用。

  • 在所有其他场景中,ReLU 是深度学习架构中隐藏层的默认选择。

穆罕默德·阿赫姆 是一位从事计算机视觉和自然语言处理的深度学习工程师。他曾参与多个生成式 AI 应用的部署和优化,这些应用在 Vyro.AI 达到了全球排行榜的前列。他对构建和优化智能系统的机器学习模型充满兴趣,并相信持续改进。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你的组织 IT


更多相关主题

揭示 CTGAN 的潜力:利用生成式 AI 生成合成数据

原文:www.kdnuggets.com/2023/04/unveiling-potential-ctgan-harnessing-generative-ai-synthetic-data.html

我们都知道,GANs(生成对抗网络)在生成非结构化合成数据方面正在获得关注,例如图像和文本。然而,使用 GANs 生成合成表格数据的工作非常少。合成数据具有许多好处,包括在机器学习应用、数据隐私、数据分析和数据增强中的应用。生成合成表格数据的模型很少,而 CTGAN(条件表格生成对抗网络)就是其中之一。像其他 GANs 一样,它使用生成器和判别器神经网络创建具有类似统计特性的合成数据。CTGAN 可以保留真实数据的基础结构,包括列之间的相关性。CTGAN 的额外好处包括通过模式特定的归一化、少量架构更改以及通过使用条件生成器和训练采样来解决数据不平衡,从而增强训练过程。

在这篇博客文章中,我使用了 CTGAN 生成基于 Kaggle 收集的信用分析数据集的合成数据。


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业领域。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升您的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持组织的 IT 需求


CTGAN 的优点

  • 生成具有类似统计特性的合成表格数据,包括不同列之间的相关性。

  • 保留真实数据的基础结构。

  • CTGAN 生成的合成数据可以用于各种应用,例如数据增强、数据隐私和数据分析。

  • 可以处理连续、离散和分类数据。

CTGAN 的缺点

  • CTGAN 需要大量真实表格数据来训练模型,并生成具有类似统计特性的合成数据。

  • CTGAN 计算资源消耗大,可能需要大量计算资源。

  • CTGAN 生成的合成数据的质量可能会根据用于训练模型的真实数据的质量而有所不同。

调整 CTGAN

像所有其他机器学习模型一样,CTGAN 在调优时表现更好。在调优 CTGAN 时需要考虑多个参数。然而,为了此次演示,我使用了‘ctgan library’中所有默认参数:

  • 训练轮次:生成器和鉴别器网络在数据集上训练的次数。

  • 学习率:模型在训练过程中调整权重的速度。

  • 批量大小:每次训练迭代中使用的样本数量。

  • 生成器和鉴别器网络的规模。

  • 优化算法的选择。

CTGAN 还考虑了超参数,如潜在空间的维度、生成器和鉴别器网络中的层数,以及每层使用的激活函数。参数和超参数的选择会影响生成的合成数据的性能和质量。

CTGAN 的验证

CTGAN 的验证较为棘手,因为它有诸如生成的合成数据质量评估的困难等局限性,特别是在处理表格数据时。尽管可以使用一些指标来评估真实数据与合成数据之间的相似性,但仍然难以确定合成数据是否准确地表示了真实数据中的潜在模式和关系。此外,CTGAN 容易过拟合,可能生成与训练数据过于相似的合成数据,这可能会限制其对新数据的泛化能力。

一些常见的验证技术包括:

  • 统计测试:比较生成数据和真实数据的统计属性。例如,使用相关性分析、Kolmogorov-Smirnov 检验、Anderson-Darling 检验和卡方检验等测试,比较生成数据和真实数据的分布。

  • 可视化:通过绘制直方图、散点图或热图来可视化相似性和差异。

  • 应用测试:通过在实际应用中使用合成数据,查看其是否与真实数据表现相似。

案例研究

关于信用分析数据

信用分析数据包含连续格式和离散/类别格式的客户数据。为了演示目的,我已经通过删除包含空值的行和一些不需要的列来预处理数据。由于计算资源的限制,处理所有数据和所有列需要大量的计算能力,这超出了我的能力范围。以下是连续变量和类别变量的列列表(如“儿童数量 (CNT_CHINDREN)”等离散值被视为类别变量):

类别变量:

TARGET
NAME_CONTRACT_TYPE
CODE_GENDER
FLAG_OWN_CAR
FLAG_OWN_REALTY
CNT_CHILDREN

连续变量:

AMT_INCOME_TOTAL
AMT_CREDIT
AMT_ANNUITY
AMT_GOODS_PRICE

生成模型需要大量的清洁数据来进行训练以获得更好的结果。然而,由于计算能力的限制,我从超过 30 万行的真实数据中选择了仅 10,000 行(准确来说是 9,993)进行演示。虽然这个数量可能被认为相对较少,但对于本次演示来说应该足够。

真实数据的位置:

www.kaggle.com/datasets/kapoorshivam/credit-analysis

生成的合成数据的位置:

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

信用分析数据 | 图片来源:作者

结果

我生成了 10k(准确来说是 9997)个合成数据点,并将其与真实数据进行了比较。结果看起来不错,尽管仍有改进的空间。在我的分析中,我使用了默认参数,以’relu’作为激活函数,并训练了 3000 轮。增加训练轮数应能生成更像真实的合成数据。生成器和判别器的损失也很好,较低的损失表明合成数据与真实数据的相似度较高:

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

生成器和判别器损失 | 图片来源:作者

在绝对对数均值和标准差图中的对角线上的点表示生成的数据质量良好。

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

数值数据的绝对对数均值和标准差 | 图片来源:作者

以下图中的连续列的累积和虽然没有完全重叠,但接近,这表明合成数据生成良好且没有过拟合。分类/离散数据的重叠表明生成的合成数据接近真实数据。进一步的统计分析见以下图示:

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

每个特征的累积和 | 图片来源:作者 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特征分布 | 图片来源:作者

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

特征分布 | 图片来源:作者 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

主成分分析 | 图片来源:作者

以下相关图显示了变量之间明显的相关性。值得注意的是,即使经过彻底的微调,真实数据和合成数据之间可能仍会存在属性差异。这些差异实际上可能是有益的,因为它们可能揭示数据集中隐藏的属性,这些属性可以用于创建新颖的解决方案。观察发现,增加训练轮数会提高合成数据的质量。

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

变量之间的相关性(真实数据)| 图片来源于作者

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

变量之间的相关性(合成数据)| 图片来源于作者

样本数据和真实数据的摘要统计结果也表现出令人满意的效果。

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

真实数据与合成数据的摘要统计 | 图片来源于作者

Python 代码

# Install CTGAN
!pip install ctgan

# Install table evaluator to analyze generated synthetic data
!pip install table_evaluator 
# Import libraries
import torch
import pandas as pd
import seaborn as sns
import torch.nn as nn

from ctgan import CTGAN
from ctgan.synthesizers.ctgan import Generator

# Import training Data
data = pd.read_csv("./application_data_edited_2.csv")

# Declare Categorical Columns
categorical_features = [
    "TARGET",
    "NAME_CONTRACT_TYPE",
    "CODE_GENDER",
    "FLAG_OWN_CAR",
    "FLAG_OWN_REALTY",
    "CNT_CHILDREN",
]

# Declare Continuous Columns
continuous_cols = ["AMT_INCOME_TOTAL", "AMT_CREDIT", "AMT_ANNUITY", "AMT_GOODS_PRICE"]

# Train Model
from ctgan import CTGAN

ctgan = CTGAN(verbose=True)
ctgan.fit(data, categorical_features, epochs=100000)

# Generate synthetic_data
synthetic_data = ctgan.sample(10000)

# Analyze Synthetic Data
from table_evaluator import TableEvaluator

print(data.shape, synthetic_data.shape)
table_evaluator = TableEvaluator(data, synthetic_data, cat_cols=categorical_features)
table_evaluator.visual_evaluation()
# compute the correlation matrix
corr = synthetic_data.corr()

# plot the heatmap
sns.heatmap(corr, annot=True, cmap="coolwarm")

# show summary statistics SYNTHETIC DATA
summary = synthetic_data.describe()
print(summary) 

结论

CTGAN 的训练过程预计会收敛到一个点,使得生成的合成数据与真实数据不可区分。然而,实际上,收敛不能得到保证。CTGAN 的收敛可能受到多种因素的影响,包括超参数的选择、数据的复杂性以及模型的架构。此外,训练过程的不稳定性可能导致模式崩溃,即生成器只产生有限的相似样本,而不是探索数据分布的全部多样性。

Ray Islam 是一名数据科学家(AI 和 ML)以及美国 Deloitte 的顾问专家领导。他拥有来自美国马里兰大学帕克分校的工程学博士学位,并曾与洛克希德·马丁和雷声等主要公司合作,服务于 NASA 和美国空军等客户。Ray 还拥有来自加拿大的工程硕士学位、国际市场营销硕士学位以及来自英国的 MBA 学位。他还是即将出版的同行评审《国际 AI 伦理研究期刊》(INTJEAI)的主编,他的研究兴趣包括生成式 AI、增强现实、XAI 和 AI 伦理。

更多相关内容

揭示 Meta 的 Llama 2 的力量:生成式 AI 的跃进?

原文:www.kdnuggets.com/2023/07/unveiling-power-metas-llama-2-leap-forward-generative-ai.html

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

图像由作者使用 Midjourney 创建

介绍


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业道路。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析能力

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你组织的 IT 需求


最近在人工智能(AI)领域,尤其是在生成式 AI 方面的突破,引起了公众的广泛关注,并展示了这些技术推动新时代经济和社会机会的潜力。其中一个突破是Meta 的 Llama 2,它是其开源大型语言模型的下一代产品。

Meta 的 Llama 2 是在混合的公开数据上进行训练的,旨在推动诸如 OpenAI 的 ChatGPT、Bing Chat 及其他现代聊天机器人等应用。Meta 声称,Llama 2 的性能相比于以前的 Llama 模型有了显著提升。该模型以预训练形式可在 AWS、Azure 和 Hugging Face 的 AI 模型托管平台上进行微调,使其更易于访问和运行。你还可以在这里下载模型

那么,是什么让 Llama 2 与其前身以及其他大型语言模型有所不同呢?让我们深入探讨其技术细节和影响。

技术细节和性能

Llama 2 有两种版本:Llama 2 和 Llama-2-Chat。Llama-2-Chat 经过了针对双向对话的微调。这两个版本都进一步细分为不同复杂度的模型:70 亿参数、130 亿参数和 700 亿参数模型。这些模型在两万亿个令牌上进行训练,比第一个 Llama 模型多 40%,包括超过 100 万个人工注释。

Llama 2 的上下文长度为 4096,并特别在 Llama-Chat-2 的训练中使用了来自人类反馈的强化学习,以确保安全性和有用性。根据 Meta 的说法,Llama 2 在推理、编码、能力和知识测试方面超过了包括 Falcon 和 MPT 在内的其他 LLM。

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

Llama 2 技术概述

(图片来源:Meta

此外,Llama 2 已针对 Windows 以及配备 高通 Snapdragon 设备内技术 的智能手机和 PC 进行了优化,这意味着我们可以预计从 2024 年开始出现不依赖于云服务的 AI 驱动应用程序。

“这些由 Snapdragon 提供支持的新型设备内 AI 体验,可以在没有连接的区域甚至飞机模式下工作。”

— 高通(来源:CNET

开源与安全

Llama 2 的一个关键方面是其开源性质。Meta 认为,通过公开 AI 模型,可以使每个人受益。这一发展使得商业和研究领域可以访问那些自己构建和扩展起来会变得不可承受的工具,从而为研究、实验和开发开辟了众多机会。

Meta 还强调安全性和透明度。Llama 2 已经过“红队测试”,因此通过生成对抗性提示进行安全性测试,以便对模型进行微调,无论是内部还是外部。Meta 公开了模型如何被评估和调整,促进了开发过程中的透明度。

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

在 Llama-2-Chat 模型训练过程中,使用了来自人类反馈的强化学习,以确保安全性和有用性

(图片来源:Meta

结论

Llama 2 尽力延续 Meta 在生成性 AI 领域的视角。其改进的性能、开源性质以及对安全性和透明度的承诺,使 Llama 2 成为广泛应用的有前途的模型。随着更多开发者和研究人员的参与,我们可以预期会看到创新的 AI 驱动解决方案的激增。

随着我们前进,继续解决 AI 模型中固有的挑战和偏见将至关重要。然而,Meta 对安全性和透明度的承诺为行业树立了积极的先例。随着 Llama 2 的发布,我们现在有了另一个可用的生成性 AI 工具,并且这一工具使开放访问成为持续的承诺。

Matthew Mayo (@mattmayo13) 是数据科学家和 KDnuggets 的总编辑,KDnuggets 是开创性的在线数据科学和机器学习资源。他的兴趣包括自然语言处理、算法设计与优化、无监督学习、神经网络以及机器学习的自动化方法。Matthew 拥有计算机科学硕士学位和数据挖掘研究生文凭。他的联系方式是 editor1 at kdnuggets[dot]com。

更多相关话题

揭开 StableCode 的面纱:AI 辅助编码的新视野

原文:www.kdnuggets.com/2023/08/unveiling-stablecode-new-horizon-ai-assisted-coding

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

图片由作者使用 Midjourney 创建

概述


我们的三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析能力

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 工作


在不断发展的软件开发领域,为提高效率和可访问性而创建了各种工具和平台。其中最新的创新之一是 StableCode,这是 Stability AI 推出的一个大型语言模型(LLM)生成式 AI 产品。旨在帮助经验丰富的程序员和有志开发者,StableCode 承诺将彻底改变我们处理编码的方式。

StableCode 是由 Stability AI 开发的 AI 驱动助手,能够智能自动补全,响应指令,并管理长段代码。它包含三个专门的模型,每个模型针对编码过程中的不同方面。StableCode 在来自多种编程语言的超过 5600 亿个标记的广泛数据集上进行训练,旨在提高程序员的生产力并降低入门门槛。

尽管现有的对话 AI 助手如 Llama、ChatGPT 和 Bard 已展示了代码编写能力,但它们并未针对开发者体验进行优化。StableCode 加入了 GitHub Copilot 和其他开源模型等工具,提供了更具针对性和高效的编码体验。本文探讨了 StableCode 的独特功能、底层技术以及它对开发者社区的潜在影响。

StableCode 详情

StableCode 由三个专门的模型构成:

  • 基础模型: 在包括 Python、Go、Java、JavaScript、C、markdown 和 C++ 在内的多种编程语言上进行训练。

  • 指令模型: 调整以处理特定使用案例,帮助解决复杂的编程任务。

  • 长上下文窗口模型: 构建以一次处理更多代码,允许用户同时查看或编辑多达五个中等大小的 Python 文件。

标准自动补全模型 StableCode-Completion-Alpha-3B-4K 提供单行和多行建议,随着开发者的输入,提升效率和准确性。

指令模型 StableCode-Instruct-Alpha-3B 利用自然语言提示执行编码任务,实现与代码的更直观互动。

StableCode 拥有长达 16,000 个标记的上下文窗口,可以管理广泛的代码库,提供对编码过程的更全面视图和控制。

StableCode 的训练涉及对 BigCode 数据的大量过滤和清洗。该模型在特定编程语言上经过了连续训练,采用了类似自然语言领域建模的方法。

与其他模型更重视当前标记而非过去标记不同,StableCode 使用旋转位置嵌入(RoPE),确保对代码功能的考虑更为平衡,没有固定的叙述结构。

StableCode 的独特功能和技术承诺显著提升开发者的工作流程。它具有大多数现有模型两倍的上下文长度和经过精心调整的模型,提供了更高的效率和精度。

通过提供一个智能且易于访问的平台,StableCode 有潜力降低新程序员的入门门槛,促进一个更具包容性和多样化的开发者社区。

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

与相似规模(3B)的模型进行的 HumanEval 基准测试比较

来源:Stability AI

结论

StableCode 代表了编码辅助技术发展的重要一步。它独特的专用模型、智能自动补全和先进技术的结合,使其与现有工具区别开来。通过提供更为定制和高效的编码体验,它成为了软件开发领域的一个革命性工具。

不仅仅是一个编码助手,StableCode 体现了 Stability AI 赋能下一个十亿软件开发者的愿景。通过使技术更易于访问和提供更公平的编码资源,StableCode 准备好帮助塑造软件开发的未来,并激励新一代程序员。

Matthew Mayo (@mattmayo13) 是一名数据科学家及 KDnuggets 的主编,KDnuggets 是重要的数据科学和机器学习在线资源。他的兴趣包括自然语言处理、算法设计与优化、无监督学习、神经网络以及机器学习的自动化方法。Matthew 拥有计算机科学硕士学位和数据挖掘研究生文凭。他可以通过 editor1 at kdnuggets[dot]com 联系。

更多相关信息

揭示无监督学习

原文:www.kdnuggets.com/unveiling-unsupervised-learning

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

作者提供的图片

什么是无监督学习?


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全领域的职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT


在机器学习中,无监督学习是一种在未标记数据集上训练算法的范式。因此,没有监督或标记输出。

在无监督学习中,目标是发现数据本身的模式、结构或关系,而不是基于标记的示例进行预测或分类。这涉及探索数据的内在结构,以获取洞察并理解复杂信息。

本指南将介绍无监督学习。我们将首先探讨监督学习和无监督学习之间的差异,为后续讨论奠定基础。接着,我们将介绍关键的无监督学习技术及其中的流行算法。

监督学习与无监督学习

监督学习和无监督学习是人工智能和数据分析领域中使用的两种不同方法。以下是它们关键差异的简要总结:

训练数据

在监督学习中,算法在标记数据集上进行训练,其中输入数据与对应的期望输出(标签或目标值)配对。

无监督学习则涉及处理未标记的数据集,其中没有预定义的输出标签。

目标

监督学习算法的目标是学习关系——映射——从输入到输出空间。一旦学会了这种映射,我们可以使用模型预测未见数据点的输出值或类别标签。

在无监督学习中,目标是发现模式、结构或关系,通常用于将数据点聚类到组中、进行探索性分析或特征提取。

常见任务

分类(为一个未见过的数据点分配一个类别标签——众多预定义类别之一)和回归(预测连续值)是监督学习中的常见任务。

聚类(将相似的数据点分组)和降维(在保留重要信息的同时减少特征数量)是无监督学习中的常见任务。我们将在稍后详细讨论这些内容。

何时使用

有监督学习广泛用于期望输出已知且定义明确的情况,例如垃圾邮件检测、图像分类和医学诊断。

无监督学习在对数据没有或仅有有限的先验知识时使用,其目标是揭示隐藏的模式或从数据本身中获得洞察。

以下是差异的总结:

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

有监督学习与无监督学习 | 图片由作者提供

总结:有监督学习侧重于从标记数据中学习,以进行预测或分类,而无监督学习则试图发现未标记数据中的模式和关系。两种方法各有其应用——根据数据的性质和当前问题。

无监督学习技术

如讨论所述,在无监督学习中,我们拥有输入数据并被要求在这些数据中寻找有意义的模式或表示。无监督学习算法通过识别数据点之间的相似性、差异和关系来实现这一点,而不提供预定义的类别或标签。

在本讨论中,我们将介绍两种主要的无监督学习技术:

  • 聚类

  • 降维

什么是聚类?

聚类涉及根据某种相似性度量将相似的数据点分组到一起。算法旨在找到数据中的自然组或类别,其中同一簇中的数据点彼此更相似,而与其他簇中的数据点相比则不那么相似。

一旦我们将数据集分成不同的簇,我们实际上可以对它们进行标记。如有需要,我们可以在聚类后的数据集上执行有监督学习。

什么是降维?

降维是指减少数据中特征——维度——数量的技术,同时保留重要信息。高维数据可能复杂且难以处理,因此降维有助于简化数据以便进行分析。

聚类和降维都是无监督学习中强大的技术,提供了宝贵的洞察力,并简化了复杂数据以便于进一步分析或建模。

在本文的剩余部分,让我们回顾重要的聚类和降维算法。

聚类算法:概述

如前所述,聚类是无监督学习中的一种基本技术,它涉及将相似的数据点分组到簇中,在同一簇内的数据点彼此之间比与其他簇中的数据点更相似。聚类有助于识别数据中的自然划分,这可以提供关于模式和关系的见解。

有各种算法用于聚类,每种算法都有其自身的方法和特性:

K-Means 聚类

K-Means 聚类是一个简单、稳健且常用的算法。它通过根据每个簇中数据点的均值迭代更新簇质心,将数据划分为预定义数量的簇(K)。

它通过迭代精细化簇分配,直到收敛。

以下是 K-Means 聚类算法的工作原理:

  1. 初始化 K 个簇的质心。

  2. 根据选择的距离度量,将每个数据点分配到最近的簇质心。

  3. 通过计算每个簇中数据点的均值来更新质心。

  4. 重复步骤 2 和 3,直到收敛或达到定义的迭代次数。

层次聚类

层次聚类创建一个树状结构——一个树形图——的数据点,捕捉不同粒度层次的相似性。凝聚层次聚类是最常用的层次聚类算法。它从单独的数据点作为独立簇开始,并根据连接准则(如距离或相似性)逐渐合并它们。

以下是凝聚层次聚类算法的工作原理:

  1. n 个簇开始:每个数据点作为自己的簇。

  2. 将最近的数据点/簇合并为一个更大的簇。

  3. 重复 2 直到剩下一个簇或达到定义的簇数量。

  4. 结果可以借助树形图进行解释。

基于密度的空间聚类(DBSCAN)

DBSCAN 根据邻域中数据点的密度识别簇。它可以发现任意形状的簇,并且还可以识别噪声点和检测离群点。

该算法包括以下(简化以包含关键步骤):

  1. 选择一个数据点,并找到其指定半径内的邻居。

  2. 如果点有足够的邻居,通过包括其邻居的邻居来扩展簇。

  3. 对所有点重复此操作,形成由密度连接的簇。

降维算法概述

降维是减少数据集中特征(维度)数量的过程,同时保留重要信息。高维数据可能复杂、计算开销大且容易过拟合。降维算法有助于简化数据表示和可视化。

主成分分析(PCA)

主成分分析——或 PCA——将数据转换到新的坐标系统,以最大化主成分方向的方差。它在尽可能保留方差的同时减少数据维度。

这里是你如何进行 PCA 进行降维:

  1. 计算输入数据的协方差矩阵。

  2. 对协方差矩阵进行特征值分解。计算协方差矩阵的特征向量和特征值。

  3. 按特征值的降序排序特征向量。

  4. 将数据投影到特征向量上,以创建低维表示。

t-分布随机邻域嵌入(t-SNE)

我第一次使用 t-SNE 是为了可视化词嵌入。t-SNE 用于通过将高维数据降低到低维表示来进行可视化,同时保持局部成对相似性。

以下是 t-SNE 的工作原理:

  1. 构建概率分布来测量高维和低维空间中数据点之间的成对相似性。

  2. 使用梯度下降来最小化这些分布之间的差异。迭代地移动低维空间中的数据点,调整其位置以最小化成本函数。

此外,还有一些深度学习架构如自编码器可以用于降维。自编码器是设计用来编码然后解码数据的神经网络,有效地学习输入数据的压缩表示。

无监督学习的一些应用

让我们深入探讨无监督学习的一些应用。以下是一些例子:

客户细分

在营销中,企业使用无监督学习将客户群体细分为具有相似行为和偏好的组。这有助于定制营销策略、活动和产品供应。例如,零售商将客户分类为“预算购物者”、“奢侈品买家”和“偶尔购买者”等组。

文档聚类

你可以在文档语料库上运行聚类算法。这有助于将相似的文档分组,从而有助于文档的组织、搜索和检索。

异常检测

无监督学习可以用于识别数据中的稀有和异常模式——异常值。异常检测在欺诈检测和网络安全中有应用,以检测异常——异常行为。通过识别不寻常的消费模式来检测欺诈性信用卡交易是一个实际的例子。

图像压缩

聚类可以用于图像压缩,将图像从高维颜色空间转换为更低维的颜色空间。这通过用单个中心点表示相似的像素区域,从而减少图像存储和传输的大小。

社交网络分析

你可以分析社交网络数据——基于用户互动——以揭示社区、影响者和互动模式。

主题建模

在自然语言处理领域,主题建模任务用于从文本集合中提取主题。这有助于对大文本语料库中的主要主题进行分类和理解。

比如,我们有一批新闻文章的语料库,并且我们事先没有这些文档及其对应的类别。我们可以对这批新闻文章进行主题建模,以识别诸如政治、科技和娱乐等主题。

基因组数据分析

无监督学习在生物医学和基因组数据分析中也有应用。例如,通过根据基因的表达模式对基因进行聚类,以发现与特定疾病的潜在关联。

结论

我希望这篇文章能帮助你理解无监督学习的基础知识。下次你处理实际数据集时,尝试找出当前的学习问题,并评估是否可以将其建模为监督学习或无监督学习问题。

如果你正在处理具有高维特征的数据集,尝试在构建机器学习模型之前应用降维技术。继续学习!

Bala Priya C 是一位来自印度的开发者和技术写作专家。她喜欢在数学、编程、数据科学和内容创作的交集处工作。她的兴趣和专长领域包括 DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编程和咖啡!目前,她正在通过撰写教程、操作指南、观点文章等,与开发者社区分享她的知识。

更多相关主题

人工智能、数据科学、机器学习的即将到来的网络研讨会和在线活动:6 月

原文:www.kdnuggets.com/2020/06/upcoming-webinars-online-events-june.html

无论你是否仍在保持社交距离,都可以利用时间高效地学习新知识,参与丰富的网络研讨会和在线活动!

以下是 6 月份一些更有趣的活动。

另见我们完整的 网络研讨会在线活动 列表。

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

网络研讨会


时间活动

| 6 月 4 日 上午 10 点 PT

东部时间下午 1 点

格林尼治标准时间下午 5 点

90 分钟 | 统计学讲解:揭开机器学习和人工智能的面纱,由 JMP 主办。加入我们的主题演讲和小组讨论,探讨机器学习和人工智能。你将获得关于如何开始使用 ML 技术或在现有程序中有效整合它们的指导和故事,以最大化你的数据价值并推动组织的发展 |

| 6 月 8 日 中午 12 点 PT

东部时间下午 3 点 | 提炼的数据点,由 Dataiku & Grid Dynamics 主办。|

| 6 月 10 日 上午 8 点 PT

东部时间上午 11 点

格林尼治标准时间下午 3 点 | 人工智能如何在数据驱动的世界中应用,由 Sphaeric 的创始人兼首席数据科学家 Paul Kostoff 主办。|

| 6 月 10 日 上午 10 点 PT

东部时间下午 1 点

格林尼治标准时间下午 5 点 | 利用 TensorFlow 进行分布式处理,谷歌 AI/ML 技术讲座系列第 #6 场。|

| 6 月 10 日 上午 11 点 PT

东部时间下午 2 点 | 利用高级分析进行 COVID-19 恢复规划,由 Grid Dynamics 和 Data Science Salon 主办。|

| 6 月 10 日 上午 11:30 PT

东部时间下午 2:30 | ETL 和高级机器学习 - 开源,无需编码,由 KNIME 主办。|

| 6 月 11 日 上午 10 点 PT

东部时间下午 1 点 | 降低深度学习部署成本而不牺牲性能,由 ODSC 主办。|

| 6 月 11 日 上午 11 点 PT

东部时间下午 2 点 | 如何利用替代数据理解 COVID 经济,由 Caserta 主办。|

| 6 月 11 日 上午 11 点 PT

东部时间下午 2 点

格林尼治标准时间下午 6 点 | 连接数据:真正的好莱坞爱情故事,由 Tamr 主办。|

| 6 月 16 日 上午 8 点 PT

上午 11 点 ET | 使用 RapidMiner Server 执行多节点 ETL 和 ML 任务,由 RapidMiner 主讲。 |

| 6 月 17 日 上午 10 点 PT

下午 1 点 ET

下午 5 点 GMT | 危机预测与管理的 AI,由 RE•WORK 主讲。 |

| 6 月 17 日 上午 10 点 PT

下午 1 点 ET | 利用数据湖管理技术释放数据的隐藏价值,由 ODSC 主讲。 |

| 6 月 18 日 上午 9 点 PT

中午 12 点 ET

下午 4 点 GMT | 深度学习方法在预测与规划中的应用,由 Metis 主讲。 |

| 6 月 18 日 上午 10 点 PT

下午 1 点 ET

下午 5 点 GMT | 利用自由文本数据构建更好的模型,由 JMP 主讲。 |

| 6 月 18 日 上午 11 点 PT

下午 2 点 ET | 云数据管理最佳实践,由 Caserta 主讲。 |

| 6 月 23 日 上午 8 点 PT

上午 11 点 ET | 使用 RapidMiner Real-Time Agent 进行低延迟/边缘/实时评分,由 RapidMiner 主讲。 |

| 6 月 24 日 上午 11 点 PT

下午 2 点 ET | 利用图像转换器在 Spark OCR 中最大化文本识别准确性,由 John Snow Labs 主讲。 |

| 6 月 30 日 上午 8 点 PT

上午 11 点 ET | 解决客户流失:一个电信案例,由 RapidMiner 主讲。 |

这是我们完整的网络研讨会列表

在线活动和虚拟会议

这是我们完整的 在线和虚拟活动 列表。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. 谷歌数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT


更多相关内容

如何更新 Python 字典

原文:www.kdnuggets.com/2023/02/update-python-dictionary.html

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

作者提供的图片

在 Python 中,字典是一个有用的内置数据结构,它允许你定义元素之间的键值对映射。你可以使用键来检索相应的值。你也可以随时更新字典中的一个或多个键。


我们的前三大课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你所在组织的 IT


为此,你可以使用 for 循环或内置字典 update() 方法。在本指南中,你将学习这两种方法。

使用 For 循环更新 Python 字典

考虑以下字典 books

books = {'Fluent Python':50,
         'Learning Python':58}

在上面的字典中,书名(流行的 Python 编程书籍)是键,价格(美元)是值。请注意,books 字典是为本教程创建的,价格不对应实际价格。 😃

现在考虑另一个字典 more_books

more_books = {'Effective Python':40,
              'Think Python':29}

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

作者提供的图片

假设你想用 more_books 字典中的键值对更新 books 字典。你可以使用以下 for 循环来完成:

  • 遍历 more_books 字典的键并访问其值,并且

  • 更新 books 字典,将键值对添加到其中。

for book in more_books.keys():
    books[book] = more_books[book]
print(books)

我们看到 books 字典已经更新,以包含 more_books 字典的内容。

{
    "Fluent Python": 50,
    "Learning Python": 58,
    "Effective Python": 40,
    "Think Python": 29,
} 

你还可以在 more_books 字典上使用 items() 方法获取所有的键值对,遍历它们并更新 books 字典:

for book, price in more_books.items():
    books[book] = price
print(books)
{
    "Fluent Python": 50,
    "Learning Python": 58,
    "Effective Python": 40,
    "Think Python": 29,
}

update() 方法的语法

使用 update() 字典方法的一般语法如下:

dict.update(iterable)

在这里:

  • dict 是你想要更新的 Python 字典,并且

  • iterable 指的是任何包含键值对的 Python 可迭代对象。这可以是另一个 Python 字典或其他可迭代对象,如列表和元组。列表或元组中的每一项应包含两个元素:一个用于键,一个用于值。

使用 update() 更新 Python 字典

现在让我们重新初始化 booksmore_books 字典:

books = {'Fluent Python':50,
         'Learning Python':58}
more_books = {'Effective Python':40,
              'Think Python':29}

要更新 books 字典,你可以调用 update() 方法并传入 more_books,如下所示:

books.update(more_books)
print(books)

我们看到books字典已经更新,包含了more_books字典的内容。这个方法使你的代码保持可维护。

{
    "Fluent Python": 50,
    "Learning Python": 58,
    "Effective Python": 40,
    "Think Python": 29,
}

注意update()方法会原地更新原始字典。通常,使用dict1.update(dict2)会更新字典dict1(原地),而不会返回一个新的字典。因此,update()方法调用的返回类型是 None。

使用其他可迭代对象的内容更新 Python 字典

接下来,让我们看看如何用另一个字典的可迭代对象中的元素来更新 Python 字典。我们有一个名为some_more_books的书籍及其价格列表,示例如下。在每个元组中,索引 0 处的元素表示键,索引 1 处的元素对应值。

some_more_books = [('Python Cookbook',33),('Python Crash Course',41)]

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

作者图片

你可以像之前一样在books字典上使用update()方法。

books.update(some_more_books)
print(books)

我们看到books字典已按预期更新。

{
    "Fluent Python": 50,
    "Learning Python": 58,
    "Effective Python": 40,
    "Think Python": 29,
    "Python Cookbook": 33,
    "Python Crash Course": 41,
}

在存在重复键的情况下更新字典

到目前为止,你已经用另一个字典和一个元组列表中的键值对更新了一个现有的 Python 字典。在我们考虑的例子中,这两个字典没有任何共同的键。

当有一个或多个重复的键时会发生什么? 字典中对应重复键的值将被覆盖。

让我们考虑and_some_more,这是一个包含键值对元组的列表。请注意,它包含了‘Fluent Python’,这一项已经存在于books字典中。

and_some_more = [('Fluent Python',45),('Python for Everybody',30)]

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

作者图片

当你现在对books字典调用update()方法并传入and_some_more时,你会看到键‘Fluent Python’对应的值现在已经更新为 45。

and_some_more = [('Fluent Python',45),('Python for Everybody',30)]
books.update(and_some_more)
print(books)
{
    "Fluent Python": 45,
    "Learning Python": 58,
    "Effective Python": 40,
    "Think Python": 29,
    "Python Cookbook": 33,
    "Python Crash Course": 41,
    "Python for Everybody": 30,
} 

结论

总结来说,Python 的字典方法update()可以用另一个字典或其他可迭代对象中的键值对来更新一个 Python 字典。该方法会修改原始字典,并且返回类型为 None。你也可以使用这个方法来合并两个 Python 字典。然而,如果你想要一个新的字典,包含两个字典的内容,则不能使用此方法。

Bala Priya C 是一位技术作家,喜欢创作长篇内容。她的兴趣领域包括数学、编程和数据科学。她通过撰写教程、操作指南等与开发者社区分享她的学习成果。

更多相关主题

机器学习技能 - 这个夏天更新你的技能

原文:www.kdnuggets.com/2021/07/update-your-machine-learning-skills.html

评论

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

照片由 Nick Morrison 提供,来源于 Unsplash


我们的前三个课程推荐

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1. Google 网络安全证书 - 快速进入网络安全职业生涯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 2. Google 数据分析专业证书 - 提升你的数据分析技能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 3. Google IT 支持专业证书 - 支持你的组织的 IT 需求


你们中的许多人已经学习机器学习有一段时间了,也许是一年或两年。如果你现在评估自己,在机器学习的理论方面,即使是当初学习时非常清晰的内容,也可能因为未在实践中使用或过度依赖高级框架而遗忘了。

这两个月的课程适合那些已经在该领域工作了一段时间的人,帮助他们复习所有核心概念。

机器学习技能 第 1 周:数学基础

本周旨在确保你复习所有初学者掌握机器学习所需的核心数学概念。

第 1–3 天:线性代数

斯坦福大学提供了非常好的线性代数快速笔记,长达 30 页,专为复习而制,涵盖了所有重要的主题。你可以在这里找到它们。此外,如果你愿意,还可以观看笔记中主题的视频,但这些笔记足以帮助你复习概念。

第 3–6 天:概率和统计

概率和统计是机器学习的基础,这个由 Edureka 制作的简短视频可以帮助你快速复习概率和统计。除了这个视频,你还可以查看这些概率复习幻灯片以及这份斯坦福的 PDF 进行快速修订。

机器学习技能 第 2–3 周:机器学习和深度学习直觉

我将跟随斯坦福大学Andrew Ng教授(CS229 2018 年秋季学期)的最新讲解,深入了解机器学习算法背后的数学原理和工作机制。Andrew Ng 教授是斯坦福大学的兼职教授,但他还有很多其他活动,因此他最好被描述为“领先的人工智能研究员及 Deeplearning.ai、Coursera 及其他初创公司的创始人。”

对于深度学习算法,我将跟随Andrej Karpathy教授的 CS231n 课程,他在斯坦福大学完成了博士学位,并于 2016 年教授了著名的 CS231n 课程,这是一门最受欢迎的深度学习视觉系统课程之一。Andrej 现在是特斯拉的 AI 高级总监。

一些讲座也由Fei Fei Li教授讲授,她是斯坦福大学计算机科学系首任 Sequoia 教授及斯坦福人本人工智能研究所的共同主任。

第 1 天:线性回归

这是最常见的机器学习算法之一。Andrew Ng 讲解得很透彻,你可以在YouTube找到讲座视频,并在斯坦福大学的这里找到课程笔记。

第 2 天:逻辑回归

逻辑回归是最基础的分类算法,Andrew Ng 讲解得非常清晰,完整的讲座可以在 YouTube 上找到这里。逻辑回归的课程笔记在线性回归部分共享的 pdf 中。

第 3 天:朴素贝叶斯

朴素贝叶斯是一个著名的分类算法,完全基于概率背景。如果你没有学习过概率,这个算法会很难理解。幸运的是,Andrew Ng 在他最新的课程(2019 年)中讲解了这个算法,你可以在这里找到视频。这个算法没有出现在他的 Coursera 课程中。

你可以在这里找到课程笔记。

视频和笔记还讲解了 GDA,即高斯判别分析。

第 4–5 天:支持向量机

支持向量机(SVM)是初学者最难掌握的机器学习算法之一,尤其是在涉及到核函数时。Andrew Ng 有专门的视频讲解。

这将为你提供有关算法如何工作的良好数学直觉。

第 6 天:决策树与集成方法

决策树、随机森林以及其他集成方法如 XGBoost 都被广泛使用。CS229 讲解了决策树和集成方法,并以非常易于理解的方式解释了这些算法背后的数学原理。您可以在 这里 找到讲座视频。

第 7 天:无监督学习

无监督学习是机器学习的重要组成部分,并在许多应用中广泛使用。Andrew Ng 在这节讲座中讲解了无监督学习的重要算法,您可以在 这里 找到。

第 8 天:数据划分、模型和交叉验证

适当地划分数据集、选择正确的算法、拥有正确的交叉验证集都很重要。Andrew Ng 专注于这一重要方面,并在 this 视频中进行了讲解。

第 9 天:调试机器学习模型和误差分析

知道机器学习模型中存在什么问题以及如何改进这些问题既重要又困难。在 this 讲座中,Andrew Ng 详细讨论了这一点。

第 10 至 12 天:神经网络简介

神经网络是人工智能中一个非常重要且广泛使用的方面。3Blue1Brown 是一个非常著名的 YouTube 频道,拥有一个 短视频播放列表 ,可以帮助您了解神经网络的基础知识。

然后,为了更深入理解,您可以观看这 4 节讲座:

  1. Kian Ktanfrosh CS229 神经网络简介

  2. Andrej Karpathy 的神经网络 1

  3. Andrej Karpathy 的神经网络 2

  4. Andrej Karpathy 的神经网络 3,卷积神经网络简介

第 13 天:卷积神经网络

CNN 在工业界中非常重要且广泛使用。您在第四部分讲座中学到了其基础知识。在 this lecture 中,Andrej Karpathy 更深入地讲解了 CNN,并对其进行了精彩的阐述。

第 14 天:递归神经网络

RNN 是一种重要且广泛使用的深度学习算法,以其在序列和语言任务中的表现而闻名。在 this 讲座中,Andrej Karpathy 详细讲解了 RNN 和 LSTM,以及如何利用它们构建一些应用,例如图像标题生成。

机器学习技能第 4 周:计算机视觉理论

第 1 天:ConvNets 实践

这次讲座 涉及了使 ConvNets 非常强大的大多数细节,特别是在工业界。话题包括数据增强、迁移学习、卷积安排、瓶颈和分布式训练等。

第 2 天:定位和检测

目标定位和检测是一个非常酷且重要的特性,在多个应用中被广泛使用。Andrej Karpathy 在这次 讲座 中详细解释了它背后的数学原理。

第 3 天:在深度学习中处理视频和无监督学习

这次由 Andrej Karpathy 主讲的讲座将解释如何处理视频数据并使用无监督学习从中获得最大收益。

讲座链接:

第 4 天:分割和注意力

分割是计算机视觉中一个非常核心的任务。这次讲座深入探讨了两种不同的分割方法。注意力也是一个非常有名的任务,我们希望我们的模型关注图像中相关的特定部分。

讲座链接:

第 5 天:生成模型

能够生成新事物的模型真的很酷。现在,GANs 和 DeepFakes 非常有名。在这次讲座中,Fei-Fei Li 深入探讨了生成模型背后的数学和理论。

讲座链接:

你还可以观看 MIT 深度学习系列的讲座。

讲座链接:

第 6 天:使用 AI 创建 3D 内容

这次 MIT 讲座探讨了如何使用 AI 和深度学习创建 3D 内容。

讲座链接:

第 7 天:姿态估计

姿态估计是一个非常有名的任务,在多个应用中被广泛使用。目前关于它如何工作的优秀解释不多,但我尝试收集了一些资源,可以帮助你了解姿态估计的工作原理。

讲座链接:

博客:

机器学习技能第 5–6 周:实际计算机视觉

第 1 天:使用 TensorFlow/PyTorch 进行图像分类

第 2–5 天:使用 TensorFlow 进行目标检测

教程:

实践数据集:

第 6–9 天:物体分割

教程:

实践数据集:

第 10–12 天:GANs

教程:

第 13–14 天:神经风格迁移

教程:

机器学习技能第 7 周:实用自然语言处理

第 1 天:情感分析

教程:

实践数据集:

第 2 天:文本生成

教程:

第 3 天:预训练词嵌入

教程:

第 4 天:使用 BERT 进行文本分类

教程:

第 5 天:文本翻译

教程:

第 6–7 天:模型部署

教程:

机器学习技能:第 8 周

结构化机器学习项目

本周是深度学习专业课程中的第 3 课,你将学习如何构建深度学习项目,最佳的执行方法和实践,如何改进模型,如何进行错误分析等等。

你可以在 YouTube 播放列表中找到它,这里,如果你想要证书,可以在 Coursera 上找到,这里

相关:

更多相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值