ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Data-Science-For-Beginners 第一课:定义数据科学——从概念框架到词云文本挖掘实战

Data-Science-For-Beginners 第一课:定义数据科学——从概念框架到词云文本挖掘实战 Data-Science-For-Beginners 第一课定义数据科学——从概念框架到词云文本挖掘实战【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners本文为 Data-Science-For-Beginners 仓库10 Weeks, 20 Lessons, Data Science for All!1-Introduction 章节第一课Defining Data Science的中文技术解读。读完后你将掌握数据科学的核心定义与四大科学范式、结构化/半结构化/非结构化数据的判别标准、数据全流程的五个阶段采集、存储、处理、可视化、预测建模并能亲手运行仓库中的 Jupyter Notebook完成一个下载 Wikipedia 文本 → 清洗 HTML → RAKE 关键词提取 → 词云可视化的端到端数据科学小案例。1. 什么是数据What is Data原文芬兰语版课程文档 README.md开篇即指出我们日常生活的方方面面都被数据包围——你正在阅读的文字是数据手机里朋友的通讯录是数据手表上显示的时间也是数据。作为人类我们天然就在处理数据清点零钱、给朋友写信本质上都是对数据的操作。数据之所以变得格外关键有两个历史转折点计算机的出现计算机的首要职责是执行计算但计算必须依赖数据才能进行。因此我们需要理解计算机如何存储与处理数据这是数据科学的技术基础。互联网的普及计算机作为数据处理设备的角色被空前放大。写一封电子邮件、在 Internet 上检索信息本质上都是在创建、存储、传输和操作数据。课程还抛出一个值得反思的问题你上一次用计算机真正做计算是什么时候——多数人会发现现代生活更多是在处理数据而非执行数值计算。2. 什么是数据科学What is Data Science课程引用了维基百科的经典定义数据科学是一门使用科学方法从结构化与非结构化数据中提取知识和洞见并将这些知识与可操作的洞见应用于广泛领域的学科。这一定义在文档中被拆解为五个关键方面是整个课程的概念基石核心目标是提取知识即理解数据、发现隐藏的相关性并构建模型model。使用科学方法如概率论与统计学。当初data science这一术语首次提出时有人质疑它只是统计学换了个时髦名字如今学界已明确该领域的范围远大于统计学。产出可操作的洞见actionable insights获得的知识必须能落地到真实业务场景中而非停留在理论层面。同时处理结构化与非结构化数据文档明确预告这一主题将在课程后续章节深入展开。应用领域application domain意识数据科学家通常需要对问题领域金融、医疗、市场营销等至少具备一定程度的专业知识。文档还补充了统计学与数据科学的分工统计学提供数学基础数据科学则把数学概念应用落地真正从数据中挖掘洞见同时数据科学还研究数据如何借助计算机进行采集、存储与操作。2.1 Jim Gray 的科学四范式文档引用了计算机科学家 Jim Gray 的著名观点数据科学可被视为科学的一个独立范式。传统科学范式包括经验范式Empirical主要依赖观测和实验结果理论范式Theoretical新概念从既有科学知识中推导产生计算范式Computational通过计算实验发现新原理数据驱动范式Data-Driven基于在数据中发现关系与模式。数据驱动范式是数据科学区别于前三者的核心特征——它把数据本身当作科学发现的直接来源。3. 相关学科数据科学的知识版图由于数据无处不在数据科学是一个横跨多学科的宽领域。文档用五个条目勾勒了这张知识版图理解它们有助于定位本课程后续各章节的知识坐标数据库Databases关键问题是数据如何存储——如何组织数据以加快处理速度。存在多种可存储结构化与非结构化数据的数据库类型这一点在课程 Working with Data 章节 中专门讨论涵盖关系型数据库与非关系型数据库。大数据Big Data经常需要存储和处理体量极大但结构相对简单的大量数据。业界存在专门的方法与工具将数据分布式地存储在计算机集群上并高效处理。机器学习Machine Learning理解数据的一种方式是从数据中构建模型来预测期望结果这一过程称为机器学习。人工智能Artificial Intelligence机器学习中构建高复杂度模型、模拟人类思维过程的分支。AI 方法常能把非结构化数据如自然语言转化为结构化洞见。可视化Visualization海量数据对人来说难以直接理解而借助合适的可视化手段人类可以从中做出判断并得出结论。课程第 3 部分 Data Visualization 专门系统讲解各类可视化方法相关领域还包括信息图形学Infographics与人机交互HCI。4. 数据的类型结构化、半结构化与非结构化文档强调区分三种数据形态对后续技术选型至关重要并给出了如下判别标准与典型实例对照表结构化Structured半结构化Semi-structured非结构化Unstructured人员及其电话号码列表带链接的维基百科页面百科全书的纯文本过去 20 年每栋建筑每个房间每分钟的温度以 JSON 存储的论文集合含作者、发表日期、摘要企业文档共享文件夹进入建筑者的人的年龄与性别数据一般互联网网页监控摄像头的原始视频流结构化数据通常以表格或一组表格形式呈现具有严格、固定的模式schema最适合关系型数据库。非结构化数据本质上就是文件集合没有固定模式处理它往往需要 AI 技术先做特征提取。半结构化数据存在某种结构但格式可变性大如 JSON、XML、网页介于两者之间。课程仓库data/目录下提供的练习数据恰好是这类结构化数据的典型代表例如 data/birds.csv、data/mushrooms.csv、data/diabetes.tsv 等表格型数据集以及 data/SOCR_MLB.tsv 这类 TSV 表格数据后续章节将围绕它们展开处理与可视化练习。5. 数据从哪里来Where to get Data数据源种类繁多无法穷举。文档按数据结构类型归纳了典型来源这份清单可以作为你设计数据科学项目时采集数据环节的自查清单结构化来源物联网IoT各类传感器温度、压力等持续产生数据。例如办公大楼装上 IoT 传感器后可以自动调控供暖与照明以最小化成本。问卷调查Surveys在用户完成购买或访问网站后邀请其填写的调查。行为分析Analysis of behavior例如分析用户深入网站多深的页面、以及他们离开网站的典型原因。非结构化来源文本可以是整体情感评分sentiment score、关键词抽取与语义含义提取的富矿。图像或视频监控摄像头视频可用于估算道路车流量、向公众预警可能的拥堵。Web 服务器日志用于理解站点中哪些页面被访问最多、用户停留多久。半结构化来源社交网络图是了解用户个性以及信息传播效率的优秀数据源。群体动力学Group Dynamics例如从一场聚会的照片中构建一起合照的人之间的关系图提取群体互动模式。文档最后提示熟悉这些数据源后你可以主动设想数据科学技术可以应用的不同场景去改善对现状的理解、优化业务流程——这正是本课后作业见第 8 节要求你做的事。6. 数据能做什么数据旅程的五个阶段数据科学聚焦于数据旅程的五个核心阶段。这五个阶段也是本课程整体结构的隐含主线6.1 阶段一数据获取Data Acquisition第一步是收集数据。很多情况下这很直接例如 Web 应用数据直接入库但有时需要专门技术。典型例子IoT 传感器数据可能量级巨大overwhelming良好的工程实践是使用**缓冲端点buffering endpoints如 IoT Hub**先行汇聚所有数据再做后续处理。6.2 阶段二数据存储Data Storage存储数据极具挑战性尤其在大数据场景下。文档提醒一个关键决策原则决定如何存储数据之前先预判未来会如何查询数据。文档对比了三类主流存储方案存储方案特点适用场景关系型数据库RDBMS存储表的集合使用 SQL 语言查询表通常组织到不同的schema中多数情况需要将数据从原始形态转换以适配 schema结构化数据、需要强查询能力与引用完整性NoSQL 数据库如 CosmosDB不对数据强制 schema可存储更复杂的数据如层级化 JSON 文档、图但查询能力不如 SQL 丰富且无法保证引用完整性referential integrity——即无法强制约束表间关系规则半结构化数据、需要弹性结构数据湖Data Lake以原始、非结构化形态存储大规模数据集合常与大数据配合数据无法放入单机需要由服务器集群存储和处理Parquet是与大数据常配合使用的列式数据格式海量原始数据、需要保留原始形态课程 2-Working-With-Data 章节第 5、6 课关系型数据库、非关系型数据库将针对前两类存储提供实操仓库中提供了 airports.db 关系型数据库练习文件与 PersonsData.json 等 NoSQL 练习数据。6.3 阶段三数据处理Data Processing这是数据旅程中最激动人心的部分把数据从原始形态转换成可用于可视化或模型训练的形态。处理文本、图像等非结构化数据时往往需要借助 AI 技术从数据中提取特征features从而将其转化为结构化形式。6.4 阶段四可视化 / 人类洞见Visualization / Human Insights理解数据常常需要可视化。工具包中拥有多种可视化技术才能找到能产出洞见的正确视角。数据科学家经常需要玩数据——反复可视化、寻找关系也可以使用统计技术来检验假设、证明不同数据部分之间的相关性。这一阶段的系统训练见课程 3-Data-Visualization 章节第 9–13 课。6.5 阶段五训练预测模型Training a predictive model既然数据科学的终极目标是基于数据做决策就可能要用到机器学习的技巧来构建预测模型predictive model随后用该模型对具有相似结构的新数据集进行预测。文档还特别说明了一个实践要点这五个阶段并非线性流水线——取决于具体数据某些阶段可能缺失例如数据已在数据库中则无需采集某些任务不需要训练模型某些阶段也可能重复多次如数据处理经常反复迭代。7. 数字化与数字化转型Digitalization and Digital Transformation文档最后两个概念澄清了近十年商业语境中的高频术语数字化Digitalization把业务流程翻译成数字形态以采集数据的过程。要运用数据科学指导业务第一步就是先有数据即先完成数字化。数字化转型Digital Transformation将数据科学技术应用于这些数据来指导决策从而带来显著的生产力提升甚至商业模式重塑。7.1 案例剖析用数据科学改进一门在线课程文档给出了一个完整的推理示范——假设有一门在线数据科学课程如本课程想运用数据科学方法改进它该怎么做文档展示了三层递进的分析设计第一层采集基础指标。测量每个学生完成每个模块所花的时间并在每个模块末尾布置多选题测验来度量知识获取。对所有学生的完成时间取平均即可找出哪些模块造成的困难最大然后着手简化这些模块。文档同时给出了一个重要的度量偏差提醒原文引用块由于各模块长度不同直接用原始时间比较并不公平更合理的做法是用模块完成时间除以模块长度字符数再比较归一化后的数值。第二层分析测验结果定位概念盲区。分析多选题结果以判断学生难以理解哪些概念并据此改进内容。前提是测验设计本身要科学每道题目必须映射到某个特定概念或知识块否则无法从错误率反推概念难度。第三层引入人口学维度做深度分析。将每个模块的耗时与学生的年龄段分组绘图cross-analysis。可能发现的模式包括某些年龄段的完成时间异常偏长、或学生在完成前流失。这些洞察可用于给出模块的年龄建议、减少因错误预期带来的用户不满。这个案例完整演示了第 6 节数据旅程五阶段中的采集、处理、可视化与洞见产出是理解数据科学如何从数字走向决策的最佳入门示范。8. 实战挑战用词云发现数据科学领域的核心概念课程的 Challenge 部分是一个覆盖数据科学传统流程全部环节的小型文本挖掘text mining实战下载关于 Data Science 的 Wikipedia 文章文本抽取其中的关键词然后生成词云word cloud。完整实现代码在 1-Introduction/01-defining-data-science/notebook.ipynb 中芬兰语翻译目录下亦有对应副本 translations/fi/1-Introduction/01-defining-data-science/notebook.ipynb。你既可以只阅读代码也可以直接在 Jupyter 中运行观察数据变换的全过程。下面按 Notebook 的四步结构逐步拆解。8.1 Step 1获取数据requests 抓取网页第一步是获取数据。Notebook 使用requests库抓取 Wikipedia 的 Data Science 词条页面并显式设置自定义 User-Agent 请求头——这是抓取公开网页的良好实践很多站点会对无身份标识的请求返回 403import requests url https://en.wikipedia.org/wiki/Data_science # Define a custom header. headers { User-Agent: DataScienceChallenge/1.0 (myemailgmail.com) } # Pass the headers into the get request response requests.get(url, headersheaders) if response.status_code 200: text response.content.decode(utf-8) print(text[:1000]) else: print(fError: {response.status_code})这里有两个值得注意的工程细节一是检查response.status_code 200再做后续处理属于防御式编程二是用response.content.decode(utf-8)显式将字节流解码为文本。8.2 Step 2转换数据BeautifulSoup 清洗 HTML下载得到的是 HTML 源码需要转换成纯文本。Notebook 选用BeautifulSoup解析 HTML先定位维基百科正文容器Wikipedia 用mw-parser-output这个 class 包裹文章主体再逐个decompose()掉导航框navbox、参考文献列表、目录TOC、信息框infobox等与正文无关的元素最后用get_text(separator , stripTrue)抽取干净文本!{sys.executable} -m pip install beautifulsoup4 from bs4 import BeautifulSoup # Parse the HTML content soup BeautifulSoup(text, html.parser) # Wikipedia uses mw-parser-output class for the main article content content soup.find(div, class_mw-parser-output) def clean_wikipedia_content(content_node): Remove common non-article elements from a Wikipedia content node. # Strip jump links, navboxes, reference lists/superscripts, edit sections, TOC, sidebars, etc. 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)这一步对应第 6.3 节数据预处理阶段把非结构化的 HTML 转成适合分析的结构化纯文本。数据清洗的质量直接决定下游分析结果的质量——这一点在 Step 4 的对照实验中会得到验证。8.3 Step 3提取洞见RAKE 关键词抽取Notebook 使用nlp_rake库实现 RAKERapid Automatic Keyword Extraction算法抽取关键词。RAKE 无需训练语料基于词内连接词与词频启发式打分适合快速从单篇文档中挖掘关键词。Notebook 中显式设置了三个参数max_words2关键词最多由 2 个词组成保留 data scientist、machine learning 这类双词术语min_freq3关键词在文档中的最低出现频次为 3过滤偶发词min_chars5关键词最短 5 个字符过滤过短的无意义词。!{sys.executable} -m pip install nlp_rake import nlp_rake extractor nlp_rake.Rake(max_words2, min_freq3, min_chars5) res extractor.apply(text) res运行结果是一个关键词-重要度分数列表pair list。从输出可以看到machine learning、big data 等最相关的学科术语都排在列表前列——这正是课程想让你发现的与数据科学相关的概念。文档还鼓励读者调整这些参数值观察结果如何变化这是理解参数-结果映射关系的经典学习方式。8.4 Step 4可视化结果柱状图 词云人类以视觉方式理解数据最高效因此最后把关键词重要度分布可视化。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)然后引入wordcloud库生成词云。WordCloud对象既可以直接吃原始文本也可以接受预计算的词频表!{sys.executable} -m pip install wordcloud from wordcloud import WordCloud import matplotlib.pyplot as plt wc WordCloud(background_colorwhite, width800, height600) 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)8.5 关键观察预处理质量决定洞见质量Notebook 的结尾做了一次极具教学价值的对照实验把 RAKE 提取后的关键词频表生成的词云与直接对原始全文wc.generate(text)生成的词云对比。结论是——直接处理原始文本的词云虽然看起来更壮观但包含大量噪声词例如与正文无关的 Retrieved on 之类页面样板文字而且双词专业术语如 data scientist、computer science明显更少因为 RAKE 算法在从文本中挑选高质量关键词方面做得更好。Notebook 原文对此的总结是这个例子说明了数据预处理与清洗的重要性——最终得到清晰的画面才能让我们做出更好的决策。这恰好呼应了课程定义中提取知识这一核心目标洞见的质量由上游清洗的质量决定。9. 课程任务与延伸练习与本文档配套的课后任务共两项定义见 translations/fi/1-Introduction/01-defining-data-science/assignment.md英文原版见 1-Introduction/01-defining-data-science/assignment.md参考答案在 translations/fi/1-Introduction/01-defining-data-science/solution/assignment.md任务 1修改 8 节的词云代码将目标文本换成Big Data与Machine Learning两个领域的相关词条观察两个领域各自的关键词图谱。实践提示只需替换 Step 1 中的url并视词条正文结构调整 RAKE 的min_freq阈值短词条可适当调低。任务 2思考数据科学场景Think About Data Science Scenarios。要求你为 3 个不同的现实问题域文档给出的起点示例学校教育改进、疫情疫苗接种管理、个人工作效率提升也可自拟逐一回答四个问题可以采集哪些数据如何采集这些数据如何存储数据数据量级大概多大能从数据中获取哪些洞见能据此做出哪些决策并填入如下分析表问题域问题采集哪些数据如何存储数据可做出的洞见/决策教育疫苗接种生产力评分标准Rubric分三档优秀——对所有问题域都识别出合理的数据源、存储方式与可能的决策/洞见合格——部分方面不够详细、未讨论数据存储但至少描述了 2 个问题域需改进——只描述了数据方案的部分内容、只考虑了 1 个问题域。这份任务的四个问题恰好对应第 6 节数据旅程中采集、存储与洞见产出三个阶段是检验是否真正理解数据旅程五阶段的最佳自测。10. 小结作为 Data-Science-For-Beginners 的第一课本文档芬兰语翻译版完成了整个课程的概念奠基定义层面数据科学 科学方法 × 结构化/非结构化数据 × 可操作洞见 × 应用领域它同时是 Jim Gray 所说的数据驱动范式。数据层面区分结构化/半结构化/非结构化三种数据并建立IoT、调查、行为、文本、图像、日志、社交图谱等数据源心智清单。流程层面掌握采集 → 存储RDBMS / NoSQL / Data Lake 三种选型→ 处理 → 可视化 → 预测建模的五阶段框架并理解阶段可缺省、可迭代。落地层面通过数字化与数字化转型概念学会把业务流程转化为数据驱动决策通过词云 Challenge 亲手跑通一个端到端的文本挖掘流程体会预处理质量决定洞见质量。建议的学习路径是先通读本文档建立概念框架再运行 notebook.ipynb 的四个 Step 并尝试调整 RAKE 参数最后完成 assignment.md 中的两项任务然后进入课程第 2 课数据科学伦理与后续章节——数据工作2-Working-With-Data、数据可视化3-Data-Visualization与数据科学生命周期4-Data-Science-Lifecycle都会在第 1 课的概念框架之上继续展开。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表