数据分析

数据分析是指通过收集、处理、解释和呈现数据来发现信息、推断结论以及支持决策的过程。数据分析是一种科学方法,用于理解数据背后的模式、趋势和异常情况,以便能够做出明智的决策。数据分析的历史可以追溯到古代,当时人们使用各种方法来分析经济和人口统计数据。随着计算机和统计学的发展,数据分析变得更加准确和高效。在20世纪60年代,计算机的出现使得数据分析变得更加容易,这推动了数据分析的快速发展。

古代包括中国和西方,当时的数据分析主要应用在天象和占卜领域。在古代,人们观测天象的数据往往被视为神秘的预兆或象征,但随着时间的推移,人们开始通过系统性的分析来了解这些数据背后的规律。在西方,古希腊的天文学家托勒密和希波克拉底等人,通过对天象数据的分析和处理,建立了一套完整的天文理论和模型。在中国,汉朝时期的律历系统,也是通过对天象数据的收集和分析,建立起了完整的历法和天文学体系。此外,古代的占卜学也是一种基于数据分析的方法,通过对人类行为和天象数据的分析,来预测未来的走向和趋势。

在过去的几十年中,数据分析经历了许多重要的里程碑事件。其中一些事件包括:

在20世纪70年代,Edward Tukey首次提出了探索性数据分析(Exploratory Data Analysis)的概念,这种方法强调了数据分析中的数据可视化和探索性分析。在20世纪80年代,数据挖掘(Data Mining)概念被提出,它是一种从大型数据集中发现模式和关系的方法。在21世纪初,随着机器学习和人工智能的兴起,数据分析进入了一个新的时代,数据分析可以通过机器学习和人工智能来自动化和优化。

这些里程碑事件推动了数据分析的快速发展,并使其成为现代商业、科学和政府中至关重要的一部分。

数据分析的方式在不断演化。古代人们通常通过手动计算和经验总结的方式进行数据分析,而随着科技和数学的进步,人们开始采用更为科学化和系统化的方法进行数据分析。例如,古代的天文学家和占卜师主要依靠直觉和经验,而后来的科学家则借助更为精确的仪器和统计方法进行天象和数据分析。

近30年来,随着计算机技术和大数据技术的迅猛发展,数据分析的方式发生了翻天覆地的变化。传统的数据分析方法已经无法满足当今海量数据的处理和分析需求,新兴的数据分析方法也在不断涌现。以下是近30年来数据分析方式的几个重要变化:

传统的数据分析方式:传统的数据分析方式主要包括统计分析、数据挖掘、业务分析等,这些方法大多数是基于样本数据的统计分析方法,需要人工进行数据收集和处理。大数据时代的数据分析方式:随着大数据技术的发展,传统的数据分析方式已经不能胜任海量数据的处理和分析需求。因此,人们开始采用大数据技术和机器学习等算法进行数据分析。这些方法不仅可以处理海量数据,还能够自动学习数据模型和规律。数据可视化:数据可视化是一种将数据以图表、图像等形式展现出来的方法,可以帮助人们更直观地理解数据。数据可视化已经成为数据分析中不可或缺的一部分,可以帮助人们更好地发现数据中隐藏的规律和趋势。云计算和分布式计算:云计算和分布式计算技术可以帮助人们更高效地处理大规模数据,也为数据分析提供了更加灵活和强大的计算资源。

总之,近30年来,随着计算机技术和大数据技术的迅猛发展,数据分析的方式发生了翻天覆地的变化,也为人们提供了更为广阔和多样化的数据分析方法和工具。

数据分析的发展过程中,有许多标志性的软件、平台或服务:

SAS:SAS是最早的商业化统计软件之一,最初是由美国北卡罗来纳州立大学的统计学家Anthony James Barr开发的。它的功能非常强大,可用于数据分析、数据挖掘、预测分析、商业智能等领域。SPSS:SPSS是IBM公司推出的一款统计分析软件,适用于数据挖掘、预测分析、社会科学研究等领域,被广泛应用于学术界和商业界。Excel:Excel是微软公司开发的电子表格软件,它被广泛应用于各种数据分析和可视化的工作中。虽然它的统计分析功能相对有限,但它易于学习和使用,成为了许多人进行初步数据分析的首选工具。R:R是一种流行的免费开源统计软件和编程语言,它提供了广泛的统计分析和数据可视化功能,并且由于其强大的社区支持,已经成为许多数据科学家和统计学家的首选工具之一。Python:Python是一种通用编程语言,也被广泛应用于数据分析、机器学习和人工智能领域。Python的强大库和工具,如NumPy、Pandas和Scikit-learn,使得数据分析师可以使用Python进行更复杂的数据分析和建模。Tableau:Tableau是一种业界领先的商业智能和数据可视化平台,它提供了强大的数据可视化和交互功能,可以帮助数据分析师更好地理解和传达数据的意义。Power BI:Power BI是微软公司推出的一种商业智能平台,它提供了强大的数据分析和可视化功能,并且可以与其他微软产品无缝集成,如Excel和Azure。AWS、Azure、Google Cloud等云服务商提供的云计算服务也可以为数据分析师提供强大的计算和存储资源,使得数据分析更加高效和便捷。

Notebook

Jupyter Notebook的名称中的jupyter取自三种主要编程语言的缩写:Julia、Python和R。取名Notebook含义:Notebook本身就像一个电子笔记本,可以帮助数据科学家记录和整理数据分析工作的过程和结果。Jupyter Notebook的交互式、可视化和文档化特性可以使数据分析工作更加易于理解和共享,从而为数据科学家提供了一个类似实验室笔记本的工具。这也是Notebook被命名核心原因。

Notebook基于Web的交互式计算环境,允许用户创建和共享文档,其中包含实时代码、方程、可视化图表和叙述性文本等。它最初由Fernando Pérez于2011年创建,当时被称为IPython Notebook,是IPython项目的一部分。IPython Notebook最初是为Python编程语言而设计的,但是随着时间的推移,它已经成为支持多种编程语言(例如,Julia、R、Ruby等)的Notebook应用程序的基础。在2014年,IPython Notebook更名为Jupyter Notebook,以表明其支持多种编程语言的特性,而不仅仅是Python、还包括R语言、Julia、SageMath、spark 等等。

Notebook的交互性、可视化、文档化、可扩展性和共享性,是数据分析/数据科学/人工智能的最重要工具,可以提高开发效率和准确性、模型质量,并促进数据科学家之间的协作和分享。

交互性:Notebook可以与计算机的操作系统、文件系统和网络进行交互。用户可以在Notebook中直接输入命令或代码,并即时查看运行结果。这种交互性使得数据分析工作更加直观和高效。可视化:Notebook支持将代码、文本和可视化图表混合在一起,从而为用户提供了更加丰富和直观的数据分析展示方式。用户可以通过Notebook中的可视化工具绘制各种图表和数据可视化图形,例如折线图、柱状图和热力图等。文档化:Notebook可以将代码和注释文本集成在一起,从而使得数据分析过程和结果更加易于理解和分享。用户可以使用Markdown语法添加注释和说明文本,并将Notebook导出为HTML或PDF格式的文档,以便于他人查看和理解。可扩展性:Notebook可以通过插件和扩展功能来扩展其功能和支持更多的编程语言。用户可以使用Notebook支持的不同内核来执行不同的编程语言,例如Python、R、Julia等。同时,用户也可以安装各种扩展包来扩展Notebook的功能。共享性:Notebook可以保存在本地计算机或云端存储服务中,并且可以通过网络共享给其他用户进行查看和编辑。这种共享性使得Notebook成为了数据科学家之间协作和分享工作的重要工具。

NoteBook 展示

Github上托管的Notebooks的增长趋势

Notebook 由于在数据分析/数据科学上便利交互性和生态的完整性,行业内也发展了各种各样的Notebook 产品和平台,参见下图。

AIG(ChatGPT)

AIG(ChatGPT)是一种通用人工智能,它的目标是实现人类水平的智能。AIG是使用机器学习模型自动生成代码的技术。这些新技术的出现对编码方式和程序员产生了深刻的影响。

AIG的出现意味着计算机可以更加智能地理解和处理自然语言、图像、声音等人类输入信息,同时也能够做出类似于人类的决策和推理。这使得开发人员能够更高效地构建和部署具有人类水平智能的应用程序。

AIG技术的普及将对程序员产生深远的影响。它可以自动生成代码,减少开发时间和减轻程序员的负担。一方面,这使得程序员可以更快地完成任务,另一方面,它也会减少程序员的需求。然而,AIG技术不能完全代替程序员。程序员仍然需要在程序设计、架构和代码优化方面发挥他们的专业知识和技能。因此,程序员应该学习和掌握新技术,如AIG,以便更好地适应市场变化,提高工作效率和竞争力。另外,程序员也可以寻找新的职业机会,如人工智能开发、数据分析、系统架构设计等,以适应这一新的技术趋势。

• Copilot是一款由GitHub和OpenAI合作开发的人工智能代码自动生成工具,它基于OpenAI的GPT技术,可以根据用户提供的描述、注释和上下文,自动生成高质量的代码。Copilot可以在编写代码时为开发者提供实时建议和自动完成,极大地提高了代码编写的效率。同时,Copilot还可以自动化一些重复性的编码工作,例如模板代码的生成、常用代码片段的提供等,从而节省了开发者的时间和精力。

• Codex是OpenAI推出的自动代码生成工具,它使用了类似GPT的神经网络模型,可以通过学习GitHub上公开的代码库,快速地生成能够满足需求的代码。Codex主要使用了Python编程语言,可以实现大部分Python编程任务,如编写函数、类、模块等等。与Copilot不同,Codex不是一个VS Code插件,而是作为OpenAI API的一部分提供服务。用户可以通过API向OpenAI服务器发送请求,然后服务器会将生成的代码作为响应返回给用户。

程序员如何正确利用AIG(ChatGPT)?

要会提问,需要匹配的知识结构,才能正确的提问(prompt)并不总是正确,也会犯浑,会犯事实错误或者输出一些“一本正经的胡说八道”,要有较高段位才能识别AIG(ChatGPT) 对于编程知识的掌握是很棒的,但缺乏人类认知习惯,需要好的导师调教,才能融会贯通,未来程序员就是掌握相关技能的调校师和监督者。未来AIG(ChatGPT)是一个更强大的交互式编程工具。

数据分析面临的主要挑战

数据分析面临的主要挑战包括技术门槛高、沟通成本大、开发效率低和缺乏灵活性与深度支持。

a) 数据分析/数据科学的门槛比较高,主要体现在需要掌握统计学、计算机科学、领域知识等多方面技能才能进行有效的数据分析工作。例如,数据科学家需要了解数据结构、算法、机器学习等知识,以及行业相关的领域知识才能有效地进行数据分析和建模。

b) 需求人员/开发人员是分离的,之间的沟通成本比较大,这会导致开发出的数据分析产品很难满足需求人员的期望。例如,需求人员提出的需求可能比较模糊,需要开发人员通过反复沟通才能理解并转化为具体的数据分析任务。

c) Notebook作为目前数据分析和数据科学的主要承载方式,以Python、R、Julia等数据分析/数据科学的主要语言,有很高的灵活性和适应性,但是通过代码方式进行数据分析/数据科学工作,技术门槛还比较高,开发效率比较低。例如,需要掌握一定的编程语言和相关工具才能进行数据分析工作,而且每次需要重新运行代码才能看到结果,不如UI方式进行数据分析方便。

d) 目前以UI(托拉拽方式无代码)方式的数据分析平台提供了很大方便性,但灵活性较差,在数据清洗处理、深层次的数据挖掘、算法模型等数据科学方式支持较差,无法发挥数据价值。例如,这种平台可能只提供一些基础的数据分析功能,对于复杂的数据分析任务或需要自定义算法的情况,可能需要使用其他的数据分析工具或自己编写代码来实现。

AIG(ChatGPT)在数据分析上的主要挑战

AIG在数据分析和数据科学方面的局限性:

AIG需要深入了解数据分析背景和元数据才能给出合适的处理脚本,比如SQL和算法模型。数据分析需要一定的背景知识和元数据基础,比如了解数据来源、数据类型、数据特征等等。这些信息对于AIG引擎来说也是必须了解的,只有深入了解数据背景和元数据,才能给出合适的数据处理脚本,比如SQL语句或者算法模型。但是,数据分析的领域非常广泛,AIG需要学习各种领域的知识,这是个相对困难的问题。数据分析过程不仅是代码实现,还需要不断反映和交互,这对于AIG来说是个挑战。数据分析过程是不断交互的过程,这个过程不仅仅是编写代码,还需要根据数据的特征和变化不断反映和调整,这是一个相对复杂的过程。对于AIG来说,如何在数据安全的情况下,合理地提出问题(prompt)和反馈结果,也是一个挑战。因为数据分析涉及到隐私和机密性,对于一些敏感的数据,不能随便提出问题或反馈结果。AIG生成的结果质量有时好有时不稳定,可能会出现事实性的错误或胡说八道。AIG生成的结果质量有时好有时不稳定。ChatGPT(AIG)在自然语言处理方面的表现相当不错,但是在处理复杂的数据分析场景时,仍然存在许多问题,可能会出现事实性的错误或胡说八道。目前AIG还无法取代程序员进行一些复杂的数据分析和数据科学任务。

因此,尽管AIG在数据分析和数据科学方面有很大的潜力,但是在实际应用中还存在许多挑战和限制,需要程序员继续发挥其专业能力和技能。

Notobook与AIG(ChatGPT)相融合,数据分析的新范式

Notebook和AIG(ChatGPT)的相互融合可以改变数据分析的新范式。Notebook作为主要的数据分析工具之一,提供了交互式的界面,可以让分析人员在一个地方进行数据分析、可视化和代码编写。而AIG(ChatGPT)则可以在Notebook中作为一个辅助工具,帮助分析人员快速生成代码或解决一些数据分析中的痛点问题。这样可以有效提高数据分析的效率和质量,同时降低技术门槛和人力成本,让更多的人可以参与到数据分析中来。

ChatGPT能够生成高质量的代码,可以通过Notebook在实际数据上进行测试和迭代,不断优化模型的性能。同时,Notebook的试验探索能力也可以帮助ChatGPT更好地理解数据和问题,从而生成更准确的代码。这种结合的RLHF能力可以大大提高数据分析的效率和准确性,同时也有助于缓解数据分析面临的挑战和痛点,如代码实现的技术门槛高、数据与开发人员分离等问题。通过这种方式,数据分析可以进入一个新的范式,更加高效和灵活地利用人工智能技术进行数据挖掘和分析。

AIG(ChatGPT)和Notebook的结合可以带来反馈学习和迭代的能力(RLHF:Reinforcement Learning and Hyperparameter Optimization Feedback)

RLHF模型可以表示为一个反馈循环的过程。首先,Notebook中的数据科学家或分析师将数据加载到Notebook中进行数据分析和处理,并将结果传递给ChatGPT模型。ChatGPT模型生成代码或模型并将其返回给Notebook。在Notebook中,生成的代码或模型将被应用于数据,生成新的结果并反馈给ChatGPT模型,从而实现了反馈循环。通过这种反馈循环的过程,ChatGPT模型可以不断学习并改进生成的代码或模型,使其更加准确和高效。同时,Notebook的数据分析师也可以通过反馈过程获得更深入的数据洞察力,并改进数据分析和处理的方法。

整个步骤可以具体展开为:

Notebook读取数据平台或数据库的物理模型的元数据信息或数据资产目录信息、业务模型的业务知识,形成背景知识。通过在Notebook中向ChatGPT提出问题(prompt),如“如何对这些数据进行可视化?”或“如何建立分类模型?”等等。ChatGPT会根据输入的问题(prompt),生成对应的代码解决方案,如Python或R代码。Notebook执行生成的代码,验证结果,并通过与实际数据进行交互,反馈数据特征、问题以及需要改进的方面,以促进ChatGPT的学习和修复。重复步骤2-4,逐步完善和调整数据分析过程,直至得到满意的结果。

当SmartNoteBook遇到ChatGPT…

当SmartNoteBook遇到ChatGPT,将会给我们的数据分析师们带来何种体验?

接下来我们打开SmartNoteBook,用一份考试成绩的数据分析来浅尝一下…

首先,将我们的数据“喂给”ChatGPT,“教会”它我们的数据是什么样子:
接下来先浅浅让ChatGPT帮我们打印Grade表的前十条记录:
再统计一下物理成绩的分布情况:
筛选数学成绩并计算比例,然后绘制一张饼图:
统计每个学校各个科目的平均分:
将上一步的数据绘制柱状图:
很明显上一步柱状图Label太多了,我们简单修复一下:

当SmartNoteBook遇到ChatGPT,给数据分析师带来了更多好的体验,比如:

数据清洗和预处理:数据分析师可寻求ChatGPT帮助快速编写代码来清洗和预处理数据,例如删除重复行、填补缺失值、转换数据类型等。可视化数据:SmartNoteBook可以让您使用数据可视化库,例如使用低代码组件Charts或直接采用Matplotlib和Seaborn来创建图表和图形,以便更好地理解数据。ChatGPT可以帮助您解决任何与图表和图形有关的问题。机器学习和深度学习:SmartNoteBook可以让您编写机器学习和深度学习算法,以帮助您对数据进行预测和分类。ChatGPT可以帮助您解决与机器学习和深度学习相关的问题。自然语言处理:ChatGPT本身就是一个自然语言处理的模型,可以用于许多任务,例如文本分类、情感分析和机器翻译。您可以使用SmartNoteBook来预处理文本数据并训练自然语言处理模型,然后使用ChatGPT来帮助您优化和调整模型。

总之,当SmartNoteBook遇到ChatGPT,您可以更快地完成数据分析任务,并且可以随时向ChatGPT寻求帮助和支持。

总结

Notebook与AIG(ChatGPT)的融合形成了一种新的数据分析/数据科学的范式,能够充分利用ChatGPT的生成能力和Notebook的试验探索能力,形成反馈学习和迭代的能力(RLHF)。这种方法可以大大提高数据分析/数据科学的效率和质量,并且具有很强的灵活性和适应性。同时,这种方法也面临着一些挑战,比如ChatGPT生成结果的稳定性和正确性、数据安全和隐私等问题,需要进一步的研究和探索。

通过Notebook与AIG(ChatGPT)的融合,可以提高数据分析/数据科学的效率,充分发挥二者特点和优势,形成了反馈学习和迭代的能力(RLHF)。Notebook与AIG(ChatGPT)的融合降低了数据分析的门槛,使得理解业务的人员可以直接进行数据分析/数据探索,减少流程和环节、沟通成本。目前来说机器没有情感和办公室政治的因素,充分利用AIG引擎(ChatGPT)不仅可以提高组织效率,也大大降低组织的内耗成本。不足之处:数据分析/数据科学的复杂性和专业性,二者结合还是面临不少挑战;分析人员要同时面对数据和ChatGPT(AIG)引擎对知识和能力提出挑战,对流程和交互的组织方式还不成熟;同时,AIG生成的代码有时可能存在不符合实际情况或缺乏情感因素的情况。

《新语数据故事汇,数说新语》 科普数据科学、讲述数据故事,深层次挖掘数据价值。欢迎各位朋友投稿。

《新语数据故事汇,数说新语》