逐步解释如何创建一个真实的数据科学项目? - kdnuggets

20-10-08 banq

如果您刚开始以数据科学家的身份开始工作,那么您将首先想通过可以实施和共享的有趣的数据科学项目构想来展示自己的技能。本分步指南将向您展示如何完成此过程,并提供一个原始示例,探讨德国最大的飞行客论坛Vielfliegertreff。

 

步骤1:选择与您相关的激情话题

 

首先,我考虑一个可能满足以下三个要求的项目,使其成为最有趣和最有趣的项目:

  1. 解决 我自己的问题或棘手的问题。
  2. 与某个近期事件相关 或特别有趣。
  3. 一直没有 得到解决或之前覆盖。

 

步骤2:开始将数据集收集在一起

将数据收集在一起意味着抓取网站书籍,对于Vielfliegertreff, 出于以下原因,我使用 scrapy作为框架:

  1. 有 没有的JavaScript 启用的藏身数据元素。
  2. 网站的 结构非常复杂,必须从每个论坛主题到所有主题,从各个层面到所有发布网站页面。使用 scrapy,您可以轻松实现复杂的逻辑, 从而产生有组织的方式导致新回调函数的请求。
  3. 帖子很多,因此爬网整个论坛肯定需要一些时间。Scrapy允许您以 惊人的速度异步抓取网站。

为了变得友善而不被阻塞,重要的是要轻轻调优一下,例如,启用scrapy的 自动油门功能。此外,我还通过项管道将所有数据保存到SQL lite数据库中,以避免重复,并打开日志记录每个URL请求,以确保如果停止并重新启动抓取过程,则不会对服务器造成更多负载。

知道如何抓取使您可以自由地自己收集数据集,并教会您有关Internet的工作原理,请求是什么以及HTML / XPath的结构的重要概念。

对于我的项目,我最终获得了1.47 GB的数据,该数据在论坛中接近100万个帖子。

 

步骤3:清理资料集

对于我来自Vielfliegertreff的数据集,有一些常见的任务,例如将日期转换为熊猫时间戳,将数字从字符串转换为实际的数值数据类型,以及将非常凌乱的HTML帖子文本清理为可读取且可用于NLP任务的东西。尽管有些任务比较复杂,但我想 分享我最喜欢的3个librarie,它们解决了一些常见的数据清理问题:

  1. dateparser:可以轻松解析网页上常见的几乎任何字符串格式的本地化日期。
  2. clean-text:使用clean-text预处理您抓取的数据,以创建规范化的文本表示形式。删除个人身份信息(例如电子邮件或电话号码等)也非常出色。
  3. Fuzzywuzzy:模糊字符串匹配,像一个老板。

 

步骤4:资料探索与分析

跨行业的数据挖掘标准流程(CRISP-DM)是一个非常有趣的框架,可以系统地组织您的工作。

通过当前的流程,我们隐含地遵循了CRISP-DM的项目:

 通过在步骤1中提出以下问题来表达 业务理解:

  1. COVID-19对Vielfliegertreff等在线飞行常客论坛有何影响?
  2. 论坛中最好的帖子是什么?
  3. 作为新加入者,我应该追随哪些专家?
  4. 人们对航空公司或机场所说的最坏或最好的话是什么?

借助抓取的数据,我们现在能够将我们最初的业务问题从上面转换为特定的数据解释性问题:

  1. 每月发布多少个帖子?在COVID-19之后,职位在2020年初是否减少了?是否也有某种迹象表明加入该平台的人数减少了?
  2. 按赞次数排名前10位的帖子数是多少?
  3. 谁在该帖子上发布的次数最多,并且平均也收到最多的赞?这些是我应定期关注以查看最佳内容的用户。
  4. 对每个帖子进行情感分析并结合命名实体识别以识别城市/机场/航空公司,是否会引起有趣的正面或负面评论?

对于Vielfliegertreff项目,可以肯定地说,这些年来职位呈下降趋势。借助COVID-19,我们可以清楚地看到,自2020年1月起欧洲关闭和关闭边境以来,邮政数量迅速减少,这也严重影响了旅行。

 

步骤5:通过博客文章或网络应用分享您的工作

完成这些步骤后,您可以再进一步一步,创建一个可以对某些数据点进行分类或预测的模型。对于这个项目,尽管我有一些有趣的想法可以对与某些航空公司有关的职位情绪进行分类,但我并未尝试进一步以特定方式使用机器学习。

但是,在另一个项目中,我对价格预测算法进行了建模,该算法允许用户获得任何类型的拖拉机的价格估计。然后使用令人敬畏的streamlit框架部署了该模型,可以在此处找到  (请耐心等待加载,因为加载可能会慢一些)。

 

              

猜你喜欢