项目分析_流程分析|学习笔记

简介: 快速学习项目分析_流程分析

开发者学堂课程【大数据 Spark2020版(知识精讲与实战演练)第四阶段 项目分析_流程分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/691/detail/12106


项目分析_流程分析


流程分析

内容:陌生环境下拿到一个需求,如何一步步规划步骤

流程分析:

第一步分析流程,第二步具体流程介绍、代码如何编写、大致步骤

1.分析的视角

分为三步,第一步理解数据集,理解数据集的过程要查看你数据集,数据集是否有结构,查看数据集数据是否乱,如何进行清晰的处理,对数据集的情况有所了解,数据集每行记录所代表的含义,如:出租车的载客记录,以及表达实体对象的最核心字段;第二步理解需求与结果集,理解需求与调研需求、查阅步骤包括编写代码、完成测试都是必要的,明确需求,与前面的数据集做对照,查看数据集中是否包含必备完成需求的字段,根据需求,明确结果集的内容,理解产生的结果集,data转化成result的过程,即数据转为结果的过程,在数据与结果的基础上继续进行;第三步反推每一个步骤,通过结果集反推数据集中间的过程,通过结果看如何达到结果

(1)理解数据集

首先要理解数据集,要回答自己一些问题

这个数据集是否以行作为单位,是否是 DataFrame 可以处理的,大部分情况下都是。

这个数据集每行记录所代表的实体对象是什么,例如:出租车的载客记录

表达这个实体对象的最核心字段是什么,例如:上下车地点和时间,唯一标识一辆车的  License

(2)理解需求和结果集

小学的时候,有一次考试考的比较差,老师在帮我分析的时候,告诉我,你下次要读懂题意,再去大题,这样不会浪费时间,于是这个信念贯穿了我这些年的工作.

按照我对开发工作的理解,在一开始的阶段进行一个大概的思考和面向对象的设计,并不会浪费时间,即使这些设计可能会占

用一些时间.

对代码的追求也不会浪费时间,把代码写好,会减少阅读成本,沟通成本.

对测试的追求也不会浪费时间,因为在进行回归测试的时候,可以尽可能的减少修改对已有代码的冲击.

所以第一点,理解需求再动手,绝对不会浪费时间.第二点,在数据分析的任务中,如何无法理解需求,可能根本无从动手.

我们的需求是:出租车在某个地点的平均等待客人时间

简单来说,结果集中应该有的列:地点,平均等待时间

(3)反推每一个步骤

结果集中,应该有的字段有两个,一个是地点,一个是等待时间

地点如何获知?-其实就是乘客的下车点,但是是一个坐标,如何得到其在哪个区?等待时间如何获知?其实就是上一个乘客下车,到下一个乘客上车之间的时间,通过这两个时间的差值便可获知

2.步骤分析

查看数据,打开文件夹,简版数据

image.png

image.png

观察数据集 Hack_licence 执照号,pickup_datatime 上车时间,dropoff_datatime 下车时间,pickup_longitude 上车的经度,pickup_latitude 上车的纬度,dropoff_longitude 下车的经度,dropoff_latitude 下车的纬度

每一行数据:

表示一个出租车在何时何地接了一个乘客,乘客何时上车何时下车,上车下车的位置

(1)读取数据集

数据集很大,所以我截取了一小部分,大概百分之一左右,如果大家感兴趣的话,可以将完整数据集放在集群中,使用集群来计算""大数据"

(2)清洗

数据集当中的某些列名可能使用起来不方便,或者数据集当中某些列的值类型可能不对,或者数据集中有可能存在缺失值,这些都是要清洗的动机,和理由

(3)增加区域列

由于最终要统计的结果是按照区域作为单位,而不是一个具体的目的地点,所以要在数据集中增加列中放置区域信息

既然是放置行政区名字,应该现有行政区以及其边界的信息.

通过上下车的坐标点,可以判断是否存在于某个行政区中这些判断坐标点是否属于某个区域,这些信息,就是专业的领域了

(4)按照区域,统计司机两次营运记录之间的时间差

数据集中存在很多出租车师傅的数据,所以如何将某个师傅的记录发往一个分区,在这个分区上完成会话分析呢?这也是一个需要理解的点

结果集:area 行政区的信息、avgtime 平均等客时间

读取数据集,对杂乱的数据进行清洗,增加区域列,最终需求是出租车在某个区的等客时间,行政区的列对应的是下车点所在的行政信息,按照行政区域司机两次营运记录之间的时间差

等客时间是上一个乘客下车的时间的到下一个乘客上车的时间的统计即下一个上车-上一个下车,同一个出租车的上一条数据和下一条数据,需要了解会话。

相关文章
|
8月前
|
人工智能 缓存 Cloud Native
解锁 DeepSeek 安全接入、稳定运行新路径
聚焦于企业部署 DeepSeek 的应用需求,本文介绍了模型权重下载及多种部署方案,还阐述了大模型应用落地的常见需求,帮助用户逐步提升模型应用效果。
1086 252
|
11月前
|
机器学习/深度学习 数据采集 存储
使用Python实现智能农业灌溉系统的深度学习模型
使用Python实现智能农业灌溉系统的深度学习模型
754 6
|
监控 物联网 调度
海洋可再生能源:潮汐与波浪发电技术
【10月更文挑战第1天】在能源需求增长与化石燃料枯竭的背景下,海洋可再生能源变得尤为重要。本文探讨了潮汐与波浪发电技术的原理、现状及未来。潮汐发电利用水位周期性变化,分为潮汐流与潮汐堰发电;波浪发电则利用波浪运动,包括浮筒型、摆动装置和悬挂式装置等形式。当前,这些技术虽处于商业化初期,但在法国、中国等地已有显著进展。未来,技术创新与升级、规模化应用及多元化发展将推动潮汐与波浪发电成为重要的清洁能源来源。
|
运维 Kubernetes Linux
docker和kubectl客户端安装Linux
通过上述步骤,您应该已经在Linux环境中成功安装了Docker和kubectl客户端。安装完成后,您可以开始使用Docker来创建和管理容器,使用kubectl来管理Kubernetes集群。这些工具的安装和使用,对于现代云原生应用的开发和运维来说,是一个基础且关键的步骤。
202 0
|
机器学习/深度学习 自然语言处理 数据挖掘
RouteLLM:高效LLM路由框架,可以动态选择优化成本与响应质量的平衡
新框架提出智能路由选择在强弱语言模型间,利用用户偏好的学习来预测强模型胜率,基于成本阈值做决策。在大规模LLMs部署中,该方法显著降低成本而不牺牲响应质量。研究显示,经过矩阵分解和BERT等技术训练的路由器在多个基准上提升性能,降低强模型调用,提高APGR。通过数据增强,如MMLU和GPT-4评审数据,路由器在GSM8K、MMLU等测试中展现出色的性能提升和成本效率。未来将测试更多模型组合以验证迁移学习能力。该框架为LLMs部署提供了成本-性能优化的解决方案。
608 2
|
人工智能 Python
huggingface_hub加速
huggingface_hub加速
611 0
【随想】每日两题Day.6
【随想】每日两题
60 0
|
Web App开发 JavaScript 开发者
Vue工具和生态系统:什么是Vue DevTools?如何使用它?
Vue工具和生态系统:什么是Vue DevTools?如何使用它?
302 0
|
Web App开发 机器学习/深度学习 边缘计算
Who is Mavenir?
Who is Mavenir?
625 0
Who is Mavenir?
|
Kubernetes Ubuntu 应用服务中间件
kubeadm基于docker安装高可用1.26.3版本k8s集群
kubeadm基于docker安装高可用1.26.3版本k8s集群
1198 2