数据科学团队的角色分工

描述数据科学团队中角色分工常用下列维度。进一步以数据可视化直观表达的能力雷达图:

ML Ops - 机器学习运维

Data Pipelines - 数据流水线

Database - 数据库

Data Viz - 数据可视化

Storytelling - 数据讲故事

Business Insights - 业务洞察

Reporting - 报告

Experimentation - 实验

Stats - 统计

ML Modeling - 机器学习建模

Deployment - 部署

编码实现 Radar Chat

# DS岗位的能力雷达图谱

import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')

rules = ['Data Engineer','ML Engineer','Data Scientists','Data Analysts']

# 添加极坐标网格和标签
# 极轴彼此间隔 360/11 度,角度作为标签提供
# 使用set_thetagrids功能自定义角度和标签的间距。

subjects = ['ML Ops','Data Pipelines','Database','Data Viz','Storytelling','Business Insights','Reporting','Experimentation','Stats','ML Modeling','Deploiomont']

DataEngieer = [80,100,100,20,30,30,44,30,30,30,35]
MLEngineer = [100,60,60,25,30,30,40,80,80,90,100]

# 将角度分成等分,按角度值对应数据值
angles = np.linspace(0,2*np.pi,len(subjects), endpoint=False)
print(angles)

[0.         0.57119866 1.14239733 1.71359599 2.28479466 2.85599332  3.42719199 3.99839065 4.56958931 5.14078798 5.71198664]

补齐完整的圆形

np.concatenate()函数可以用来拼接数组。

subjects.append(subjects[0])
DataEngieer.append(DataEngieer[0])
MLEngineer.append(MLEngineer[0])

Specifically, np.concatenate((angles, [angles[0]]))

这段代码的作用是:

  1. angles数组包含了雷达图每个轴的角度值(比如[0, 60, 120, 180..])
  2. [angles[0]]创建一个只有一个元素的数组,元素值是angles数组的第一个值,也就是0度。
  3. 将angles数组和这个只有一个元素的数组拼接起来,组成一个新的数组。
  4. 这样新的数组的效果是在angles数组的末尾再添加一次0度。
  5. 因为雷达图是个闭合图形,所以这个插在末尾的0度就是起到封闭图形的作用,使最后一个点和第一个点相连,实现闭合。

总结一下,这行代码的目的是向angles数组追加一个0度,以此来实现雷达图的封闭,使其成为一个闭合的多边形。这是绘制雷达图常用的一个技巧。

angles=np.concatenate((angles,[angles[0]]))
print(angles)
[0.         0.57119866 1.14239733 1.71359599 2.28479466 2.85599332
 3.42719199 3.99839065 4.56958931 5.14078798 5.71198664 0.        ]

测试效果图

ax=fig.add_subplot(polar=True) 这行代码的作用是:

  1. fig.add_subplot()函数可以在画布(Figure对象)上添加一个子图axes。
  2. polar=True参数指明添加的这个子图axes使用极坐标系。
  3. 不设置nrows和ncols参数时,默认在1行1列(只有一个子图)。
  4. 返回的ax对象即这个子图的坐标轴对象,后续可以在ax上作图。
  5. 一般绘图时使用直角坐标系(Cartesian coordinates),但在绘制雷达图时需要使用极坐标系(polar coordinates)。
  6. 通过fig.add_subplot(polar=True)可以直接创建一个极坐标的子图axes,而不需要再单独设置。
  7. 这样后面在ax上作图就可以自动使用极坐标模式了。

总结一下,这行代码实现了创建一个极坐标的子图来绘制雷达图,ax对象用于后续在极坐标子图上进行绘制

fig=plt.figure(figsize=(6,6))
ax=fig.add_subplot(polar=True)#
ax.plot(angles,DataEngieer)
plt.show()
数据科学团队的角色分工_第1张图片

添加标签 label

fig=plt.figure(figsize=(6,6))
ax=fig.add_subplot(polar=True)

#basic plot
ax.plot(angles,DataEngieer, 'o--', color='g', label='Data Engineer')

填充绘图区域

可以使用填充函数填充,提供角度和值作为参数。

可以使用颜色和 Alpha 参数设置颜色和不透明度。 在比较多个实体时,最好使用对比色和较低的 alpha 值。

#fill plot
ax.fill(angles, DataEngieer, alpha=0.25, color='g')

#Add labels
ax.set_thetagrids(angles * 180/np.pi, subjects)
plt.grid(True)
plt.tight_layout()
plt.legend()
plt.show()
数据科学团队的角色分工_第2张图片

ax.set_thetagrids(angles * 180/np.pi, subjects)

这行代码的作用是设置极坐标子图ax上的角度刻度和标签。 具体解释:

  1. angles数组包含了每个数据点所在的角度值。
  2. 但是matplotlib的极坐标角度单位默认是弧度值(radians)。
  3. 为了让角度以更易读的度数(degrees)显示,需要将弧度转换为度数。
  4. angles * 180/np.pi就是将弧度转换为相应的度数。
  5. ax.set_thetagrids()函数用于设置极坐标图的径向网格,也就是角度刻度。
  6. 第一个参数就是角度值数组,第二个参数是对应的标签数组。
  7. 这样就可以在图上以度数显示角度刻度和标签文本了。
  8. subjects数组中包含了每个数据点对应的特征标签。

总结:这行代码的作用是设置雷达图的角度刻度显示为度数值,并对应设置了标签文本,以显示每个数据点对应的特征信息。

复用上述代码,只需用MLEngineer 替代DataEngineer 输出MLEngineer职位的能力雷达图谱:

数据科学团队的角色分工_第3张图片

数据科学团队的角色分工通常包括:

  1. 数据科学家(Data Scientist)
  • 使用统计、机器学习等方法对数据进行建模分析,提取价值和洞察
  • 对业务问题进行量化,构建和优化算法模型
  • 用技术手段解决实际业务问题
  1. 数据工程师(Data Engineer)
  • 构建数据处理流水线,对数据进行提取、清理、整合
  • 设计和维护大数据基础架构,如 Hadoop、Spark等
  • 将数据整合到分析平台,确保数据质量
  1. 业务分析师(Business Analyst)
  • 理解业务,定义业务问题,提出分析需求
  • 解释数据科学家的分析结果,制定业务策略
  • 将数据分析成果应用到业务决策中
  1. 数据库管理员/数据仓库工程师(DBA/DWE)
  • 设计数据库和数据仓库,处理大量结构化数据
  • 优化数据库查询,管理和维护数据库服务
  • ETL过程的数据转换和加载
  1. 项目管理者(Project Manager)
  • 制定项目计划,跟踪项目进度和资源
  • 连接技术团队和业务部门,协调沟通
  • 管理数据科学项目的时间表、预算、风险

本文由 mdnice 多平台发布

你可能感兴趣的:(后端)