尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

什么是数据科学:从数据定义、数据旅程到文本挖掘词云实战(Data-Science-For-Beginners 第 1 课精读)

什么是数据科学:从数据定义、数据旅程到文本挖掘词云实战(Data-Science-For-Beginners 第 1 课精读) 什么是数据科学从数据定义、数据旅程到文本挖掘词云实战Data-Science-For-Beginners 第 1 课精读【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners本文是开源课程 Data-Science-For-Beginners10 周、20 课中《Defining Data Science》一课的深度导读。文章以课程 01-defining-data-science/README.md 为骨架完整梳理“数据—数据科学—相关学科—数据类型—数据来源—数据旅程—数字化转型”的知识主线并结合课程自带 Jupyter Notebook 挑战带你亲手完成一次从抓取网页、清洗 HTML、关键词提取到生成词云的端到端数据科学实践。读完你将能准确回答“什么是数据科学、它能做什么、数据从哪来”并能独立跑通并改造第一个文本挖掘 Notebook。本课在课程中的位置本课是课程第 1 板块1-Introduction/README.md的第一课该板块共 4 课为全书奠定概念基础Defining Data Science本课Data Science EthicsDefining DataIntroduction to Statistics and Probability本课的目标不是教你写第一行代码而是回答一个看似简单却很根本的问题数据科学到底是什么后续所有课程关系数据库、数据准备、可视化、生命周期、云端实践等都将建立在本课的概念框架之上。什么是数据从日常生活到计算机时代数据并不神秘它存在于我们的日常每个角落你现在读到的文字是数据手机通讯录里的电话号码是数据手表上显示的时间也是数据。作为人类我们天生就在“操作数据”——数钱、给朋友写信本质上都是对数据的处理。真正让数据变得至关重要的是计算机的诞生。计算机的主要职责是执行计算但计算必须有数据作为操作对象因此我们必须理解计算机如何存储和处理数据。而随着互联网的兴起计算机作为“数据处理设备”的角色进一步放大给朋友写邮件 → 在创建数据上网搜索信息 → 在存储、传输、操纵数据。正如课文中那个发人深省的问题你还记得上一次真正用计算机“算东西”是什么时候吗如今我们对计算机的使用早已从数值计算全面转向数据处理与通信。什么是数据科学定义与四个关键维度课程引用维基百科给出的定义数据科学Data Science是一门运用科学方法从结构化与非结构化数据中提取知识与洞见并把可操作的知识与洞见应用到广泛业务领域的科学领域。这一定义拆解出数据科学的四个核心要点要点说明提取知识Extract Knowledge数据科学的主要目标是理解数据发现隐藏关系、构建模型model使用科学方法Scientific Methods依赖概率与统计等数学工具。历史上有人曾认为“数据科学只是统计学的时髦别名”如今已公认该领域远比统计学宽泛产出可操作的洞见Actionable Insights获得的知识必须能被应用到真实的业务场景中做出决策而非停留在学术结论覆盖结构化与非结构化数据数据科学必须同时驾驭表格化的结构化数据与文本、图像等非结构化数据课程还特别强调一个常被忽略的方面数据科学与统计学的分工。统计学提供数学基础而数据科学要研究“如何借助计算机对数据进行采集、存储与操作”把数学概念真正落地为从数据中提炼洞见的工程实践。此外课程介绍了一种归功于计算机科学家 Jim Gray 的视角——把数据科学视为继以下三种范式之后的第四种科学范式实证科学Empirical主要依赖观察与实验结果理论科学Theoretical新概念从既有科学知识中推演产生计算科学Computational通过计算实验发现新原理数据驱动科学Data-Driven基于对数据中关系与模式的发现。数据驱动范式的提出标志着“从数据中找规律”本身已经成为与实验、理论、计算并列的一等科学研究方法。数据科学是交叉学科五个相邻领域由于数据无处不在数据科学自身也是一个横跨多学科的宽泛领域。课程用一张术语表梳理了它触碰到的五个相邻学科相邻领域与数据科学的关系课程后续对应数据库Databases核心问题是如何存储数据——以何种结构组织才能支持更快的处理详见 2-Working-With-Data/README.md大数据Big Data面对结构相对简单但体量巨大的数据需要用分布式集群存储与高效处理同上板块机器学习Machine Learning理解数据的一条路径是构建能预测期望结果的模型从数据中开发模型即机器学习本课程聚焦数据科学全流程机器学习体系另有专门课程人工智能AI机器学习的延伸构建模仿人类思维过程的高复杂度模型常能把非结构化数据如自然语言转化为结构化洞见贯穿课程可视化Visualization海量数据对人类不可直接理解可视化能帮助我们理解并得出结论相关领域还包括信息图Infographics与人机交互HCI详见 3-Data-Visualization/README.md理解这些相邻学科的价值在于数据科学家不必精通一切但要清楚地知道“何时把问题交给哪种技术”——存储问题找数据库规模问题找大数据工具预测问题找机器学习理解问题靠可视化。数据的类型结构化、半结构化与非结构化数据科学要“用正确的方式捕获数据”因此第一步是区分三种数据形态结构化数据Structured以某种良好组织的形式呈现通常是表格或若干相互关联的表格非结构化数据Unstructured只是一堆文件的集合没有预定义模型半结构化数据Semi-structured具有一定结构但这种结构在不同数据对象之间差异很大。课程用一组并置案例帮助建立直觉结构化半结构化非结构化带电话号码的联系人列表带链接的 Wikipedia 页面《大英百科全书》全文过去 20 年建筑内所有房间每分钟的温度以 JSON 格式存放含作者、发布日期、摘要的学术论文集合企业共享文件夹中的文档进入大楼所有人员的年龄与性别数据互联网页面监控摄像头的原始视频流需要留意同一个问题域可能同时包含多种数据形态。例如“进入大楼人员的年龄性别”是结构化数据而“监控摄像头原始视频”是非结构化数据——如何用 AI 把后者转化为前者正是后续课程如数据准备、生命周期反复出现的主题。数据从哪里来典型数据源盘点数据的来源无穷无尽课程无法穷举但给出了按结构化程度组织的典型数据源清单结构化数据源物联网IoT温度、压力等各种传感器数据。例如写字楼装上 IoT 传感器后可自动控制供暖与照明以最小化能耗成本调查问卷Surveys用户在完成购买或访问网站后填写的反馈行为分析Analysis of behavior理解用户深入网站的程度以及离开网站的典型原因。非结构化数据源文本Texts可提取总体情感得分sentiment score、关键词与语义含义图像或视频Images / Video监控视频可用于估算道路交通流量、向人们预警拥堵Web 服务器日志Logs判断网站哪些页面被最频繁访问、停留多久。半结构化数据源社交网络图谱Social Network graphs洞察用户个性与信息传播效能聚会照片Group Dynamics对一组派对照片建立“谁与谁合影”的关系图谱可提取群体互动规律。记住这些来源的价值在于当你面对一个业务场景时能立刻想到“这里其实有数据可用、有数据科学可施展的空间”。数据旅程用数据可以做什么数据科学的工作不是一锤子买卖而是一条清晰的数据旅程data journey。课程把这条旅程归纳为五个步骤并给出每步的关键方法论1) 数据获取Data Acquisition第一步是采集数据。很多场景下这很直接——数据从 Web 应用自然流入数据库但有些场景需要专门技术例如 IoT 传感器数据可能汹涌而来实践上应使用**缓冲端点如 IoT Hub**先汇聚全部数据再进行后续处理。2) 数据存储Data Storage存储是数据旅程中最具挑战的环节之一尤其是面对大数据时。核心决策原则是在决定如何存储前先预判你未来会如何查询这些数据。课程对比了三种主流存储形态关系型数据库Relational Database存放一组表用 SQL 查询表通常按schema模式分组。很多情况下需要先把原始数据转换成适配 schema 的形式NoSQL 数据库不对数据强制施加 schema允许存储更复杂的数据如分层的 JSON 文档或图结构。代价是缺少 SQL 那样丰富的查询能力且无法强制参照完整性即规范表间关系的规则数据湖Data Lake面向海量原始、非结构化数据的存储。常用于大数据场景——当全部数据无法放入单台机器必须由服务器集群存储与处理时Parquet是与大数据配合最常用的格式之一。3) 数据处理Data Processing数据旅程中最激动人心的一步把数据从原始形态转换为可用于可视化/模型训练的形式。面对文本、图像这类非结构化数据常常需要借助 AI 技术从中抽取特征features从而把它转成结构化形态。4) 可视化 / 人类洞见Visualization / Human Insights为了理解数据我们经常需要“把数据画出来”。数据科学家要像一个工具箱里装着多种可视化技巧的人反复“玩弄数据”、多次可视化以寻找关系同时用统计技术检验假设、证明不同数据之间的相关性。5) 训练预测模型Training a Predictive Model数据科学的终极目标是基于数据做决策因此可能需要借助机器学习的技巧构建预测模型之后用结构相似的新数据集去做出预测。课程提醒数据旅程并非每步都必须发生——当数据已经在数据库中时获取步骤可省略当不需要模型训练时最后一步可省略反之数据加工等步骤可能被重复多次。这是一种随数据形态弹性伸缩的工作流而非僵硬的流水线。数字化与数字化转型一个在线课程的完整案例近十年越来越多企业意识到数据对经营决策的重要性。把业务过程转译为数字形式、从而可以采集数据称为数字化digitalization而把数据科学技术应用于这些数据以指导决策、显著提升生产力甚至带来业务转型称为数字化转型digital transformation。为了把这两个抽象概念讲透课程给出了一个与读者零距离的场景——假设我们用数据科学来改进一门线上交付的数据科学课程正是本课程自己先问“什么可以数字化”最朴素的做法是记录每名学员完成每个模块的耗时并在每个模块结束时用多项选择题测验掌握程度。对全体学员的“完成耗时”求平均就能定位最让学员吃力的模块并着手简化。课文随即提出一个更公平的改进因为各模块长度不同更合理的指标是用“完成时间 ÷ 模块字符数”再作比较分析测验结果解析选择题作答数据找出学员理解困难的知识点从而改进内容——前提是测试题设计要让每道题对应一个明确概念或知识块更进一步做交叉分析把“每个模块耗时”对照“学员年龄段”作图可能发现某些年龄段的学员完成得异常慢、甚至中途退出据此为模块给出年龄适配建议减少因预期错配带来的挫败感。这个例子完整演示了从“采集哪些数据 → 如何数字化 → 如何分析 → 能做什么决策”的数字化转型最小闭环也为本课的课后作业见下文提供了范本。 动手挑战从 Wikipedia 文本挖掘关键词并生成词云课程把一个端到端的文本挖掘任务作为挑战下载 Wikipedia 的 Data Science 词条全文处理文本并抽取关键词最终生成一张像下面这样的词云图。所有代码都收录在课程 Notebook 中你可以直接打开 notebook.ipynb逐格运行观察每一步的数据形态变化。词云图并非装饰品它本身就是本课“数据旅程五步法”的一次完整演练——获取数据抓取网页→ 处理数据清洗 HTML→ 抽取洞见关键词提取→ 可视化词云。后面的课程数据准备、可视化等会分别放大讲解其中每一步。下面拆解 Notebook 的四个核心步骤。第一步获取数据Data Acquisition使用requests抓取 Wikipedia 的 Data Science 页面。注意代码设置了一个自定义User-Agent请求头这是访问网页时的良好实践许多站点会拒绝无标识的爬虫请求url https://en.wikipedia.org/wiki/Data_science import requests # 自定义请求头 headers { User-Agent: DataScienceChallenge/1.0 (myemailgmail.com) } response requests.get(url, headersheaders) if response.status_code 200: text response.content.decode(utf-8) print(text[:1000]) # 此时 text 还是原始 HTML else: print(fError: {response.status_code})第二步转换数据Transforming the Data抓回来的是 HTML 源码需要转换成适合分析的纯文本。Notebook 用BeautifulSoup做 HTML 解析先定位 Wikipedia 正文容器div.mw-parser-output再用 CSS 选择器剔除跳转链接、导航框navbox、参考文献列表、编辑按钮、目录、信息框等非正文元素from bs4 import BeautifulSoup soup BeautifulSoup(text, html.parser) content soup.find(div, class_mw-parser-output) # Wikipedia 正文容器 def clean_wikipedia_content(content_node): 剔除 Wikipedia 内容节点中的常见非正文元素。 selectors [ .mw-jump-link, .navbox, .reflist, sup.reference, .mw-editsection, .hatnote, .metadata, .infobox, #toc, .toc, .sidebar, ] for selector in selectors: for el in content_node.select(selector): el.decompose() if content: clean_wikipedia_content(content) text content.get_text(separator , stripTrue) print(text[:1000]) else: print(Could not find main content. Using full page text.) text soup.get_text(separator , stripTrue)这一整段“定位正文 按选择器清单剔除干扰元素 抽取纯文本”的代码就是数据准备清洗的雏形——它决定了后续关键词提取的质量上限。第三步获取洞见——RAKE 关键词提取Notebook 用RAKERapid Automatic Keyword Extraction算法实现关键词抽取使用的 Python 包是nlp_rake。Rake对象提供三个可调参数直接影响抽取结果参数本挑战取值含义max_words2一个关键词最多包含的单词数决定是否保留 “machine learning” 这类复合短语min_freq3关键词在文档中的最低出现频次过滤低频噪声min_chars5关键词的最短字符数过滤过短的词import nlp_rake extractor nlp_rake.Rake(max_words2, min_freq3, min_chars5) res extractor.apply(text) # 返回 (关键词, 重要度) 的列表 res运行结果会得到一个按重要度排序的 (词, 分值) 列表——machine learning、big data 等与数据科学最相关的学科会稳定出现在列表顶端。你完全可以调节上述三个参数观察抽取结果的敏感性。第四步可视化结果——条形图与词云人类对图形最敏感因此最后一步是把关键词及其权重画出来。Notebook 先给出最朴素的方案——用matplotlib画关键词权重条形图import matplotlib.pyplot as plt def plot(pair_list): k, v zip(*pair_list) plt.bar(range(len(k)), v) plt.xticks(range(len(k)), k, rotationvertical) plt.show() plot(res)但条形图在关键词数量很多时不便于阅读于是引入Word Cloud词云WordCloud对象既可以接收预计算好的“词—频率”字典也可以直接接收原始文本from wordcloud import WordCloud wc WordCloud(background_colorwhite, width800, height600) # 方式一基于 RAKE 提取的关键词频率生成 plt.figure(figsize(15, 7)) plt.imshow(wc.generate_from_frequencies({k: v for k, v in res})) # 方式二直接基于原始文本生成含较多噪声 plt.figure(figsize(15, 7)) plt.imshow(wc.generate(text)) # 保存为图片 wc.generate(text).to_file(images/ds_wordcloud.png)对比两种生成方式正是本挑战的点睛之笔直接对原始文本生成词云虽然视觉效果更“壮观”但混入了大量无意义噪声例如Retrieved on之类的样板文本复合关键词如data scientist、computer science也难以保留而 RAKE 抽取出的关键词则精准得多。这一对比直观展示了数据预处理与清洗的价值——只有入口数据干净终点结论才可靠。挑战任务与作业把方法论迁移到新领域本课的挑战不止于“看懂”更要求“迁移”。Notebook 的结尾鼓励学习者更换不同文本重跑整个过程配套的任务与作业给出了两个具体方向Task 1修改上述代码为Big Data和Machine Learning两个领域分别生成相关概念词云。参考做法可查看 solution/notebook.ipynb——它把目标 URL 换成了 Wikipedia 的 Machine Learning 词条并指出该词条噪声更多需要额外的清洗思路Task 2Think About Data Science Scenarios——针对多个真实领域按“采集什么数据 → 如何采集 → 如何存储、规模多大 → 能得到什么洞见、做什么决策”的框架做方案推演。Task 2 作业鼓励你在教育、疫苗接种、工作效率等领域任选三者填写方案表Problem Domain / Problem / 采集哪些数据 / 如何存储 / 能得出什么洞见与决策。仓库在 solution/assignment.md 提供了一份“教育领域提升课堂出勤率”的完整示例作答它设想用教室监控照片或手机蓝牙/Wi-Fi 地址追踪出勤把图像作为非结构化数据存储后用 AI 识别人脸转成结构化记录再与教务系统的考试成绩关联分析——并预告相关性分析会在 Statistics and Probability 一课深入讲解。评价标准Rubric是能否对全部问题域给出合理的数据来源、存储方式与决策洞见至少覆盖 2 个问题域且讨论存储细节能完整描述数据解决方案且覆盖多个领域分别对应“卓越 / 合格 / 待改进”。小结与下一步本课建立了一张贯穿整本课程的概念地图数据是计算机时代的第一公民理解“如何存储与处理数据”是数据科学的地基数据科学 科学方法 从结构化/非结构化数据提取知识与可操作洞见是继实证、理论、计算之后的第四种科学范式它天然横跨数据库、大数据、机器学习、AI、可视化等相邻学科一切工作围绕五步数据旅程获取 → 存储 → 处理 → 可视化/洞见 → 预测模型展开把业务数字化、再用数据驱动决策就是数字化转型词云挑战证明即使是最基础的网页文本也能通过“抓取—清洗—抽取—可视化”跑通一整个迷你数据科学流程。课程的下一站将从“概念”走向“规范与实践”学习数据科学家的伦理责任02-ethics、精确定义数据03-defining-data、打好统计与概率地基04-stats-and-probability随后进入 2-Working-With-Data 板块落地关系数据库、NoSQL 与数据准备的具体操作。若想在本课之后立即获得编码手感也可以先翻一翻仓库根目录的 examples/README.md那里按难度递进提供了从“加载数据”到“完整分析流程”的 5 个可直接运行的最小示例。本课内容提炼自 1-Introduction/01-defining-data-science/README.md由 Dmitry Soshnikov 编写配套 sketchnote 与完整挑战代码均存放于本课目录内可随时对照学习。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表