原文:KDNuggets
数据科学家的认知偏见指南:免费电子书
原文:
www.kdnuggets.com/2023/05/data-scientist-guide-cognitive-biases-free-ebook.html

如果你有兴趣探讨认知偏见的主题,并深入了解这些偏见如何影响你的日常生活以及作为数据科学家的实践,那么免费的电子书《清晰思考:数据科学家理解认知偏见的指南](https://datasciencehorizons.com/thinking-clearly-data-scientist-guide-understanding-cognitive-biases/)可能是一个很好的资源。
我们的前三名课程推荐
1. 谷歌网络安全证书 - 快速开启网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT
数据科学地平线最新提供的这本电子书涵盖了多个著名的偏见,提供了它们如何干扰日常逻辑推理的概述,管理这些偏见和减轻其影响的方法,以及与数据科学实践相关的具体问题。
来源于数据科学地平线:
认知偏见是可以影响我们思维、决策和判断的心理捷径,常常导致错误或误解。作为数据科学家,我们也难以避免这些偏见,它们可能影响我们工作的质量和从数据中获得的见解。这本全面的电子书探讨了各种认知偏见,并提供了实用策略,帮助你识别和克服这些偏见对数据科学工作产生的影响。
这里仅是本书中涵盖的偏见的一个小预览:
了解确认偏见如何导致挑选数据并强化已有信念,发现抵消这种偏见的策略。
探索自利偏见及其对自我评估和人际互动的影响,并学习如何更平衡地理解你的经历和个人成长。
理解光环效应及其对感知和判断的后果,并发现减少其对评估影响的方法。
深入研究群体思维及其在决策和问题解决中的危险,揭示预防和应对其影响的策略。
揭示负面偏见及其对情感健康和决策的影响,并学习在数据科学工作中管理和克服这种偏见的技巧。
认知偏见无处不在。你有,我有,我们都有。减少这些偏见对我们逻辑思维干扰的关键在于能够识别它们,并制定策略来保持其影响。这个免费资源旨在帮助你做到这一点。
现在下载 清晰思考:数据科学家的认知偏见理解指南,你的事后偏见最终会告诉你这是绝对正确的决定 😃
马修·梅奥 (@mattmayo13) 是数据科学家和 KDnuggets 的主编,这是一份开创性的在线数据科学和机器学习资源。他的兴趣包括自然语言处理、算法设计与优化、无监督学习、神经网络以及机器学习的自动化方法。马修拥有计算机科学硕士学位和数据挖掘研究生文凭。你可以通过 editor1 at kdnuggets[dot]com 联系他。
更多相关内容
数据科学家的 Python 高效编码指南
原文:
www.kdnuggets.com/2021/08/data-scientist-guide-efficient-coding-python.html
评论
由Dr. Varshita Sher,数据科学家
在这篇文章中,我想分享一些我在过去一年中从配对编程中吸收的编写更清晰代码的技巧。一般来说,将它们作为我日常编码例程的一部分,帮助我生成了高质量的 Python 脚本,这些脚本随着时间的推移容易维护和扩展。
有没有想过为什么高级开发者的代码看起来比初级开发者的代码好得多?继续阅读,来弥合这个差距……
我将提供实际的编码场景来说明如何使用这些技巧,而不是给出通用的示例!这是一个Jupyter Colab Notebook,如果你想跟着一起操作!
1. 在处理for循环时使用tqdm。
想象一下遍历一个大型的可迭代对象(列表、字典、元组、集合),却不知道代码是否已经运行完成!真糟糕,对吧!在这种情况下,请确保使用tqdm构造来显示进度条。
例如,在我读取存在于 44 个不同目录中的所有文件时(这些路径已经存储在名为fpaths的列表中),以显示进度:
from tqdm import tqdmfiles = list()
fpaths = ["dir1/subdir1", "dir2/subdir3", ......]
for fpath in tqdm(fpaths, desc="Looping over fpaths")):
files.extend(os.listdir(fpath))

使用 tqdm 与 “for” 循环
注意:使用*desc*参数来为循环指定一个简短的描述。
2. 在编写函数时使用类型提示。
简单来说,就是在 Python 函数定义中明确声明所有参数的类型。
我希望有具体的用例来强调何时使用类型提示,但事实是,我经常使用它们。
这是一个假设的函数update_df()示例。它通过附加一行包含来自模拟运行的有用信息(例如使用的分类器、得分的准确率、训练-测试分割大小以及该特定运行的额外备注)的数据帧来更新给定的数据帧。
def update_df(**df: pd.DataFrame**,
**clf: str**,
**acc: float**,
**remarks: List[str] = []**
**split:float** = 0.5) -> **pd.DataFrame**:
new_row = {'Classifier':clf,
'Accuracy':acc,
'split_size':split,
'Remarks':remarks}
df = df.append(new_row, ignore_index=True)
return df

几点需要注意:
-
函数定义中的
->符号后面的数据类型(def update_df(.......) **->** pd.DataFrame)表示函数返回值的类型,即在这种情况下是 Pandas 的数据框。 -
如果有默认值,可以像往常一样以
param:type = value的形式指定。(例如:split: float = 0.5) -
如果一个函数没有返回任何内容,可以自由使用
None。例如:def func(a: str, b: int) -> None: print(a,b) -
要返回混合类型的值,例如,假设一个函数可以在标志
option设置时打印语句,或者在标志未设置时返回一个int:
from typing import Union
def dummy_args(*args: list[int], option = True) -> Union[None, int]:
if option:
print(args)
else:
return 10
注意:从 Python 3.10 开始,*Union** 不再是必需的,因此你可以直接这样做:*
def dummy_args(*args: list[int], option = True) -> None | int:
if option:
print(args)
else:
return 10
-
在定义参数类型时,你可以尽可能具体,就像我们对
remarks: List[str]所做的那样。我们不仅指定它应该是一个List,而且它应该仅仅是str类型的列表。为了好玩,尝试在调用函数时传递一个整数列表到
remarks。你会看到没有错误返回!为什么会这样? 因为 Python 解释器不会根据你的类型提示执行任何类型检查。
尽管如此,包含它仍然是一个好的实践!我觉得它在编写函数时能带来更多的清晰度。此外,当有人调用这样的函数时,他们会看到输入参数的清晰提示。

带类型提示的函数调用提示
3. 使用 args 和 kwargs 处理参数数量未知的函数。
想象一下:你想写一个函数,接收 一些 目录路径,并打印每个目录中的文件数量。问题是,我们不知道用户会输入 多少 个路径!可能是 2 个,也可能是 20 个!所以我们不确定应该在函数定义中定义多少个参数。显然,写一个像 def count_files(file1, file2, file3, …..file20) 这样的函数会很傻。在这种情况下,args 和(有时 kwargs)非常有用!
Args 用于指定未知数量的 位置 参数。
Kwargs 用于指定未知数量的 关键字 参数。
Args
这是一个函数 count_files_in_dir() 的示例,它接收 project_root_dir 和一个任意数量的文件夹路径(在函数定义中使用 *fpaths)。作为输出,它会打印每个这些文件夹中的文件数量。
def count_files_in_dir(project_root_dir, *fpaths: str):
for path in fpaths:
rel_path = os.path.join(project_root_dir, path)
print(path, ":", len(os.listdir(rel_path)))

计算 Google Colab 目录中的文件数量
在函数调用中,我们传入了 5 个参数。由于函数定义期望一个 必需 的位置参数,即 project_root_dir,它会自动知道 "../usr" 必须是这个参数。其余的参数(在这个例子中是四个)都被 *fpaths 吸收,用于计算文件数量。
注意:这种吸收技术的正确术语是“参数打包”,即剩余参数被打包成 **fpaths*。
Kwargs
让我们来看一下必须接收未知数量的 关键字 参数的函数。在这种情况下,我们必须使用 kwargs 而不是 args。以下是一个简短的(无用的)示例:
def print_results(**results):
for key, val in results.items():
print(key, val)

使用方式与*args非常相似,但现在我们能够将任意数量的关键字参数传递给函数。这些参数作为键值对存储在**results字典中。从这里开始,可以使用.items()轻松访问字典中的项。
我在工作中发现了kwargs的两个主要应用:
- 合并字典(有用但较少有趣)
dict1 = {'a':2 , 'b': 20}
dict2 = {'c':15 , 'd': 40}
merged_dict = {**dict1, **dict2}
*************************
{'a': 2, 'b': 20, 'c': 15, 'd': 40}
- 扩展现有方法(更有趣)
def myfunc(a, b, flag, **kwargs):
if flag:
a, b = do_some_computation(a,b)
actual_function(a,b, **kwargs)
注意:查看matplotlib 的绘图函数使用[*kwargs*](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib-pyplot-plot)* 来指定图表的可选修饰,如线宽和标签。*
这里有一个实际使用**kwargs扩展方法的案例,来自我最近的一个项目:
我们通常使用 Sklearn 的train_test_split()来拆分X和y。在处理其中一个 GAN 项目时,我需要将生成的合成图像拆分为与拆分真实图像及其相应标签所用的相同的训练测试集。此外,我还希望能够传递任何其他通常传递给train_test_split()的参数。最后,stratify必须始终传递,因为我在处理人脸识别问题(并希望所有标签都在训练集和测试集中存在)。
为此,我们创建了一个名为custom_train_test_split()的函数。我包含了一些打印语句来展示内部发生的情况(并省略了一些片段以简化说明)。
def custom_train_test_split(clf, y, *X, stratify, **split_args): *print("Classifier used: ", classifier)
print("Keys:", split_args.keys())
print("Values: ", split_args.values())
print(X)
print(y)
print("Length of passed keyword arguments: ", len(split_args))*
trainx,testx,*synthetic,trainy,testy = train_test_split(
*X,
y,
stratify=stratify,
**split_args
) *######### OMITTED CODE SNIPPET #############
# Train classifier on train and synthetic ims
# Calculate accuracy on testx, testy
############################################*
*print("trainx: ", trainx, "trainy: ",trainy, '\n', "testx: ",
testx, "testy:", testy)* *print("synthetic: ", *synthetic)*
注意:在调用此函数时,为了便于理解,我使用了虚拟数据替换了实际的图像向量和标签(见下图)。不过,代码同样适用于真实图像!

图 A 使用函数定义中的 kwargs 调用函数
注意事项:
-
在函数调用语句中使用的所有关键字参数(除了
stratify),将作为键值对存储在**split_args字典中。(要验证,请查看蓝色输出。)你可能会问为什么不使用
stratify?这是因为根据函数定义,它是一个必需的仅限关键字参数,而不是一个可选的参数。 -
所有非关键字(即位置)参数(如
"SVM"、labels等)在函数调用中会存储在函数定义中的前三个参数,即clf、y和*X(是的,传递的顺序很重要)。然而,在函数调用中我们有四个参数,即"SVM"、labels、ims和synthetic_ims。那第四个参数该存储在哪里?记住我们在函数定义中使用了
*X作为第三个参数,因此传递给函数的所有参数在前两个参数之后都被打包(浸泡)到*X中。(要验证,请检查绿色输出)。 -
当在我们的函数中调用
train_test_split()方法时,我们实际上是在使用*运算符解包X和split_args参数(*X和**split_args),以便将所有元素作为不同的参数传递。
也就是说,
train_test_split(*X, y, stratify = stratify, **split_args)
相当于写
train_test_split(ims, synthetic_ims, y, stratify = stratify, train_size = 0.6, random_state = 50)
- 当存储
train_test_split()方法的结果时,我们再次打包synthetic_train和synthetic_test集合到一个单独的*synthetic变量中。

要检查里面有什么,我们可以使用*运算符再次解包它(见粉色输出)。
注意:如果你想深入了解使用***运算符进行打包和解包,请查看这篇文章。
4. 使用预提交 hooks。
我们编写的代码通常很凌乱,缺乏适当的格式,比如尾随空格、尾随逗号、未排序的导入语句、缩进中的空格等。
虽然可以手动修复所有这些问题,但使用pre-commit hooks可以节省你大量的时间。简单来说,这些 hooks 可以通过一行命令进行自动格式化——pre-commit run。
这里有一些来自官方文档的简单步骤来开始并创建一个[.pre-commit-config.yaml](https://pre-commit.com/index.html#2-add-a-pre-commit-configuration)文件。它将包含你关心的所有格式化问题的hooks!
作为纯个人偏好,我倾向于保持我的.pre-commit-config.yaml配置文件简单,并使用Black 的预提交配置。
注意:需要记住的一点是,文件必须被暂存,即在执行*pre-commit run*之前使用*git add .*,否则你会看到所有文件都会被跳过:

5. 使用.yml 配置文件来存储常量。
如果你的项目包含大量配置变量,例如数据库主机名、密码、AWS 凭证等,请使用.yml文件来跟踪所有这些变量。你可以在任何 Jupyter Notebook 或你希望的脚本中使用这个文件。
由于我大部分工作是为客户提供模型框架,以便他们可以在自己的数据集上重新训练它,我通常使用配置文件来存储文件夹和文件的路径。这也是确保客户在运行你的脚本时只需更改一个文件的好方法。
让我们在项目目录中创建一个fpaths.yml文件。我们将存储需要存放图像的根目录。此外,还会存储文件名、标签、属性等的路径。最后,我们还存储合成图像的路径。
image_data_dir: path/to/img/dir *# the following paths are relative to images_data_dir*
fnames:
fnames_fname: fnames.txt
fnames_label: labels.txt
fnames_attr: attr.txt
synthetic:
edit_method: interface_edits
expression: smile.pkl
pose: pose.pkl
你可以像这样阅读这个文件:
# open the yml file
with open(CONFIG_FPATH) as f:
dictionary = yaml.safe_load(f)
# print elements in dictionary
for key, value in dictionary.items():
print(key + " : " + str(value))
print()
注意:如果你想深入了解,这里有一个精彩的 教程 来帮助你入门 yaml。
6. 奖励:有用的 VS-Code 扩展
虽然确实有很多不错的 Python 编辑器,但我必须说 VSCode 是我见过的最好的 (对不起,Pycharm)。为了更好地利用它,考虑从市场中安装这些扩展:
- 括号配对着色器——允许用颜色识别匹配的括号。

- 路径智能感知——允许自动补全文件名。

- Python Docstring 生成器——允许为 Python 函数生成 docstring。

使用 VSCode 扩展生成 docstring
技巧:使用*"""** 在你编写了函数并使用了类型提示之后生成 docstring。这样生成的 docstring 将包含更多信息,如默认值、参数类型等(见上图右侧)。*
- Python Indent——(我最喜欢的;由 Kevin Rose 发布) 允许对多行代码/括号进行正确的缩进。

来源:VSCode 扩展市场
- Python 类型提示——允许在编写函数时自动补全类型提示。

- TODO tree:(第二喜欢) 追踪在编写脚本时插入的所有
TODO。

追踪项目中插入的所有 TODO 注释
- Pylance——允许代码自动补全、参数建议(还有很多其他功能,能更快地编写代码)。
恭喜你离成为专业 Python 开发者更近了一步。我打算在学习到更多有趣的技巧时更新这篇文章。如有更简单的方法完成本文提到的某些任务,请随时告知我。
下次再见 😃
数据科学面试中逐步解释你的 ML 项目的指南。
面试官最喜欢的问题 - 你会如何“扩展你的 ML 模型”?
使用 Pandas 进行时间序列分析
Podurama: 播客播放器
阅读 Varshita Sher 博士的每一篇故事(以及 Medium 上其他成千上万的作者的故事)
简介:Varshita Sher 博士 是艾伦·图灵研究所的数据科学家,同时也是牛津大学和 SFU 校友。
原文. 已获得授权转载。
相关:
-
编写干净 R 代码的 5 个技巧
-
Python 数据结构比较
-
GitHub Copilot 开源替代品
我们的三大课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织的 IT 工作
更多相关话题
数据科学家 Docker 入门指南
原文:
www.kdnuggets.com/2018/08/data-scientist-guide-getting-started-docker.html
评论

介绍
Docker 是一个日益流行的工具,旨在简化在容器中创建、部署和运行应用程序的过程。容器非常有用,因为它们允许开发人员将应用程序及其所需的所有组件(如库和其他依赖项)打包在一起,并作为一个整体进行分发。虽然软件工程师经常使用 Docker,但数据科学家如何开始使用这个强大的工具呢?在我们进入入门指南之前,让我们先讨论一些你可能想要在数据科学中使用 Docker 的原因。
为什么选择 Docker?
可重复性
我们的前三个课程推荐
1. Google Cybersecurity Certificate - 快速进入网络安全职业道路
2. Google Data Analytics Professional Certificate - 提升你的数据分析技能
3. Google IT Support Professional Certificate - 支持你的组织的 IT 需求
Docker 最大的吸引力之一是其可重复性。除了共享 Docker 镜像本身,你理论上还可以共享一个 Python 脚本,将结果嵌入 Docker 中。然后,某位同事可以运行这个脚本,亲自查看 Docker 镜像中的内容。
时间
你可以节省大量时间,因为你不必安装单独的包,因为它们都包含在 Docker 镜像中。此外,Docker 容器启动时间约为 50 毫秒,比运行传统虚拟机要快得多。
灵活性
这是一个非常灵活的工具,因为你可以快速运行 Docker 库中创建的任何软件。
构建环境
Docker 对于在将构建环境托管到实际服务器之前进行测试非常有用。你可以将 Docker 容器配置成与服务器的环境相同,从而简化测试过程。
分发
数据科学家可能会花费数小时来准备机器以适应特定的框架。例如,设置一个 Caffe 环境有 30 多种独特的方法。Docker 提供了一个一致的平台来共享这些工具,从而减少了寻找特定操作系统安装程序和库的时间浪费。
可访问性
Docker 生态系统——docker compose 和 docker machine——使其对任何人都容易访问。这意味着公司中不熟悉内部代码的成员仍然可以运行它。非常适合销售团队成员或高层管理人员展示你正在构建的新数据科学应用!
入门指南
希望我们已经向你展示了使用 Docker 的好处,现在是时候开始了。首先,你需要前往 Docker 网站安装软件的一个版本。
为了确保它已正确安装,打开命令行并输入 docker version。这应该显示如下内容:

现在我们已经安装了 Docker,让我们研究一个相对简单、常见的示例:
docker run -p 8000:8000 jupyter/notebook
对于刚接触 Docker 的人来说,这看起来可能有点吓人,所以让我们来拆解一下:
docker run——这个命令找到镜像(在这个示例中是 jupyter notebook),加载一个容器,然后在该容器中运行一个命令。
-p 8000:8000——‘p’关键字代表端口,因此这部分命令是打开主机和容器之间的端口,格式为 -p <host_port>:<container_port>。
jupyter/notebook——要加载的镜像。除了 Jupyter notebook,你还可以浏览官方的Docker 库,查找数千种最受欢迎的软件工具。
一旦你运行了这个命令并导航到 localhost:8000/,你应该会看到以下内容:

非常简单,对吧?考虑到你通常需要下载 Python、运行时库和 Jupyter 包,通过 Docker 运行这些是极其高效的。
好了,现在已经启动运行了,让我们深入了解如何在主机和容器之间共享 Jupyter 笔记本。首先,我们需要在主机上创建一个目录来存储笔记本,我们称之为 /jupyter-notebooks。运行 Docker 命令时共享目录与端口的工作方式类似,我们需要添加以下内容:
-v ~/jupyter-notebooks:/home/joyvan jupyter/notebook
所以,我们在这里做的是将 <host_directory>:<container_directory> 进行映射(例如,将主机上的 ~/jupyter-notebooks 映射到容器上的 /home/joyvan)。这个容器目录来自 Jupyter Docker 文档,是此类镜像指定的工作目录。
将其与之前运行的命令结合起来,完整的命令应该是这样的:
docker run -p 8000 :8000 -v ~/jupyter-notebooks:/home/joyvan jupyter/notebook
现在简单地启动本地主机服务器,创建一个新的笔记本,并将其从“未命名”重命名为“示例笔记本”。最后,检查你本地机器上的 ~/jupyter-notebooks 目录,你应该会看到:Example Notebook.ipynb。瞧!

Dockerfile
Dockerfile 是一个文本文件,其中包含用于自动创建 Docker 镜像的命令。这是一种有效的方式来保存 Docker 命令并通过 Docker build /path/to/dockerfile 命令按顺序执行它们。
我们的 Jupyter notebook 示例的 Dockerfile 如下所示:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3 \ python3-pip
RUN pip3 install jupyter
WORKDIR /home/jupyter
COPY /src/jupyter ./
EXPOSE 8000
ENTRYPOINT ["jupyter", "notebook", "--ip=*"]
现在,让我们讨论每一部分:
FROM ubuntu:latest
这告诉 Docker 新镜像的基础应该是什么,在这个例子中是 ubuntu。:latest 只是抓取最新版本。如果你想测试旧版本,可以输入版本号。
RUN apt-get update && apt-get install -y python3 \ python3-pip
这一行确保系统是最新的,然后安装 python3 和 pip3。
RUN pip3 install jupyter
这会安装 Jupyter。
WORKDIR /home/jupyter
COPY /src/jupyter ./
设置 Docker 镜像容器的工作目录,然后从本地主机复制所需的文件。
EXPOSE 8000
类似于之前的 -p,这会暴露 8000 端口。
ENTRYPOINT [“jupyter”, “notebook”, “–ip=*”]
启动 Jupyter notebook。
Dockerfile 非常有用,因为它们允许其他团队成员轻松运行 Docker 容器。
结论
正如你所看到的,我们成功地让 Docker 在数据科学中快速运行了一个工作用例。我们只是触及了你可以做的事情的表面,但得益于 Docker 的出色库,可能性是无穷的!掌握 Docker 不仅可以帮助你进行本地开发,还能在与数据科学团队合作时节省大量时间、金钱和精力。请继续关注 KDnuggets,我们很快将发布一篇 Docker 备忘单文章。
相关:
更多相关话题
数据科学家职位薪资分析
原文:
www.kdnuggets.com/2023/04/data-scientist-job-salaries-analysis.html

图片来源:Tima Miroshnichenko
数据科学和机器学习在运动、艺术、空间、医学、医疗保健等多个领域越来越受到关注。了解这些数据科学家在全球不同地区的薪资和就业现状将会很有启发性。
我们的前三课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业的快车道。
2. 谷歌数据分析专业证书 - 提升您的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT 工作
数据集下载自 Kaggle(链接见下方),我们将对数据进行探索性分析和可视化。www.kaggle.com/datasets/ruchi798/data-science-job-salaries
数据集根据经验水平分为以下几类:
-
EN: 入门级
-
MI: 中级
-
SE: 高级
-
EX: 高级管理层
数据集根据就业类型分为以下几类:
-
FT: 全职
-
PT: 兼职
-
CT: 合同制
-
FL: 自由职业者
数据集根据公司规模分为以下几类:
-
S: 小型
-
M: 中级
-
L: 大型
探索性分析与可视化
在本节中,我们将对给定的数据集进行探索性数据分析和可视化。以下项目在议程上:
-
经验水平的分布
-
工作类型的分布
-
基于经验水平的数据科学职位薪资比较
-
基于就业类型的数据科学职位薪资比较
-
基于经验水平和公司规模的薪资比较
-
比较全球数据科学家的薪资
-
平均薪资与货币的关系
-
平均薪资与地点的关系
-
前 10 名数据科学职位
-
远程工作状态与时间的关系
数据集中,14.5%的成员为应届生,而大部分名额由高级工程师填补,占 46.1%。
在 2020 至 2022 年期间,62.8%的成员因 Covid-19 危机转为居家工作模式。稍后,我们将看到这一趋势回归正常。
自然可以看出,经验越丰富,薪资也越高。然而,在最高的执行级别,薪资的变动幅度明显大于其他级别。
看起来合同制工作在所有类型的工作中收入最高,尽管其薪资变动幅度也很大。一个有趣的观察是,自由职业者的收入高于兼职工作者,但其薪资变动几乎是成比例的。
在之前的‘经验水平’与‘薪资’图表中添加‘公司规模’这一维度可以揭示更多信息。高级职位的薪资平均与执行级别薪资相符。此外,小公司的高级职位薪资平均几乎与相应公司规模的执行级别薪资一致。
通过对薪资列求和,我们得到的数据非常偏向于美国。这可能是因为许多数据科学职位都在美国创建,数据主要在美国收集,或者数据收集表单可能是英文的,并且该表单可能在非英语国家流传。然而,为了线性化数据,我们将对薪资列进行 log10 转换,并使用这些缩放值来绘制地图的颜色。
薪资总和可能不是一个正确的比较指标,因为某些国家的条目可能比其他国家更多。因此我们绘制了保持 log10 缩放的平均薪资图。这能更好地反映全球薪资情况。
可以观察到大多数数据科学职位在美国,并且美国的薪资也最高。加拿大(CA)、日本(JP)、德国(DE)、英国(GB)、西班牙(ES)、法国(FR)、希腊(GR)和印度(IN)在职位薪资和数量方面依次排名(日本除外)。
将平均薪资作为货币的函数进行分析显示,薪资最高的是以美元支付,其次是瑞士法郎和新加坡元。这个图表受到特定货币价值的严重影响,因为图表左侧的大多数货币相对于美元具有较高的价值。
公司的位置在确定平均薪资方面也起着至关重要的作用。根据平均薪资绘制了前 10 个国家。
可以观察到数据科学家是最常见的职位,其次是数据工程师和数据分析师。
由于 Covid-19 危机,大多数工作转向了在家办公模式,但随着疫苗的推出,一切开始恢复正常。
推论与结论
对给定的数据科学职位薪资数据集进行了详细的数据分析。可以得出以下结论:
-
数据科学是几乎所有行业中最受欢迎和新兴的领域之一,如医疗保健、体育、艺术等。
-
探索了全球数据科学家的平均薪资变动情况。
-
薪资在不同雇佣类型(如合同制、全职等)之间的变化非常关键。
-
随着经验的增长,薪资的变化呈上升曲线。
-
由于新冠疫情危机,工作环境从在家工作转回到正常状态。
参考文献与未来工作
所有有用的链接如下:
Nikhil Purao 目前在印度理工学院古瓦哈提分校攻读技术硕士学位,专注于数据与决策科学。作为一名人工智能爱好者,他热衷于利用先进的分析技术和人工智能推动业务增长和改善结果。通过学习,他对该领域最新的工具和技术有了深入了解,并致力于保持在这一激动人心的学科前沿。无论是从复杂数据集中挖掘关键见解,还是开发前沿解决方案,他总是渴望迎接新挑战并与他人合作以取得成功。
原文。经许可转载。
更多相关话题
数据科学家是适合你的职业道路吗?坦诚的建议
原文:
www.kdnuggets.com/2014/03/data-scientist-right-career-path-candid-advice.html
评论
如今,数据科学家(或相关角色如数据经理、统计学家、数据分析师等)无疑是最受追捧的职业之一。为了应对这一跨行业趋势,一些顶尖大学已经启动了专门的数据科学项目。
被巨大的机会、优厚的薪酬和对商业领袖的曝光所吸引,许多人在没有彻底评估该角色的日常职责、所需态度以及技术与商业技能平衡的情况下,转向数据科学家的职业道路。
为了向数据科学 aspirant 提供一个清晰的、现实的数据科学家角色图景,帮助他们与自身性格和职业抱负进行评估,我最近与**Paco Nathan**,一位拥有 25 年以上行业经验的数据科学专家进行了讨论。他坦率、详细的回答很可能会让许多人大开眼界。
Paco Nathan 的简短个人介绍见帖子末尾。
Anmol Rajpurohit:数据科学家被称为 21 世纪最性感的职业。你同意吗?你会给那些考虑从事长期数据科学职业的人什么建议?
Paco Nathan: 我不同意。很少有人具备执行这个角色所需的广泛技能,也没有足够的耐心去获得这些技能,更没有去达到这一点的愿望。
作为自测:
-
准备对一个未知数据集进行分析和可视化,同时不耐烦的利益相关者在你肩膀上盯着,并提出尖锐的问题;要准备好对结果的置信度做出定量论证 -
用 25 个字以内描述“损失函数”和“正则化项”,比较/对比几个示例,并展示如何为模型透明性、预测能力和资源需求结构化各种权衡
-
向执行团队提出重组建议,这可能意味着解雇一些排名靠前的人
-
采访 3 到 4 个对你的项目持敌对态度的不同部门,以获取他们不愿释放的数据集的元数据
-
在一个超过 1000 节点的集群中,构建、测试并部署一个关键任务应用程序,实时服务水平协议(SLA)高效完成
-
在没有对方帮助的情况下,调试别人编写的至少 2000 行长的间歇性 bug
-
利用集成方法来增强你正在开发的预测模型
-
在与来自 3-4 个完全与您之前工作无关的领域的人进行配对编程时,要在截止日期前完成工作
如果现在对以上列出的每一项都感到完全不舒适,那么我的建议是避免将“数据科学”作为职业。
数据科学家这个词在 2012 年左右作为一种新角色显得“性感”,如 DJ Patil、Hilary Mason 等所提。然而,并不是每个人都能获得 4 亿美元 IPO 的一部分!(完全公开:我在其 IPO 之前被邀请加入 LinkedIn 三次,但固执地追求其他机会;那里的团队真是优秀!)
大约在 2012 年:那是当时,现在是现在。实际的数据科学工作包括:
-
一些从“绿地”状态创新的机会,但并不多
-
大多是被召入一个现有的项目——这个项目以某种方式处于风险中
-
向权力说出真相(这并不有趣,但这是角色的本质)
重申 DJ 和其他人之前清楚表述的观点:大多数与数据相关的问题是社会/组织性的(例如,数据孤岛、缺乏元数据、矩阵组织内斗等),否则关键洞察力可能已经在那个组织内显现。
我有一种预感,大部分有趣的电子商务工作已经完成——大玩家将继续获得丰厚收入,但现在的工作大多在硅谷之外。或者说,其他行业来到这里学习、合作、购买等。
例如,孟山都在旧金山推出了一家私人股本公司,实际上可以比几乎任何风险投资公司以更优惠的条件投资农业数据项目。与此同时,该地区的风险投资公司几乎忽视了在重要领域的与数据相关的项目——Khosla 除外。在过去几个月里,他们收购了硅谷内的业务单位:Climate Corp、Solum 等,顺便说一下,这些都是由 Khosla 资助的。预计这种趋势会继续。
从我的角度看,现在数据领域的大问题不在于广告技术,而是现实问题:粮食供应、干旱/洪水、能源安全、医疗保健、电信、除石油依赖之外的交通运输、更智能的制造、森林砍伐监测、海洋学分析等。
此外,IT 预算在数据洞察方面仍然存在巨大缺陷。太多预算投入到“数据工程”的神职中,且预算往往用于已经清理过的数据。我发现,硅谷的“产品管理”概念几乎与数据的有效使用相对立:在许多情况下,产品经理的激励措施可能会阻碍公司内部数据的使用。
因此,我们的价值通常会体现在:
-
编写代码以准备数据
-
自动化流程以改进特征工程和模型比赛
-
向权力说出真相
第一个讲述了 IT 预算被错误分配的问题,第二个讲述了产品管理几乎系统性地敌视有效使用数据。第三个讲述了作为数据科学家的几项重要贡献,包括向高管提供确凿证据以解雇其他高管并使公司回到正轨。再次强调,行业干扰具有影响。
对于刚刚起步的人来说,要非常小心选择工作地点。如果一家公司声称有“优秀的工程技术”但数据使用情况不足(大约 2014 年),那么他们不是工作台上最锋利的工具;选择其他公司开始吧。寻找导师。加入那些得到金融或运营部门强力支持的团队(这些部门通常理解数据和变异),而尽量避免那些得到工程或营销部门支持的团队(这些部门通常不理解数据的有效使用)。
推荐,不一定按顺序。
-
学会利用不断发展的 Py 数据栈:IPython、Pandas、scikit-learn 等。
-
学会领导跨学科团队。
-
获得 1 个以上数据/分析/编程领域之外的经验。
-
扎实掌握设计基础并将其应用于数据可视化。
-
尽一切可能成为更好的写作者和演讲者(除学术会议外)。
-
参与会议;发布博客、演讲等(招聘经理忽略简历,寻找在线发布的内容)。
-
扎实掌握抽象代数、贝叶斯统计、线性代数、凸优化。
-
研究流数据的算法和框架(未来的大用例不是批处理)。
-
学习 Scalding 和具有类型安全性的函数式编程。
-
避免商业智能(像避瘟疫一样)。
-
避免任何被称为“ Hadoop 生态系统”或“ Hadoop 作为操作系统”的内容。
Paco Nathan 是大数据领域的“玩家/教练”,在大型应用程序的创新数据团队中领导了 10 多年。作为分布式系统、机器学习和企业数据工作流程的专家,Paco 是 O’Reilly 的作者,并且是包括 The Data Guild、Mesosphere、Marinexplore、Agromeda 和 TagThisCar 在内的几家公司顾问。Paco 从斯坦福大学获得了数学科学学士学位和计算机科学硕士学位,拥有超过 25 年的技术行业经验,涵盖了从贝尔实验室到早期初创公司的经历。
更多相关内容。
如何成为没有 STEM 学位的数据科学家
原文:
www.kdnuggets.com/2021/09/data-scientist-without-stem-degree.html
评论

1. 学习数据科学所有支柱的基础
“数据科学”是一个模糊的术语——它对不同公司可能意味着不同的东西,而且有许多与数据科学家相关的技能。
也就是说,我推荐你学习一些核心技能。以下技能对任何数据科学家都至关重要:SQL、Python、统计学、机器学习。我也建议你按此顺序学习这些技能。虽然听起来很多,但这与大学时你每学期需要完成 4-6 门课程并无不同!
让我们深入探讨每个技能。
A) SQL
SQL 是数据的语言,无疑是任何数据科学家最重要的技能。SQL 用于操作数据、分析数据、构建仪表板、构建数据管道、编写查询以供模型使用等等。
B) Python 和 Pandas
Python(或任何脚本语言)作为基础,能够进行诸如构建 ML 模型、网络数据抓取、构建自动化脚本等多种操作。
Pandas 是一个用于数据操作和分析的 Python 库。我个人在 Jupyter notebook 中探索数据时更倾向于使用 Pandas 而不是 SQL。
以下是我学习 Python 和 Pandas 时用到的最有用的资源:
C) 统计学
数据科学/机器学习本质上是统计学的现代版本。首先学习统计学,你会在学习机器学习概念和算法时轻松得多!尽管最初几周可能看起来没有实际收获,但后续的收益将会很值得。
以下是我学习统计学时用到的最有用的资源:
D) 机器学习
机器学习不仅有趣和激动人心,而且是所有数据科学家必须具备的技能。虽然建模占数据科学家时间的一小部分,但它的重要性不容忽视。
以下是我学习机器学习时用到的最有用的资源:
2. 完成 1-3 个个人数据科学项目
一旦你打下了基础,加速学习的最佳方式就是完成一些数据科学项目。最简单的方法是去Kaggle,选择一个数据集,创建一个预测模型或一些数据可视化。记住,你的前几个项目不会很出色!但重要的是你随着时间的推移如何进步。
这里有一些我过去完成的数据科学项目,你可以用来获得灵感!
当你继续学习和实践数据科学技能时,还有其他方法可以让自己成为更有价值的数据科学候选人,这也是我接下来要分享的建议。
3. 探索非传统的经验机会
成为数据科学家最困难的部分是如何在没有经验的情况下获得第一个机会。然而,以下是一些即使没有经验也可以获得经验的方法:
非营利机会
最近,我看到了一篇由苏珊·柯里·西维克(Susan Currie Sivek)撰写的资源丰富的文章, 提供了几个组织,你可以在这些组织中找到从事真实数据科学项目的机会。
如果你正在寻找更多的经验来丰富你的简历,我强烈推荐你查看这些。
参加比赛
在我看来,没有比通过比赛展示你已经准备好从事数据科学工作更好的方式了。Kaggle 举办了各种比赛,涉及构建模型以优化某些指标。
你现在可以尝试的两个比赛是:
在 Medium 上开设博客
是的,我有些偏颇,但请听我说。你会惊讶于 Medium 上有多少数据相关的专业人士。他们喜欢看到信息丰富、有见地和有趣的内容。利用 Medium 来撰写你的学习心得,解释复杂的话题,或者展示你的数据科学项目吧!
我特别建议你为出版物 Towards Data Science 撰写文章,因为他们目前拥有近 500,000 名关注者。
如果你需要一些灵感,可以查看我的项目演示,葡萄酒质量预测。
4. 寻找类似于数据科学家职位的工作
我知道我将面临艰难的挑战,尤其是没有作为数据科学家的经验。然而,寻找类似于数据科学家职位的工作将显著增加你成为数据科学家的机会。原因在于相关工作将给你在商业环境中处理实际数据的机会。
你不需要是数据科学家才能从事‘数据科学’工作
这里有一些你可以寻找的数据科学相关职位:
-
商业智能分析师
-
数据分析师
-
产品分析师
-
增长营销分析师 / 营销分析
-
定量分析师
除了上述两点,还有一个提示显著提高了我作为数据科学家的声誉。
5. 考虑获得定量领域的硕士学位
大多数数据科学职位列表要求硕士学位,因为通常需要高水平的技术技能。如果你发现上述两个建议没有成功,我建议你考虑定量领域(计算机科学、统计学、数学、分析等)的硕士项目。
就个人而言,我选择了乔治亚理工学院的分析学硕士项目,原因有很多:
-
它不需要定量领域的学士学位。
-
如果你想同时工作和学习,它有一个在线项目。
-
整个项目只需$10K 美元。
尽管如此,市场上有几个选项,我强烈建议你在做出决定之前花时间探索所有选项!
相关:
更多相关话题
数据科学家在欧洲做什么,他们的价值多少?
原文:
www.kdnuggets.com/2020/01/data-scientist-worth-europe.html
评论
在 12 月,我们分享了一些关于数据科学家价值的见解,数据主要集中在美国,同时也有一些额外的地理数据。随着Big Cloud 年度调查报告的发布,我们现在有了一些高质量的数据和可视化,帮助我们更好地了解全球数据科学家的价值。
这次我们将关注欧洲,特别是数据科学专业人士报告使用的技能、这些专业人士的薪资以及报告中的有趣见解。
我们的前三名课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业的快车道
2. 谷歌数据分析专业证书 - 提升您的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT
来自 Big Cloud 的报告:
自 2016 年以来,Big Cloud 致力于每年制作一些最大和最好的数据科学薪资报告。在超过 1300 个回应和 33 个问题后,我们自豪地宣布这是迄今为止我们为欧洲策划的最丰富的数据调查!
本报告将深入探讨 2019/2020 年度来自各背景、年龄和地点的欧洲地区专业人士提供的见解。今年贡献最多的来自德国、法国、英国、荷兰和瑞士。由于这些国家的数据点最多,因此这些国家是我们本报告的主要关注点。
更具体地说,大多数受访者来自以下城市:
-
巴黎
-
柏林
-
慕尼黑
-
伦敦
-
阿姆斯特丹
-
汉堡
-
苏黎世
-
剑桥
-
法兰克福
-
马德里
谁是受访者?
今年参与我们调查的最大群体是 24%的男性数据科学家,年龄在 25-34 岁之间。与去年相比,角色的变化似乎更大,数据科学家的数量减少了 15%,数据工程师的数量增加了 6%,C 级参与者的数量增加了 3%。
男性与女性参与者的比例保持不变。
超过一半的调查参与者拥有硕士学位,其次是博士学位(+4%)和学士学位(+2%)逐年稳步增加。然而,选择继续深造的人数持续下降,今年仅占 3%(2018 年为 3.45%)。
受访者的工作年限和在当前公司工作的年限如图 1 所示。

图 1:受访者的工作年限和在当前公司工作的年限。
调查受访者的主要行业是:
-
技术/信息技术
-
咨询
-
电子商务
-
金融科技
-
学术/教育
-
软件
-
医疗保健
-
保险
-
汽车
-
市场营销
请注意,本报告所依据的基础数据不可用。
现在我们对调查参与者有了一定了解,让我们来看看报告,从技能开始。
数据科学技能
调查研究的部分数据科学技能维度包括编程语言、编程能力和使用的方法。

图 2:最常用的数据科学工具和最常用的数据科学方法。
在数据科学方法方面,从参与者中获得了以下信息:
[L]ogistic 回归、神经网络和随机森林是三种最受欢迎的选择,大约 56%的受访者表示使用它们。与数据科学家工具偏好相比,他们选择的数据科学方法种类更加多样。调查中的其他选项(未进入前七名)包括 34%的集成方法、31%的贝叶斯技术和 28%的支持向量机。
具体到编码方面,受访者的数据讲述了以下故事:
[A] 高达 70%的受访者表示他们使用 Python 作为主要建模编程语言。这比 2019 年的调查增加了 10%。9%使用 R,4%使用 SQL,4%使用 Java。此外,还有 3%的受访者表示他们不进行编码。
66%的受访者表示,他们的主要生产编程语言也是 Python。另有 9%表示 Java,还有 7%使用 Scala 或完全不进行编码。6%使用 C++

图 3:按职位类型划分的编程能力。
受访者花费多少时间进行编码?
29%的受访者每周花费 11-20 小时进行编码,这与我们 2019 年的调查结果相同。只有 14%的受访者表示他们每周花费 31 小时以上进行编码,而 7%的人完全不进行编码。总体而言,回应非常多样,这可能反映了参与者的资历差异。
受访者还指出,目前处理的最受欢迎的数据类型,按顺序排列如下:
-
关系数据
-
文本数据
-
图像数据
-
其他
-
视频数据
数据科学薪资
尽管调查包含了多个数据科学相关角色的薪资数据,但这很快就进入了比较苹果和橙子的领域。为了进行有意义的比较,我们将查看“数据科学家”和“高级数据科学家”的平均工资、中位工资、平均涨幅和平均奖金在 6 个国家(法国、德国、意大利、荷兰、瑞士、英国)的数据点(见图 4),这些国家在报告中被特别提及。

图 4:6 个调查参与者最多的国家的平均工资、中位工资、平均涨幅、平均奖金(标注了本地货币)。
让我们来绘制这些数据。图 5 可视化了上述图表中 6 个国家的平均工资,本地货币已转换为本文发布时的欧元价值。

图 5:6 个调查参与者最多的国家的数据科学家的平均工资(以欧元计)。
为了更全面地描绘欧洲数据科学家的价值,图 6 绘制了同 6 个国家的数据科学家和高级数据科学家的平均工资 + 奖金(以欧元计),并通过柱状颜色强度描绘了薪资涨幅百分比。

图 6:6 个调查参与者最多的国家的平均工资 + 奖金(以欧元计)和涨幅百分比。
在薪资满意度方面,结果并不令人震惊;然而,稍微多于一半的受访者似乎认为他们的薪资和福利套餐是令人满意的。
当被问到“在 1 到 10 的尺度上(10 为最容易),你认为找到新工作的难易程度如何?”时,调查参与者最常回答的是“3”。
结论
欧洲显然不是一个单一的整体,这在调查回应中很明显。各国之间的薪资差异确实存在,但这本身并没有讲述完整的故事,没有考虑生活成本差异。虽然这应该是显而易见的,并且超出了薪资调查的范围,但值得明确指出。
除了原始数据外,一个突出的事项是参与者认为替代的数据科学职位的可用性以及转移到这些职位的难易程度似乎相对较低。这是一种个人感知,但在决定是否寻找新角色时,感知和现实一样重要。
你可以 在这里阅读完整报告。
相关:
-
数据科学家值多少钱?
-
人工智能:薪资飞涨
-
数据科学家:为什么雇佣他们如此昂贵?
更多相关主题
数据科学家的价值是多少?
评论
2019 年在分析、数据科学和机器学习领域是充满事件的一年。新的趋势、新的工具、新的视角……我们最近整理了一组三篇文章,结合了几十位专家的见解,以描绘 2019 年的关键事件,并对 2020 年(以及可能的未来)进行预测。这些文章从研究、技术和行业的不同视角探讨了主题。如果感兴趣,你可以在这里找到:
-
AI、分析、机器学习、数据科学、深度学习研究 2019 年的主要进展及 2020 年的关键趋势
-
AI、分析、机器学习、数据科学、深度学习技术 2019 年的主要进展及 2020 年的关键趋势
-
行业 AI、分析、机器学习、数据科学对 2020 年的预测
在已经成为一种传统的做法中,KDnuggets 的朋友 Xavier Amatriain 再次撰写了他对 AI/ML 年度进展的回顾,你可以在这里找到。
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业轨道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 工作
本文将对数据科学及相关薪资进行快照式的回顾,以总结另一年的结束。为了找到一个对比点,并尽力寻找可以相互比较的对象,我们将重点关注数据科学家在美国的角色,同时也会考虑一些相关职位和几个额外国家的情况。
数据科学家的薪资是多少?
为了了解情况,我们来看一下 Payscale,报告(最近更新于 2019 年 10 月 22 日)称,美国的数据科学家中位薪资为$91,260,范围在$62k - $138k 之间(见图 1)。

图 1:数据科学家中位薪资
但基本薪资并不是全部。Payscale 还报告说,中位数奖金为$8,042,范围在$1k - $17k 之间,中位数利润分享为$5,139,范围在$970 - $15k 之间(见图 2)。

图 2:数据科学家薪资、奖金、利润分享范围
通常,任何职位的经验多少与薪资有相关性,这至少部分基于合理的推理。图 3 显示了与经验年限相称的薪资趋势。

图 3:与经验年限相称的数据科学家薪资
通过这条回归线和按经验年限分组的标签,你可以看到薪资的上升趋势以及基于不同经验水平的合理预期薪资。显然,一名新的数据科学家在其第一个职位上不应期望得到中位数薪资(有十年经验的人也不应如此),上述内容有助于回答什么是合理的期望。
了解Robert Half 的说法关于数据科学家薪资的不同视角(2019 年 9 月 10 日):
这些 IT 专业人士利用他们在统计学和建模方面的知识,来理解来自各种来源的复杂数据。要获得$125,250 的中位数薪资,数据科学家需要具备商业敏锐度和沟通能力,除此之外,还需要统计学、数学和计算机科学的专业知识。了解 Python 或 Java 等编程语言通常也是工作所需的技能。
地理位置如何影响你的薪资?为了回答这个问题,图 4 展示了 Payscale 对几个美国城市薪资差异的分析。

图 4:按地点的薪资差异
对于那些了解技术中心相对吸引力和美国生活成本差异的人来说,这不应令人感到惊讶。此外,Indeed 的报告显示数据科学家在以下 5 个美国城市拥有最高的总体薪资(见图 5)。

图 5:美国数据科学薪资最高的城市
到目前为止,我们对数据科学家薪资的理解与相关职位薪资相比如何(或“相关”职位根据 Payscale 的定义)?请参见下方的图 6。

图 6:相关职位薪资
显然这些“相关”职位存在一些问题,但有几个职位提供了一些有限的相关对比。
关于职位薪资比较的更多额外有用的见解,让我们看看 Stack Overflow 编程薪资计算器(2019 年 10 月 16 日)。此报告概述了薪资计算器,该计算器“基于 Stack Overflow 开发者调查的综合数据,这些庞大而广泛的调查数据使我们能够建立一个准确的模型,反映全球范围内编码工作薪酬的趋势。”
继续关注美国,图 7 显示了 Stack Overflow 报告中不同类型开发者的中位薪资。

图 7:不同类型开发者的中位薪资(美国)
数据角色,如数据科学家和数据工程师,在薪资排名中高居开发者类型的顶端。Stack Overflow 提供了这一观察结果:
[W]e 在这里有证据表明,高薪资的数据科学家和数据工程师可以仅凭高学历和丰富经验来解释。数据科学家薪资很高,但不比受过类似教育的从事其他工作的开发者高。(拥有学士学位甚至更高学位的人,编码薪资显著提高。)近年来,数据科学和数据工程工作已从极端的异类位置逐步转向主流软件工作领域。
虽然将数据科学家视为“开发者”有些问题,但在技术层面上,当代编码数据科学家所具备的技能与开发者的技能之间无疑有很多重叠。话虽如此,高等教育作为数据科学家薪资高的主要(他们暗示为唯一)因素的评论并非离谱。然而,这些可能是苹果和橘子的比较;我们需要访问类似高学历的数据科学家以及其他开发者的薪资原始数据(如果有的话),才能得出这样的结论。
最后,让我们利用 Stack Overflow 的调查为我们的讨论引入国际视角。图 8 关注了 4 个国家中不同类型开发者的最高薪资:

图 8:不同类型开发者的中位薪资(美国、英国、德国、印度)
那么,2019 年的数据科学家薪资是多少?结果显示,这是一个非常好的问题……但没有明确的答案。当然,你可能已经知道,完成后不会有一个单一的、神奇的数字。然而,你现在确实拥有一些数据来帮助做出合理的预测,了解在各种不同情况下公平薪资的情况。让我们看看 2020 年数据科学家薪资讨论带来了什么。
相关:
-
数据科学家:为什么他们的聘用费用如此昂贵?
-
人工智能:薪资飞涨
-
2019 年 Stackoverflow 调查中的 R 用户薪资
更多相关主题
数据科学家如何在全球就业市场中竞争
原文:
www.kdnuggets.com/2021/09/data-scientists-compete-global-job-market.html
评论

数据科学家的就业市场比以往任何时候都更加活跃,并预计在未来几年将迅速增长。美国劳工统计局预测,到 2026 年,职位数量将增长约 28%。
我们的三大课程推荐
1. 谷歌网络安全证书 - 快速通道进入网络安全职业。
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT
公司正在投入大量资金进行市场研究和商业分析,为长期数据科学家和新入行者创造新的机会。与此同时,就业市场也变得更加竞争。随着数据科学职位变得对企业越来越重要,职位的平均薪酬也在上升,这促使招聘经理更加仔细地审查新员工。
希望保持竞争力或进入这一领域的数据科学家需要采用正确的方法。这些技巧将帮助他们寻找并获得新职位。
全球数据科学就业市场的现状
人们生成的信息比以往更多——专家认为,到 2025 年,全球数据将超出 175 泽字节。与此同时,AI 和大数据分析的创新使得大数据集对企业的价值比以往任何时候都要高——但前提是他们与经过培训的科学家合作,才能发现所需的洞察。
半数的调查企业已使用 AI以某种方式,并且更多企业表示他们计划在不久的将来进一步投资于数据驱动的解决方案。
现在,一条数据科学职位的招聘信息收到数百份申请并不罕见。更高的需求也意味着更高的薪酬,企业在招聘这些职位时变得更加谨慎。
作为回应,许多招聘经理正在夸大新数据科学职位的要求——要求更强的资质、更丰富的经验和额外的关键字。即使是具有良好资格或强大学术记录的数据科学家,现在也无法保证获得职位。
在全球就业市场中保持竞争力的最佳实践
希望进入该领域或获得新职位的数据科学家需要正确的策略来取得成功。这六个建议将帮助已有经验的专业人士和行业新手找到工作。
1. 知道使用正确的词汇
熟悉热门行业关键字——如 Python、SQL、AI 和数据分析——可以帮助你编写出更有效传达你技能的 CV 和简历,并通过招聘经理常用的简历筛选器。
跟上不断变化的行业需求也可以帮助你保持竞争力。虽然 Python 仍然是必备技能,但越来越多的企业期望熟悉深度学习、梯度提升机和大数据分析。许多公司还期望申请者过去使用过各种数据挖掘和分析方法。
2. 传达对行业标准工具的熟悉程度
当申请期望具备人工智能知识的职位时,强调数据科学和机器学习的知识可能有助于你获得面试机会。
同时,应避免关键字堆砌,即不自然地在简历中填充关键字以击败简历筛选器或吸引招聘经理的注意。尽量仅在简历或 CV 中使用与说明你的独特背景和数据科学技能集相关的关键字。
3. 了解大企业如何寻找数据科学专业人士
研究大型公司如何招聘数据科学家也可以帮助你改进简历和 CV。AI 和 ML 公司 Daitaku 最近在案例研究中出现,探讨了它如何在国际上寻找数据科学家。报告强调了技能集比地理位置更为重要。
4. 利用通用求职最佳实践
求职最佳实践通常也对寻找新职位的数据科学家有帮助。针对每个申请的职位量身定制你的 CV 和求职信会多花一些精力,但这有助于你在面试前传达你的特定技能,并展示你如何适合某个职位。
5. 与其他数据科学家建立联系
积极与其他数据科学家和寻找专业人士的招聘人员建立联系,可以帮助你扩大网络,更容易找到与你的技能和经验水平相匹配的职位。
在等待招聘经理的回复期间,你也可以寻找短期工作,以帮助你进一步提升技能,并在简历上增加一两个要点。
6. 考虑自由职业工作
需要数据科学家的企业但难以填补新职位,可能会向合格的申请者提供临时和自由职业工作。像 UpWork 这样的自由职业平台和求职板块可以为你提供这些职位的线索。
展望未来:数据科学家如何保持竞争力
数据科学家的职位空缺比以往更多,但这并不意味着市场竞争变得不那么激烈。数据科学的日益重要和技能人才的短缺使得公司在招聘时非常谨慎。
希望找到新职位或进入市场的数据科学家应保持对行业趋势的关注,并熟悉各种数据挖掘和分析技术。求职的最佳实践——如定制简历和谨慎使用关键词——也能帮助他们获得面试机会。
通过运用这些技巧,你可以在竞争激烈的环境中脱颖而出,找到理想的数据科学职位。
简介:德文·帕蒂达 是一位大数据和技术作家,也是 ReHack.com 的主编。
相关:
-
如何成功成为一名自由职业数据科学家
-
数据专业人士如何在简历中添加更多变化
-
自动化如何改善数据科学家的角色
更多相关话题
没有数据工程技能的数据科学家将面临严峻的现实
原文:
www.kdnuggets.com/2021/09/data-scientists-data-engineering-skills.html
评论

我们的前三个课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织的 IT 需求
你可能读过关于数据科学家和数据工程师区别的文章。我一直认为这个区别很明确。数据工程师准备好数据,然后数据科学家在这些数据上工作。
然而,经过我作为数据科学家的工作,我对这一区别的看法发生了剧烈变化。
数据科学的一切都始于数据。你的机器学习模型的质量与输入的数据同样重要。垃圾进,垃圾出!没有合适的数据,数据科学家无法通过某种魔法创造有价值的产品。
合适的数据并不总是立即可用。大多数情况下,将原始数据转换为适当格式的责任将落在数据科学家身上。
除非你在一家大型科技公司工作,该公司有专门的数据工程师和数据科学家团队,否则你应该具备处理一些数据工程任务的能力和技能。这些任务涵盖了广泛的操作,我将在文章的其余部分详细阐述。
毕竟有什么区别呢?
我想阐述一下数据工程师的工作和数据科学家之间的关系。
数据工程师就是数据工程师。数据科学家应该既是数据科学家,又是数据工程师。
这可能看起来是一个有争议的说法。然而,我想强调的是,在我开始作为数据科学家工作之前,我的观点是不同的。我曾经认为数据工程师和数据科学家是两个独立的实体。
在文章的剩余部分,我将尝试解释为什么数据科学家应该既是数据科学家又是数据工程师。
比如说,数据工程师会进行一系列称为 ETL(提取、转换、加载)的操作。这包括从一个或多个来源收集数据,应用一些转换,然后将其加载到另一个来源中。
如果数据科学家被期望执行 ETL 操作,我绝对不会感到惊讶。数据科学仍在发展中,大多数公司没有明确分开的数据工程师和数据科学家角色。因此,数据科学家应该能够执行一些数据工程任务。
如果你期望仅仅在使用现成数据运行机器学习算法,你会在刚开始工作时就面临严峻的现实。
你可能需要编写一些 SQL 存储过程来预处理客户端数据。也有可能你会从几个不同的来源收到客户端数据。你的工作将是提取和组合这些数据。然后,你需要将它们加载到一个单一的来源中。为了编写高效的存储过程,你需要广泛的 SQL 技能。
ETL 程序的转换部分涉及许多数据清理和操作步骤。如果你处理大规模数据,SQL 可能不是最佳选择。此时,分布式计算是更好的替代方案。因此,数据科学家也应熟悉分布式计算。
在分布式计算中,你的最佳伙伴可能是 Spark。它是一个用于大规模数据处理的分析引擎。我们可以将数据和计算分布在集群上,以实现显著的性能提升。
如果你熟悉 Python 和 SQL,那么适应 Spark 不会很困难。你可以使用 PySpark,这是一种 Spark 的 Python API。
关于集群工作,最佳环境是云。虽然有多种云提供商,但 AWS、Azure 和 Google Cloud Platform(GCP)领先于前。
虽然 PySpark 代码在所有云提供商中都是相同的,但环境设置和集群创建方式有所不同。它们允许通过脚本或用户界面创建集群。
在集群上进行分布式计算是一个完全不同的世界。它与在你的计算机上进行分析完全不同。它具有非常不同的动态。评估集群性能和选择集群的最佳工作节点数量将是你主要关注的问题。
结论
长话短说,数据处理将成为你作为数据科学家的重要部分。我所说的重要,是指你 80%以上的时间都将用于数据处理。数据处理不仅仅是清理和操作数据。它还包括 ETL 操作,这通常被认为是数据工程师的工作。
我强烈推荐熟悉 ETL 工具和概念。如果你有机会进行实践,那将非常有帮助。
认为作为数据科学家你只会处理机器学习算法是一个天真的想法。这确实是一个重要的任务,但它只会占用你时间的一小部分。
原文。转载已获许可。
相关:
更多相关话题
数据科学家和数据工程师如何协作?
原文:
www.kdnuggets.com/2022/08/data-scientists-data-engineers-work-together.html

图片由 fauxels 提供,通过 Pexels
数据科学家和数据工程师如何协作?
我们的三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 需求
数据科学家和数据工程师常常被初学者混淆,特别是那些在数据科学领域没有显著经验的人。虽然他们的工作乍一看可能似乎相似,但实际上存在一些重要的根本差异。如果你正在考虑数据科学的职业生涯,了解这两个领域的不同之处非常重要,以确定哪个领域可能更适合你的技能和兴趣。
数据科学家的工作是什么?
数据科学家 直接参与分析方面的工作。他们处理数据模型,提出特定问题的解决方案,并探索数据科学领域的极限,以寻找应对挑战的合适方法。数据科学家的工作涉及大量数学和对数据科学背后统计概念的深刻理解。强大的数学和统计背景对于成为数据科学家并在知名公司获得职位是必要的。
数据工程师的工作是什么?
另一方面,数据工程师 更多地关注于解决方案的实际技术实施。一旦科学家提出了一个模型,工程师就需要弄清楚如何将其整合到整体的数据处理流程中。数据工程师必须小心平衡他们所工作的系统的可访问性、灵活性和性能。
他们还必须尽可能全面地理解他们正在使用的技术栈。在实施解决方案时,数据工程师需要确定应该使用哪些语言、数据库和其他技术组件来组建最终结果。通常需要大量的脚本编写来将所有部分连接起来。
两个角色如何协作?
观察数据科学家和数据工程师的一个好方法是通过建筑师和土木工程师的类比。建筑师提出最初的计划,而工程师则在考虑结构限制和其他类似问题的同时实施这些计划。在数据科学的世界里也是如此。数据科学家进行规划,数据工程师则构建和实施。
尽管如此,这两个角色也紧密合作以提出最终解决方案。在双方都拥有良好的沟通技巧非常重要,因为通常需要整合想法和限制,这必须以不削弱任何人项目参与的方式进行。优秀的数据科学家和工程师的组合在这种通常混乱的工作环境中可以证明是不可或缺的。
哪条职业路径适合你?
如果你想参与数据科学,选择你是否想成为数据科学家或数据工程师是重要的。如果你喜欢数学并探索该领域的理论概念,作为数据科学家的工作可能更适合你。你需要对统计学、线性代数以及其他各种数学领域有很好的理解。你还需要阅读大量的已发表论文,以便对该领域如何整体联系有一个良好的理解。
另一方面,如果你喜欢“动手实践”,经常发现自己编写脚本来自动化工作,重新安排管道的部分以提高效率,并担心技术限制,那么作为数据工程师的工作可能非常适合你。这是一个非常技术性的领域,你不一定需要对数学基础有很好的理解才能成功。但这确实会有帮助。
为什么了解两方都值得
无论你选择哪一方,花些时间熟悉两端的概念都是一个好主意。一名优秀的数据工程师必须至少了解他们实现的模型最初是如何形成的,而一名优秀的数据科学家则必须了解他们可能遇到的粗略限制。这就是为什么这些领域中的最佳专家通常都会投入一些精力去学习另一方的工作方式。这在尝试传达复杂概念时也会非常有用。
无论你是决定先专注于一方面,然后再涉猎另一面,还是最初将注意力分散于两者之间,都由你决定。两种方法都可行,这取决于个人偏好。无论你选择哪个方向,Springboard 都有相关课程可以加深你的理解,并让你在感兴趣的领域中为求职做好准备。如果你对这一方面感兴趣,Springboard 的数据科学职业课程是一个很好的起点。
赖利·普雷杜姆 曾在多个数据领域,如产品和数据分析,以及数据科学和数据/分析工程领域,具有丰富的专业经验。他热衷于写作和教学,并喜欢为在线社区提供学习材料,专注于一般学习以及职业发展。赖利在他的Medium 博客上编写编码教程。
更多相关主题
为什么数据科学家期望谷歌 Bard 提供有缺陷的建议
原文:
www.kdnuggets.com/2023/02/data-scientists-expect-flawed-advice-google-bard.html

图片由编辑提供
在最近的宣传活动中,谷歌向世界展示了 Bard 的首次亮相,这是科技巨头试图取代极受欢迎的 AI 聊天机器人 ChatGPT 的尝试。尽管这次活动可能旨在为谷歌的 AI 聊天尝试制造轰动,但它很快成为了展示这些神秘 AI 聊天服务可能出错的公众示范。
根据路透社的首次报道,Bard 给出了不准确的回应,导致 Alphabet (GOOGL) 的股价在演示当天下跌了多达 9%。对于许多数据社区成员来说,这并不令人惊讶;原因如下。
Bard 的广告有什么问题?
问题:当被问及如何向 9 岁的孩子介绍令人惊叹的詹姆斯·韦布太空望远镜 (JWST) 时,Bard 错误地将其描述为“……用于拍摄地球太阳系外第一张行星的照片”。这一回答很快被识别为错误,因为地球太阳系外第一张行星的照片是在 2004 年由欧洲南方天文台的大型望远镜 (VLT) 拍摄的。
什么是谷歌 Bard?
谷歌首席执行官 Sundar Pichai 称 Bard 为“对话式 AI 服务”。如果这听起来很熟悉,你可能在过去几个月里遇到过谈论 ChatGPT 的众多在线影响者之一。
对这项 AI 突破的看法差异很大。赞成者讨论革命性计划或分享利用聊天机器人快速发展业务的兴奋点。ChatGPT 最受欢迎的用例之一是自动化重复性任务。另一方面,批评者对其能力提出了有缺陷的观点——认为聊天机器人的功能取代了人类的研究和批判性思维。谷歌 Bard 将引发类似的讨论。
什么是 LaMDA?
谷歌的 Bard 基于 LaMDA,这是公司在 2021 年推出的语言模型,LaMDA 本身建立在公司流行的开源神经网络架构 Transformer 上。
有趣的是,LaMDA 是通过对话进行训练的,使其比以前的语言模型更自然地回应人类对话。(如果 LaMDA 这个名字听起来很熟悉,也许你会记得有一个谷歌工程师认为LaMDA 已经具有意识。)
2021 年 5 月宣布的谷歌 LaMDA 首次亮相,是讨论其模型优势的机会,宣布特别关注其回应的真实性。两年后,在 Bard 宣布期间,记者很快发现了一个事实错误。这对谷歌的实施意味着什么?我们将拭目以待。
谷歌 Bard 有何不同于 LaMDA?
鉴于两者的相似之处,一些人问,这款新产品有什么不同?谷歌谦虚地声称,它的新服务将“世界知识的广度”添加到 LaMDA 已经令人印象深刻的对话技能中。它还承诺提升模型的能力,提供比普通聊天机器人更多的指导和研究。简而言之,Bard 依赖于 LaMDA,而 LaMDA 不依赖于 Bard。
同时请注意,谷歌计划通过 Bard API 链接向开发者开放服务,使其比普通聊天机器人更具吸引力。虽然用户已经可以与 LaMDA 进行自由流畅的对话,但谷歌 Bard 承诺通过包括公司提供的全方位谷歌搜索服务的相同信息来提升对话。
与直觉相反,Bard 的事实错误不应削弱这个新服务的承诺价值。谷歌的搜索结果从未承诺绝对准确。搜索者应始终考虑其来源。即使在发布了令人印象深刻的聊天机器人之后,这一事实仍然成立。
使用谷歌 Bard 的方法
数据科学家并不是唯一对使用谷歌 Bard 感到兴奋的人。皮查伊设想这项服务将帮助任何使用谷歌的人。他的承诺?Bard 简化复杂话题。考虑以下使用案例:
找到复杂问题的简单答案
想象一下你想去度假。谷歌现有的搜索可以轻松回答你知道要去哪里时的问题,并帮助你查找特定日期的价格。但皮查伊将这个新聊天机器人比作和朋友对话。
你应该能够开始一个关于工作的项目的对话,将复杂的研究文章分解成最重要的要点,然后在接下来的几周内请求应用这些要点的推荐。
Bard 还可以在销售团队培训中提供帮助,在你招待挑剔食客时提供晚餐推荐,以及讨论最新的漫威电影的精彩部分。谷歌已经在其产品中实施了 AI,但随着新聊天机器人的发展,这一过程将会扩展。所有这些,你无需离开你熟悉的搜索引擎。
自动化常规任务
谷歌已经与市场整合,使你可以直接从其界面购买商品和进行预订。谷歌 Bard 可能允许你通过对话实现这一点。Alexa 可能能启动你的 Spotify 播放列表,但想象一下与 AI 协作,为你的下一次公路旅行策划配乐,同时你开车上班。
参与社区对话
社交网络往往助长在线争论,奖励有争议的观点,并为网络喷子提供额外曝光。这导致许多人放弃了 2010 年代流行的平台。谷歌 Bard 可以为小众社区策划对话,连接好奇的头脑,同时过滤掉仇恨言论和虚假信息。
使用谷歌 Bard 的潜在陷阱
不足为奇的是,这个新聊天机器人引起了很多关注,至少部分原因是它广泛的应用潜力。对棋盘游戏爱好者和项目经理来说,它的吸引力是一样的。皮查伊在新闻稿中遗漏了一些重要点,这些点在最近的非凡太空摄影误归属事件中变得更加明显。这里还有一些需要考虑的点。
聊天机器人不必讲真话
像 ChatGPT 这样的流行对话代理内置了伦理指导。例如,它不应讲冷笑话或故意误导你。但这并不总是适用于 AI 聊天系统。
查看这项关于人工智能在棋盘游戏外交中的应用的最新研究,重点关注谈判和形成联盟的能力。研究还强调了对任何违背承诺的方实施处罚。看到团队专注于构建促进可信沟通的 AI 策略令人鼓舞,但请考虑这对不慎的数据科学家意味着什么。
随着聊天机器人技术的发展,我们应当更多考虑提供服务者的动机。在进行谈判(金融服务、交易、薪资谈判)时,聊天机器人可能会故意误导用户。
机器学习并不能消除偏见
数据科学社区已经很清楚机器学习中的偏见。像他们的人类同行一样,对话聊天机器人经常表现出确认偏见和偏见偏见。谷歌 Bard 无疑会考虑到这些问题中的一些,但我们应当对新发布的第三方应用保持警惕。
虽然谷歌聘请了一些世界上最优秀的数据科学家,但这家科技巨头也并非没有缺陷。记得那位提出一些令人不便的问题的伦理学研究者吗?她表达了对环境成本、难以理解的模型、错误导向的研究努力以及传播虚假信息潜在风险的担忧。
所有数据集都有缺陷
从本质上讲,聊天机器人依赖于自然语言处理(NLP)模型。但没有任何数据集能够代表完整的真相。深度学习可能有助于为对话伙伴提供更自然的回答,并在最佳情况下缓解一些数据集的局限性。但尽管你最喜欢的网红可能会说什么,没有任何聊天机器人是神。
引用乔治·博克斯的话:“. . . 没有必要问‘模型是否真实?’ 如果‘真实’是指‘全部真实’,答案必须是‘不’。唯一感兴趣的问题是‘模型是否具有启发性和实用性?’”
如何访问谷歌 Bard
谷歌已经向“受信任的测试者”提供了 Bard,但公司承诺在几周内进行更广泛的发布。这意味着开发者应该在密歇根州上半岛的雪融化之前获得谷歌的轻量级版本。
这对谷歌搜索的更新意味着什么?我们还得拭目以待。谷歌已经在使用人工智能来改进视觉搜索结果。我预计今年和明年会有很多变化。我期待着探索 Bard 作为商业工具的潜力。
如何开始使用 Bard 进行数据科学?
如果你想入门数据科学,我们列出了我们的一些推荐课程。这些课程在深度和范围上各不相同,所以一定要找到适合你技能水平的选项。那些考虑转行的人可以从头开始学习这个行业,虽然许多人选择学习像 Python 这样的编程语言作为进入该领域的起点。
从零开始学习数据科学
所有初学者都应熟悉数学,特别是数据科学统计学。这些技能对编程、数据评估、数据讲述及大多数其他工作部分都很重要。确定数据趋势的相关性需要以理解统计显著性作为起点。
作为数据科学家学习编程
数据科学涵盖了企业的各种功能,因此数据科学家需要学习多种语言。常见技能包括 Python、R、Hadoop、SQL 和 Apache Spark。为了深入了解这个主题,我们还讨论了如何学习数据科学。
作为专业人士实施人工智能
对于那些希望在自己领域应用机器学习、自然语言处理和其他现代技术的专业人士,请查看斯坦福大学人工智能专业项目。
总结思考
如果你对 Google Bard 感到兴奋,你并不孤单。如果你对它感到紧张、害怕或困惑,你也并不孤单。数据爱好者们了解聊天机器人如何提供建议,我们可以预期未来任何基于大型语言模型的技术都会出现类似的错误。
Jim Markus 管理 Hackr.io 及 VentureKite 旗下的网站组合。他主持了热门财经播客《节俭生活》,并共同创办了《墨与血决斗社》,这是一个在美国各大会议上出现的戏剧写作活动。他还是一位获奖的游戏设计师。
更多相关话题
数据科学家将在 10 年内灭绝
原文:
www.kdnuggets.com/2021/06/data-scientists-extinct-10-years.html
评论
作者:Mikhail Mew,研究员,投资者,数据科学家
以下是受此博客启发的 KDnuggets 投票结果:

随着 AI 的进步不断取得飞跃,数据科学的基本水平变得越来越民主化。传统的领域入门障碍,如缺乏数据和计算能力,已被不断涌现的数据创业公司(有些每天只需一杯咖啡的费用即可访问)和强大的云计算所消除,后者移除了对昂贵现场硬件的需求。作为先决条件的三位一体之一,技能和知识的实施,已经成为数据科学最普遍的方面。无需费力寻找在线教程,它们标语如“秒级实现 X 模型”,“仅用几行代码将 Z 方法应用于你的数据”。在数字世界中,即时满足已成为游戏规则。虽然改善的可及性乍看无害,但在闪亮的新软件库和模型之下,数据科学的真正目的变得模糊,有时甚至被遗忘。因为数据科学的目的并非仅仅为了运行复杂模型,或优化任意的性能指标,而是作为解决现实世界问题的工具。
一个简单但易于理解的例子是 Iris 数据集。多少人使用它来演示一个算法,而不去考虑什么是花萼,更不用说我们为什么要测量它的长度了?虽然这些对于可能更关心增加新模型的初学者来说可能显得微不足道,但对于记录了这些属性的植物学家埃德加·安德森来说,这并非小事,他这样做是为了理解鸢尾花的变异。尽管这是一个人为设置的例子,它却展示了一个简单的观点:主流已经更加关注“做”数据科学而不是“应用”数据科学。然而,这种不匹配并不是数据科学家衰退的根本原因,而是一种症状。要理解问题的根源,我们必须退一步,俯瞰全局。
数据科学有一个奇特的区别,它是少数几个没有特定领域的研究领域之一。药学学生成为药剂师,法律学生成为律师,会计学生成为会计师。那么数据科学学生是否必须成为数据科学家呢?但数据科学家是哪个领域的呢?数据科学的广泛应用证明了它是一把双刃剑。一方面,它是一个强大的工具箱,可以应用于任何产生和捕获数据的行业。另一方面,这些工具的一般适用性意味着用户在实际使用之前,很少会对这些行业有真正的领域知识。然而,在数据科学崛起的初期,这个问题并不重要,因为雇主们急于利用这项新兴技术,却没有完全理解它是什么以及如何将其完全融入公司中。
然而,近十年后,商业环境及其运作方式已发生变化。它们现在追求数据科学的成熟,拥有大规模的团队,并以行业标准为基准。紧迫的招聘需求已经转向理解业务、相关行业以及其利益相关者的问题解决者和批判性思考者。仅仅能够操作几个软件包或重复几行代码已经不够,数据科学从业者也不再以编程能力来定义。这从无代码、AutoML 解决方案如 DataRobot、RapidMiner 和 Alteryx 的日益流行中得到了证明。
这意味着什么?
数据科学家将在 10 年内消失(或多或少),至少这个角色头衔会消失。未来,被统称为数据科学的技能将由新一代数据敏锐的业务专家和主题领域专家承担,他们能够将深厚的领域知识融入分析中,无论他们是否会编程。他们的职称将反映他们的专业知识,而不是他们展示这些知识的方式,无论是合规专家、产品经理还是投资分析师。我们不需要回顾太久就能找到历史先例。在电子表格刚出现时,数据录入专家曾是备受青睐的,但如今,正如《数据讲故事》一书的作者科尔·努斯鲍默·克纳夫利克(Cole Nussbaumer Knaflic)恰如其分地观察到的那样,熟练使用微软办公套件已成为基本要求。在此之前,能够用打字机盲打被认为是一项专业技能,但随着个人计算机的普及,这也变得司空见惯。
最后,对于那些考虑从事数据科学职业或开始学习的人来说,时常参考你无疑会遇到的韦恩图可能会对你有益。它将数据科学描述为统计学、编程和领域知识的汇聚。尽管它们在交集区域中占据了相等的份额,但有些领域的权重可能会比其他领域更高。
免责声明:观点仅代表我个人的观察和经验。如果你不同意,也没关系,欢迎进行富有成效的讨论。
简介:米哈伊尔·缪 是一名研究员、投资者和数据科学家,同时也是一名好奇的观察者,提供投资和机器学习交汇处的见解和思考。
原文。经许可转载。
相关:
-
数据科学家应如何与利益相关者沟通
-
使用 BERT 构建求职知识图谱
-
高效能数据科学家的五种思维方式
更多相关话题
数据科学家如何引起 CFO 的关注(以及为什么你需要这样做)
原文:
www.kdnuggets.com/2021/12/data-scientists-get-ear-cfos-want.html
评论
图片由 StartupStockPhotos 提供于 Pixabay
数据科学家掌握着无限的可能性。其中许多可能性存在于商业智能和数据分析的领域。这些学科可以在商业环境中发挥重要作用,其中发现增长机会、识别低效以及超越竞争对手至关重要。
我们的前三名课程推荐
1. Google 网络安全证书 - 加速你的网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 为你的组织提供 IT 支持
数据专家可以通过了解首席财务官(CFO)关心的信息和报告来引起他们的注意。数据科学可以提供有价值的商业智能和预测。以下是如何引起 CFO 的关注,给公司提供高质量的分析,并在过程中提升你的价值和职业生涯。
了解不同类型的商业分析的价值
商业分析预计将在 2030 年成为一个 $6840 亿的行业。那些能够帮助公司和 CFO 在这场军备竞赛中取得领先的数据科学家往往能够稳固自己的职位并展示其价值。
为了实现这一点,数据科学家必须了解 主要的商业分析类型以及它们如何应用于以数据为驱动的企业规划。
1. 描述性分析
这一商业分析分支提供了对过去事件的见解,如公司绩效和更广泛的行业趋势。研究过去发生的事情帮助公司了解自身的弱点和优势。
对于首席财务官来说,这可能包括市场波动、现金流问题、员工流动和消费模式等。其他因素也会影响公司的灵活性和未来的准备情况。
2. 诊断分析
诊断性商业分析建立在描述性分析发现的基础上。它对公司数据进行更细致的调查,以发现隐藏的风险和问题,并最终阐明事情发生的原因。
这是未来战略规划的重要组成部分。清楚地看到低效发生的地方或浪费的地方可以大大简化首席财务官的工作。
3. 预测性分析
预测性商业分析实现了最初收集组织数据的承诺。历史信息帮助数据科学家和决策者理解事件或趋势重现的可能性。在商业环境中,这包括预测劳动力的增长或减少,考虑未来需求和购买行为的变化,以及检测金融欺诈或网络安全事件。
财务规划和分析行业的专家表示,公司使用的方法进展并不像许多人期望的那样快。在数据分析专业人员需求未得到满足的就业市场中,强大的专业知识使该领域的工作更加抢手。根据一些统计数据,2021 年美国的空缺职位大约有 140,000 个。
4. 规范性分析
这种类型的商业分析是之前分析的综合。规范性分析将当前的洞察与关于未来的理性数据驱动推断相结合,并将其转化为首席财务官和其他决策者关心的语言。
将规范性分析和商业智能应用于首席财务官角色
将原始数据转换为分析,再到为高层管理人员提供可操作的建议的过程还缺少一些步骤。其中最关键的涉及报告工具。
数据科学家可以轻松找到有关商业智能工具的客观评价和仪表板。他们需要了解如何提取决策者关心的信息,以便与首席财务官和高层管理人员有效沟通,
一些最有可能引起首席执行官、首席财务官和其他决策者兴趣的仪表板包括以下内容:
-
收入和支出仪表板
-
趋势仪表板
-
资产负债表仪表板
-
KPI 仪表板
-
基准仪表板
-
方差和异常仪表板
目前市场上的许多工具提供了针对特定业务领域预设计的模板。各种产品还可能包括数据阶段和数据仓储功能,以组织可用数据——这是从中挖掘任何附加价值的第一步。
在许多业务领域和关键工作流中,这种以数据为导向的思想交流正成为创新和业务精简的热土。这些是一些数据科学正在定义更精简、更清晰、更盈利和透明的企业结构的地方:
-
财务规划和商业模型: 理解这一领域的数据科学家可以帮助公司建立响应迅速的定价结构,了解反馈的使用方式,并主动且详细地跟踪收入。
-
工程、研究与开发: 如果通过描述性和预测性分析来了解新产品或服务的投资价值,这个过程将会顺利得多。
-
扩展、可扩展性、税务和财务: 进入新领域或进行收购不能仅仅依靠高层次的假设。了解可能的税务和财务影响,并研究目标人群以引导扩展方向,都依赖于数据科学及其科学家。
-
采购: 数据科学不断构建新工具,帮助公司更详细地跟踪其原材料和人员。运行高效的操作是实现可持续性的部分,而数据科学可以揭示使供应链更高效的机会。
数据科学家能否成为首席财务官?
是否有一种途径可以让以业务智能为导向的数据科学家成为首席财务官?答案是肯定的——而且成功案例也描述了这种进阶过程。
例如,有一位数据监控系统专家——该系统旨在识别欺诈迹象或寻找投资机会——将其大数据驱动的财务策略知识转化为首席财务官的角色。这里所利用的风险洞察和业务机会,以及公司角色的跃升,之所以成为可能,是因为这位科学家知道如何充分利用“数据废料”。
数据监控和金融科技领域的机器学习只是数据科学家角色与首席财务官角色互补的一个例子。在商业智能报告和对每天产生的 exabytes 信息的深入分析之间,如果数据科学家知道如何抓住机会,他们能为决策者提供很多帮助。
简介:德文·帕提达 是一名大数据和技术作家,同时也是ReHack.com的主编。
相关:
-
2021 年数据科学家招聘的顶级行业
-
数据科学家如何在全球就业市场竞争
-
如何成功成为自由职业数据科学家
更多相关话题
数据科学家可以从定性研究中学到什么
原文:
www.kdnuggets.com/2016/07/data-scientists-learn-from-qualitative-research.html
评论
由 Alyona Medelyan, Thematic。
开放性调查问题通常提供最有用的见解,但如果你处理的是数百或数千人的回答,总结这些回答会让你头疼不已。如果你是数据科学家,你可以尝试使用 NLP 库或 API,但调试它们很困难,结果往往难以解释。如果你没有定性研究的背景,这篇文章将帮助你学习来自长期从事文本工作的人的最佳实践,这些文本也被称为定性数据。

从文本到代码再到分析
什么是编码,为什么它很重要?
当提到“巨量数据”这样的术语时,它们几乎总是指定量数据:那些可以很容易用数字或类别表示的数据。统计和机器学习技术“喜欢”数字。另一方面,文本虽然难以处理,但却很重要!定性研究人员认为,单靠数字无法解决问题。他们认为,通过采访人们并让他们回答开放性问题,你可以学到比仅仅查看硬数据更多的东西。
例如 NPS 调查。NPS 得分是根据“你有多大可能性向朋友或家人推荐我们,0 到 9 分”的数字答案计算得出的,这将给你一个公司绩效的单一指标。但要提高这个指标,你需要关注“你为什么给我们这个分数?”的开放性问题的回答。
在定性研究过程中产生了大量的文本,为了得出结论,使用了一种叫做编码的技术。问卷调查中让受访者自由作答的问题也被称为开放性问题。每个回应被称为逐字稿。对每个回应进行“编码”或“标记”有助于捕捉回应的内容,从而有效地总结整个调查结果。
如果我们将编码与 NLP 方法用于分析文本进行比较,在某些情况下编码可以类似于文本分类,而在其他情况下则类似于关键词提取。接下来,我们将探讨编码的内容以及可以使用的不同方法论。我们通常会提到如何手动执行任务,但如果你打算使用自动化解决方案,这些知识将帮助你理解重要的内容以及如何选择有效的方法。
什么是编码框架?
创建代码时,它们被放入一个编码框架中。这个框架很重要,因为它代表了组织结构,并影响编码结果的使用方式。框架有两种类型:‘平面’和‘层次化’:
-
平面框架意味着所有代码被视为具有相同的具体性和重要性水平。虽然这种框架易于理解,但如果它变得庞大,组织和导航会很困难。
-
层次化框架捕捉了代码之间的分类关系。它们允许你在编码和分析结果时应用不同的粒度级别。
层次化框架的一个有趣应用是支持情感差异。如果顶层代码描述回应的内容,中层代码可以描述其正面或负面,而第三层描述属性或具体主题。下面展示了这种类型的编码框架的示例。

在层次化编码框架中使用情感
代码框架的优缺点

编码框架的覆盖面和灵活性
一个非常重要的考虑因素是编码框架的大小和覆盖面。在编码时,重要的是将包含相同主题的回应,即使表达方式不同,也归入同一个代码。例如,代码‘清洁’可以覆盖提到‘干净’、‘整洁’、‘脏’、‘多尘’等词汇和‘看起来像垃圾场’、‘可以从地板上吃东西’等短语。这要求编码员对每个代码及其覆盖面有良好的理解。代码少且框架固定会使决策更容易。代码多,特别是在平面框架中,会更难,因为可能存在模糊性,有时不清楚回应的确切含义。手动编码还要求编码员记住或能够找到所有相关代码,这在大型编码框架中更困难。
最后,编码框架应灵活。对调查进行编码是一项成本高昂的任务,尤其是手动完成时,因此结果应能在不同的上下文中使用。想象一下:你正在尝试回答“人们对客户服务的看法是什么”这个问题,并创建捕捉关键答案的代码。然后你发现同样的调查回应中还有许多关于公司产品的评论。为了回答“人们对我们产品的评价是什么”,你可能需要从头开始编码!创建一个灵活且覆盖面广的编码框架(见下文的归纳风格)是未来获取价值的好方法。
演绎和归纳编码风格
手动编码开放式问题的两种方法是什么,哪一种更好?
演绎编码使用预先存在的框架
使用演绎编码时,你从预定义的代码集开始。这些代码可能来自现有的分类法、覆盖业务部门的代码或行业特定术语。这通常意味着这些代码是由项目目标驱动的,旨在报告特定问题。例如,如果调查是关于客户体验的,你已经知道你对因呼叫等待时间产生的问题感兴趣,那么这将是其中一个代码。这有一个好处,就是你可以保证你感兴趣的项目会被覆盖,但你需要小心偏见。当你使用预先存在的编码框架时,你会带有一种偏见,预设答案的可能性,并可能会遗漏自然从人们的回应中出现的主题。
当你使用预先存在的编码框架时,你会带有一种偏见,预设答案的可能性,并可能会遗漏自然从人们的回应中出现的主题。
归纳编码使用抽样和重新编码
替代的编码风格是归纳法,通常称为“扎根法”。在这种方法中,你一开始没有任何代码,所有的代码都直接来源于调查回应。这个过程是迭代的:
-
你读取了一份数据样本
-
创建覆盖样本的代码
-
重新阅读样本并应用代码
-
阅读新的数据样本,应用代码并记录代码不匹配的地方
-
创建新的代码
-
返回并重新编码所有已编码的回应
-
从第 4 步重复。
如果你添加了一个新的代码,将现有的代码拆分成两个,或改变其描述,请确保审查所有可能受到影响的回应的代码。否则,调查开始和结束时相近的回应可能会被分配不同的代码!
如何选择好的代码
在决定创建哪些代码时,需要考虑几件事。
-
确保覆盖。代码应覆盖尽可能多的相关调查回应。这意味着代码应比评论本身更通用,以便能够覆盖其他回应。当然,这需要与分析的有用性相平衡。例如,“产品”是一个非常广泛的代码,会有很高的覆盖率,但有用性有限。另一方面,“产品在使用 3 小时后停止工作”是非常具体的,不太可能覆盖许多回应。
-
避免共性。虽然有相似的代码是可以的,但它们之间应该有明显的区别。在数学中,这被称为正交性,表示两个事物的独立性。“客户服务”和“产品”是正交的,而“客户服务”和“客户支持”可能有细微的差别,但不是正交的,可能作为相同的代码更好。
-
创建对比。尽量创建相互对比的代码。这允许将同一事物的正面和负面元素分别提取。例如,“有用的产品功能”和“不必要的产品功能”就是具有对比性的代码。
-
减少数据。我们来看看两个极端的情况:代码数量等于评论数量,或者每个代码适用于所有响应。在这两种情况下,编码练习都是毫无意义的。因此,试着考虑如何减少数据点的数量,以便有效地进行分析。上述“产品使用三小时后停止工作”的例子就未能通过这一测试。更有效的代码应该是“产品使用后停止”。
编码的准确性
无论使用演绎过程还是归纳过程,都很难确保一致性。这是因为编码者的思维框架和过去的经验会影响他们的解释方式。这意味着不同的人在面对相同的任务时,很可能会对适当的代码产生不同的看法。实际上,一项研究表明,同一个人在不同的日子对同一份调查进行编码会产生不同的结果。
通过记录所有决策和思考过程来缓解这个问题。应用现有代码或决定是否需要新的代码时,请回顾这些记录。这一过程还意味着代码的选择可以得到证据的支持。
确保准确性的另一种更昂贵的方法是通过有意测试编码的可靠性。‘测试—重测’方法涉及同一个人对数据进行两次编码而不查看结果。‘独立编码者’方法则在同一份调查中使用第二个编码者。在这两种情况下,结果会被比较一致性,并根据需要进行修正。
摘要 / TLDR
-
数据科学家在分析文本时可以向定性研究者学习
-
编码是将代码分配到开放性回答或其他类型的文本数据上的过程,然后这些文本可以像数值数据一样进行分析。
-
代码框架是一组代码,可以是平面的(使用更简单更快速)和层次的(更强大)
-
代码框架需要具有良好的覆盖面,并且灵活以允许对开放性回答进行全面和多样化的分析。
-
归纳编码(没有预定义的代码框架)更困难,但偏差较小
-
在创建代码时,请确保它们彼此对比并减少数据
-
准确性意味着一致的编码,这可以通过在编码过程中记录和回顾决策来实现。
简介: Alyona Medelyan,博士,专注于从文本中提取意义。她是一位自然语言处理和机器学习领域的顾问,并在这些主题上进行国际演讲。在 Thematic 她帮助企业理解客户反馈和情感。关注她的 Twitter @zelandiya 或通过 medelyan.com 联系她。
原文。经许可转载。
相关:
-
自然语言处理的内部更新
-
HPE Haven OnDemand 文本提取 API 开发者备忘单
-
文本分析:是什么让你的手机比调查分析更智能
我们的前三个课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业道路。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 工作
更多相关内容
数据科学家是否应该对 COVID19 和其他生物事件进行建模
原文:
www.kdnuggets.com/2020/04/data-scientists-model-covid19-biological-events.html
评论
数据科学家的角色多年来一直在扩展。从用统计数据处理数字,到构建可扩展的数据库,再到构建生产级的机器学习或深度学习模型。生物统计学和流行病学是统计学的高度专业化领域,大学为其提供不同的学位课程。
生物统计学家使用的统计技术可能是你目前的日常数据科学家从未听说过的。这是一个很好的例子,说明缺乏领域知识会暴露你作为一个不知所措、只是跟随趋势的人。虽然社区中已知建立预测模型以查看谁更可能在泰坦尼克号上幸存或对鸢尾花进行分类作为数据科学之旅的一部分,但对于如全球大流行这样正在杀害数十万人甚至数百万人的更严重问题,或许应该给予更多的谨慎。
我们的三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全领域的职业轨道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你组织的 IT 需求
流行病学家和生物统计学家
流行病学是研究疾病在特定人群和环境中的频率和分布的学科。流行病学是公共健康的重要方面,因为它涉及对人群中疾病的理解和风险评估。流行病学家通常具有生物学、医学和病毒学等领域的科学背景。这是流行病学家建立领域知识的方式,从而能够理解他们所建模的内容。
生物统计学是将统计技术应用于健康相关领域的科学研究,包括医学、流行病学和公共卫生。拥有统计学学位的人可能会成为零售、人口统计、房地产、经济学、金融等领域的数据分析师。生物科学则是一个完全不同的领域,需要单独的资格认证。
现在,数据科学家可能来自非统计/数学背景,突然开始建模疾病数据以展示他们的技能。这并不是展示你知识的正确数据类型。每个人都需要知道自己是否有能力正确处理这些数据。已经发布了大量虚假和误导性内容,这进一步玷污了数据科学家的职业,因为这表明仍然有人对数据一无所知,只关心使用 Python 中的随机森林或 xgboost 模型,而不是 R(因为 R 显然已经不再像以前那样酷)并在 LinkedIn 上推广,希望能让招聘人员或高级数据科学家留下深刻印象。
COVID-19 预测、达克效应和数据科学家的希波克拉底誓言由 Raj Iqbal 完美总结了这一点。达克效应简单来说就是当一个人高估自己的能力时,实际上他们完成任务的能力非常低。
预测 COVID-19
以下内容摘自这里。
预测和时间序列专家 Rob J Hyndman 表示,为了使预测相对准确,有三个主要因素:
-
我们对影响其因素的理解程度;
-
可用数据的多少;
-
预测是否会影响我们试图预测的内容。
例如,明天的股票价格预测准确性较低,因为上述因素 1 和 3 并未得到满足。首先,影响股票价格变化的因素并没有得到特别好的理解,并且至少部分依赖于人类心理学。其次,广泛宣传的股票市场预测可以直接影响许多投资者的行为。
上述三个因素并非都适用于疾病,但我们可以看到第二点因实际病例数量被低估而成为问题。第二个问题是,COVID-19 的预测可能会影响我们试图预测的内容,因为各国政府正在做出反应,有些比其他国家更好。除非能够考虑到减缓传播的各种措施,否则使用现有数据的简单模型将会产生误导。
他和其他科学家使用分 compartments 流行病学模型来模拟感染过程。最简单的模型是基于将人口中的活跃个体分类为易感、传染或康复——因此它们被称为 SIR 模型。
结论
尽管数据科学家的任务是分析数据以提供见解,但我们有责任认识到我们的才能应如何使用,以及何时退一步让真正的专家带领前进。传染病建模是一个过于专业和敏感的领域,不应盲目发表意见。我们需要意识到我们何时被需要,何时不被需要。
相关内容:
-
用 AI 对抗冠状病毒:利用深度学习和计算机视觉改进检测
-
数据科学家应避免的 5 个统计陷阱
-
数据科学家应对 COVID-19 的 5 种方式及 5 个应避免的行动
更多相关主题
数据科学家,你需要知道如何编码
原文:
www.kdnuggets.com/2021/06/data-scientists-need-know-code.html
评论
由 Tyler Folkman,Branded Entertainment Network 的 AI 负责人

图片由 Roman Synkevych 提供,来源于 Unsplash
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 工作
我知道你在想什么——“我当然知道如何编码,你疯了吗?”
你每天在 Jupyter 笔记本中编写大量代码,数百行。显然,你会编码。并不是说你是在手动或在 Excel 中训练机器学习模型(尽管这是可能的)。
那我可能是什么意思呢?
我不愿意打击你,但大多数数据科学家做的编码我不认为是真正的编程。你是使用编程语言作为探索数据和构建模型的工具。但你创建的程序并不是你真正考虑的,只要它能完成工作就好。
你的代码通常很混乱,可能甚至不能按顺序运行(这要归功于笔记本)。你可能从未编写过单元测试,也几乎不了解如何编写良好、可重用的函数。
但是,随着数据科学越来越多地嵌入到实际产品中,这种类型的代码将不够用。你不能信任糟糕的代码,把你不信任的代码放到产品中会导致大量的技术债务和糟糕的用户体验。
“好吧,好吧,但我是一名数据科学家,不是软件工程师,”你说。我构建模型,清理代码是其他人的问题。虽然这在一些公司可能有效,但我现在深信,更好的模式是数据科学家学习如何编写更好的代码。你可能永远不会成为顶级的软件工程师,但数据科学家可以通过一些努力编写值得信赖并投入生产的代码。
从你的函数开始
在学习如何提升你的代码时,从你如何编写函数开始。大多数代码只是函数(或可能是类)的系列,如果你能学会编写相当好的函数,这将大大改善你的代码质量。
你的函数至少应该:
-
只做一件事
-
拥有文档。
-
使用良好的变量名。
虽然关于如何编写干净函数的书籍有很多,但这三个方面是一个很好的起点。
你不应该有一个函数看起来像是在尝试做超过一件事。一些迹象表明你的函数可能做得太多:
-
它的长度超过了一个屏幕,或者大约 30 行代码(根据我的经验)。
-
由于函数做的事情太多,清晰命名函数非常困难。
-
它包含了大量的 if/else 代码块,这些代码块实际上应该被拆分成独立的函数。
只做一件事的函数很重要,因为它使你的代码更容易理解、管理和测试(稍后会详细讲到测试)。
任何投入生产的函数都应该有文档字符串,该字符串应描述函数的功能,提供输入参数的信息,并可能提供一些简单的使用示例。未来你会感谢自己拥有良好的文档化函数,而其他人也会更容易理解你的代码。
最后,请使用易于理解和有用的变量名。太多的数据科学家习惯使用“a”、“a1”和“a2”这样的变量名。短小而无帮助的变量名在试验时更快输入,但在将代码投入生产时,确保你的变量名能帮助他人理解你的代码。
移除 Print 语句。
数据科学家常常使用 print 语句来显示发生的情况。然而,在生产环境中,这些 print 语句应当被移除(如果不再需要)或转换为日志语句。
日志记录应当是你与代码之间传达信息和错误的方式。一个值得查看的 Python 库是 Loguru,它使日志记录变得更简单。它自动处理了大多数麻烦的日志记录部分,感觉更像是使用 print 语句。
使用风格指南。
编程中的风格指南旨在使多人可以更轻松地在同一代码上工作,但使得这些代码看起来仿佛是由一个人编写的。
为什么这很重要?
当你拥有一致的风格时,代码的浏览和理解会变得更容易。使用风格指南时,发现 bug 会变得更轻松。遵循标准的代码编写方式会使你和他人更容易浏览代码。这意味着你不必花费太多时间去理解代码的格式,而可以专注于代码的功能及其是否正确有效。
PEP 8 可能是最广泛使用的 Python 风格指南。不过,还有很多其他风格指南。另一个受欢迎的风格指南来源是 Google,因为他们公开了内部风格指南。
重要的是你选择一种并尽量坚持。一个让这变得更容易的方法是使你的 IDE 检查样式错误,并设置样式检查,如果不遵循样式指南,阻止代码被推送。你还可以进一步提交,使用自动格式化工具,它会自动格式化你的代码以符合标准。Python 中一个流行的工具是 Black。
编写测试
我发现大多数数据科学家害怕测试,因为他们不太知道如何开始测试。
事实上,许多数据科学家已经在运行我所称之为临时测试。我发现数据科学家在笔记本中快速运行一些“健康检查”以验证新函数是很常见的。你通过一些简单的测试用例,确保函数按预期运行。
软件工程师称这个过程为单元测试。
不同的是,数据科学家通常会删除这些临时测试并继续前进。相反,你需要保存这些测试,并确保每次在代码推送之前都运行这些测试,以确保没有破坏。
要开始使用 Python,我建议使用 pytest。使用 pytest,你可以轻松创建测试,并一次性运行它们以确保它们通过。一个简单的开始方式是有一个名为“tests”的目录,在该目录内有以“test.”开头的 Python 文件。例如,你可以有“test_addition.py”。
*# content of test_addition.py*
**def** add(x, y):
**return** x + y
**def** test_add():
**assert** add(3, 2) == 5
通常,你会将实际的函数放在另一个 Python 文件中,并将其导入到你的测试模块中。你通常不需要测试 Python 加法,但这只是一个非常简单的例子。
在这些测试模块中,你可以保存你函数的所有“健康检查”。通常的好做法是不仅测试常见情况,还要测试边界情况和潜在错误情况。
注意:测试有许多不同类型。我认为单元测试是数据科学家开始测试的最佳选择。
做代码审查
在我们列出的编写更好代码的顶级事项中,最后但同样重要的是代码审查。
代码审查是指在你将代码提交到主分支之前,另一位在你领域内擅长编写代码的人对你的代码进行审查。这一步骤确保最佳实践得到遵循,并希望能够发现任何不良代码或错误。
审查你代码的人最好至少和你一样擅长编写代码,但即使让一个更初级的人审查你的代码也仍然可以非常有益。
人们有时会懒惰,并且很容易让这种懒惰影响到我们的代码。知道有人会审查你的代码是一个很好的激励,使你花时间编写优质代码。这也是我发现的最有效的改进方法。让更有经验的同事审查你的代码并提供改进建议是无价的。
为了让审查你代码的人更容易理解,尽量保持新代码量的小规模。小而频繁的代码审查效果更好。不频繁的大规模代码审查效果很差。没有人愿意审查上千行代码。这些审查往往提供较差的反馈,因为审查者无法花足够的时间真正理解这么多代码。

提升你的编码技能
我希望这篇文章能激励你花时间学习如何编写更好的代码。这并不一定很难,但确实需要时间和努力来提升。
如果你遵循这 5 个建议,我相信你会注意到你的代码质量有显著提升。
你的未来自己和同事会感谢你。
查看我的 免费课程,了解如何部署机器学习模型。
简介:泰勒·福克曼 是 Branded Entertainment Network 的 AI 主管。获取泰勒的免费 创建惊人数据科学项目的 5 步流程。
原文。经许可转载。
相关:
-
顶级编程语言及其用途
-
未来 5 年会出现数据科学工作短缺吗?
-
这些软技能可能决定你的数据科学职业生涯的成败
更多相关主题
数据科学家需要专业化以在科技寒冬中生存
原文:
www.kdnuggets.com/2023/08/data-scientists-need-specialize-survive-tech-winter.html

照片由Ingo Joseph提供
硅谷的温度最近很凉。毫无疑问,我们正处于科技寒冬。风险投资资金已经枯竭,数百家公司正在通过裁员来行使它们的权力,人工智能正在逼近每个人,导致额外的失业和不确定性威胁。
我们的前三大课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业的快车道。
2. Google 数据分析专业证书 - 提升您的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织的信息技术
数据科学家们感到困惑:我的工作安全吗?这也不奇怪。曾经被誉为最性感职业的工作现在看起来已经不那么吸引人了。
从整体来看,数据科学的工作前景仍然乐观——劳动统计局仍然预测未来十年将增长 36%,远高于美国平均行业增长率 5%。但正如成千上万的被裁数据科学家所告知的,统计数据并不能作为失业的盾牌。答案是什么?一些专家建议,专业化是脱颖而出并使自己不容易被解雇的最佳方式之一。“随着数据的影响力增长和技术的发展,数据团队中将需要特定的角色来最大化效率,”财富杂志的作者梅根·马拉斯写道。
我同意。任何数据科学家都会告诉你,这份工作会根据你老板当天需要什么而有所不同——电子表格、演示文稿、开发 ETL 管道或设计实验。

图片来自Twitter
所有数据科学家共有的特点是随着数据量和重要性的增长,职责也在扩展。
数据科学家可以通过专业化来更好地区分自己,而不是继续尝试做所有事情。通过选择一个技能或领域,更容易明确他们的价值主张,在竞争激烈的就业市场中保持相关性和价值。
为什么专业化能帮助数据科学家保住工作
在我开始使用StrataScratch之前,我是一个普通的通才数据科学家。我不断学习新技能和技术,以跟上快速发展的领域。但当然,有一天我意识到我需要与众不同。我决定专注于基础设施以及如何通过基础设施支持数据科学工作。我的基础设施工作改变了团队中数据科学家的工作方式,使他们能够比以前更快地交付模型和结果。
在专注于数据科学基础设施几年后,我在生物技术领域找到了数据战略的工作。我很快意识到我的专业化在就业市场上给了我显著的优势,因为拥有我这样特定技能和经验的人很少。这也意味着我能够获得更高的薪水和职位,因为我在一个焦点领域的深厚知识使我能够晋升到一个更高级别的位置,仅仅因为我拥有更多的知识和经验来影响团队中的其他数据科学家。
不过,这只是我的故事。专业化可以以几种不同的方式提供帮助,具体取决于你当前的情况和总体目标。

图片来源:作者
争取工作安全
在我最喜欢的《老爸老妈的浪漫史》一集中,马歇尔因朋友巴尼的帮助而在一家律师事务所找到了工作。巴尼告诉他必须成为“某种”人物。也许是零食人员、按摩人员或游戏人员。那是避免被变化无常的老板解雇的唯一办法。
有时候情景喜剧说得对。通才可以被其他通才替代。作为专家,你的价值要高得多。很容易说:“不,我们不能解雇马歇尔,因为他是我们的营销分析人员。他是帮助我们建立所有营销和销售管道的人。他对团队至关重要。”
击败竞争对手
对数据科学家的需求很大,但对数据科学学位的需求也在增长。再加上公司现在开始考虑非传统背景的人,你就有了竞争的配方。

图片来自Geekwire
通过专注,你可以减少工作市场上的竞争。例如,如果你专注于自然语言处理(NLP),你确实会限制可以竞争的工作数量。但你将会更受欢迎,因为 NLP 专家远少于数据科学家。
追逐金钱
老实说,追求数据科学职业不能仅仅是为了金钱。专注也是如此。但如果你发现自己对工作中的某个特定部分感兴趣,值得知道的是,专家的薪资高于普通人,不论普通人掌握多少技能。
看看 Indeed 的数据,作为一个参考:数据科学家的平均基本工资是每年 127k 美元。相比之下,机器学习工程师的薪资为KaTeX parse error: Expected 'EOF', got '#' at position 156: …kend-devs-make/#̲:~:text=Backend…158k。
如何成为专注的数据科学家
好的,你已经认识到专注的价值。那么,你该如何专注呢?让我们来分解步骤。

图片由作者提供
从你的兴趣开始
如果你要专注,你需要确保你对你将要专注的领域感兴趣。这不能只是为了钱;还必须是你喜欢做的事情。从你的兴趣开始。
你对什么充满热情?你发现自己在空闲时间里从事什么样的项目?通过确定你的兴趣,你可以开始看到自己可能专注的领域。了解你热衷的工作类型的一种方法是尝试理解你对哪些工作感到兴奋?例如,在一个项目中,你通常更兴奋于做基础设施工作?还是建模工作?或者数据清理工作?弄清楚你喜欢做什么,然后深入探索。
观察技术景观
技术景观不断变化,保持对最新趋势的了解非常重要。例如,看看 Meta。在花费了数年和巨额资金投入到元宇宙后,他们现在正在转向人工智能,以及其他所有主要科技公司。
一旦你列出了感兴趣的主题清单,寻找那些活动频繁和需求旺盛的领域。这将帮助你确定可以专攻的领域以及可能有机会让你脱颖而出的地方。
一个很好的地方是 Indeed。 这篇文章虽然有点旧,但我喜欢这个想法。作者从 Indeed 抓取了提到特定语言和城市的招聘信息。他们发现 R、SQL 和 Python 位居前列。你还可以查看StackOverflow 的开发者调查。他们对热门技术有相当准确的把握,因此值得一看。
寻找免费的课程和证书
一旦你确定了感兴趣的领域,寻找免费的课程和证书来帮助你提升技能。不要从昂贵的课程开始;先从免费的课程入手,看看这些知识是否能扎根。
目前有很多免费的资源,包括在线课程、书籍和练习平台。利用它们来提升你的数据科学技能和知识。一旦你感觉有了足够的信心,你可能会想做一些项目来建立你的作品集。
在工作中请求新项目
如果你已经在担任数据科学家的职位,寻找展示新技能的机会。与老板和同事讨论你的兴趣,看看是否有任何项目可以让你发展技能。通过接受工作中的新挑战,你可以在你选择的专业领域中积累经验和专业知识。
例如,如果你对自然语言处理感兴趣,你可以申请参与一个涉及分析客户反馈数据或开发客户服务聊天机器人的项目。如果你更倾向于计算机视觉,看看是否有与图像识别或视频分析相关的项目,你可以参与其中。
有时候,业务需求决定了你下一个项目的方向。例如,作为数据科学家,我的第一个项目之一是创建一个自然语言处理算法,用于通过 Twitter 推文跟踪食源性疾病爆发。我没有建立自然语言处理算法的培训,因此我不得不从头开始,并在项目期间尽可能多地学习。这是一个极好的学习经历,有助于提升我作为数据科学家的技能。
更换工作
最终,你可能会面临跳槽的时机。如果你的老板只把你看作是一个全能的数据科学家,你可能需要转到一家新公司,展示你新的职业方向。有时候,你可能会对雇主的业务需求(例如,总是相同的需求)、技术栈和团队结构感到厌倦。如果你每天上班没有激情学习,那么可能是时候探索让你成长和学习的新机会了。
寻找与你新技能匹配的职位,并申请这些职位。通过换工作,你可以重新开始,并向新雇主展示你的新专业技能。
沉没成本还是专业化——选择权在你
作为一名数据科学家,专注是明智的。但希望这不仅仅是一个好的职业选择——专注于我的领域给了我更多的角色清晰度,以及乐趣和目标。我的老板们对我应该做的事情有了更好的理解,并能够给我更多有用的 KPI。我更清楚如何创造价值。我也能够满足我的兴趣。
按照这些步骤,你可以开始专注于成为一名数据科学家,并在竞争激烈的就业市场中脱颖而出。记住,专注不仅仅是为了提升你的就业能力;它是关于追求你的兴趣,并建立一个你喜欢的职业生涯。祝好运!
Nate Rosidi 是一名数据科学家,专注于产品策略。他还是一名兼职教授,教授分析学,同时也是 StrataScratch 的创始人,该平台帮助数据科学家通过顶级公司的真实面试问题来准备面试。可以通过 Twitter: StrataScratch 或 LinkedIn 与他联系。
相关话题
数据科学家应该使用 LightGBM 的 3 个理由
原文:
www.kdnuggets.com/2022/01/data-scientists-reasons-lightgbm.html
介绍
有许多优秀的 Python 提升库供数据科学家利用。其中包括 XGBoost 和新推出的 CatBoost 算法。然而,有一种算法结合了这些算法的某些特征,使其成为数据科学家的必备工具。虽然这些好处在学习和教育方面很棒,但更重要的是,它在需要快速的专业环境中表现尤为出色。接下来,我将讨论 LightGBM [1] 的好处以及它们如何与您的数据科学工作密切相关。
分类编码

图片由 米哈伊尔·瓦西里耶夫 提供,来自 Unsplash [2]
这个库的最佳特性之一是对分类特征的支持。虽然很多数据科学家可能使用独热编码为一个分类特征创建大量新列,但这个库允许你使用 categorical_feature 参数来指定分类特征。
虽然独热编码很有用,但在学术界,例如在 Jupyter Notebook 中,它在专业环境中可能不那么有用。假设你有 10 个分类特征,每个特征有 100 个独特的 bin,这将扩展到 1,000 个新列。这不仅使你的数据框变得稀疏,而且还使你的模型变得非常缓慢。这种稀疏性的另一个令人焦虑的结果是,当你需要将特征转换为生产代码供软件工程师在你的预测服务和部署中使用时(如果你有这种设置的话),这对双方来说可能会令人困惑和难以处理。
以下是使用 LightGBM 进行分类编码的一些好处:
-
更容易对分类特征进行编码
-
更容易使用
-
更容易与其他数据科学家、软件工程师、后台工程师和产品经理合作
-
可以保留原始列名
-
可以利用分类特征的好处,而不是使用独热编码进行传统的数值转换
-
这些好处可以最终使你的模型更快、更准确
快速

图片由 安迪·比尔斯 提供,来自 Unsplash [3]。
不仅仅是对类别特征进行编码使你的模型更快,LightGBM 还具备一些其他技巧来提高训练和预测速度。LightGBM 使用了 GOSS 和 EFB,或称为基于梯度的单侧采样(Gradient-based One-Side Sampling)和排他特征绑定(Exclusive Feature Binding),以及基于直方图的分裂方法。
以下是为什么快速的 LightGBM 模型对专业人士有用的原因:
-
并不是每个工作都允许你花费几周或几个月来制定模型,有些甚至可能希望在同一周内得到一个——或者至少是一个概念验证模型
-
这种更快的建模可以让你更快地测试特征和参数,最终使你在更快的环境中工作得更好
-
可以测试更多特征,而不会像其他算法那样显著减慢模型速度
它简单、快速,当有很多人依赖你的模型时,速度快可以让你更高效地帮助业务。
准确

图片由 Silvan Arnet 拍摄,来源于 Unsplash [4]。
XGBoost、CatBoost 和 LightGBM 都是准确的模型。是的,最终这取决于你的问题、特征和数据,但总体而言,这些算法在你执行了必要步骤后会产生准确的结果。
因为你可以使用类别特征,所以你更有可能得到一个准确的模型,比起只能执行独热编码的算法要更好。LightGBM 的分裂方式也可以导致更准确的模型。不过,重要的是要注意你需要防止过拟合。
以下是 LightGBM 更准确的一些原因,以及它如何在职业上帮助你的:
-
分裂方法
-
类别特征支持
-
当然,每个人都希望有一个更准确的模型,特别是在业务中(只需要确保你没有过拟合)
总结
虽然这些好处很简单,但它们非常重要,并且使你的工作变得更加轻松。因此,你的公司——包括利益相关者和工程师,会对你使用 LightGBM 感到满意。
总结一下,这里是一些在职业上使用 LightGBM 的主要好处:
-
类别编码
-
快速
-
准确
我希望你觉得我的文章既有趣又有用。如果你同意或不同意这些好处,请随时在下面评论。为什么或为什么不?你认为 LightGBM 还有哪些其他重要的好处需要指出?这些内容当然可以进一步澄清,但我希望我能够对 LightGBM 提供一些启示。
请随时**查看我的 Medium 个人资料**。
参考文献
[1] 微软公司,LightGBM 文档,(2022)
[2] 图片由 Mikhail Vasilyev 提供,来源于 Unsplash,(2017 年)
[3] 图片由 Andy Beales 提供,来源于 Unsplash,(2015 年)
[4] 图片由 Silvan Arnet 提供,来源于 Unsplash,(2020 年)
Matthew Przybyla (Medium) 是位于德克萨斯州 Favor Delivery 的高级数据科学家。他拥有南美 Methodist University 的数据科学硕士学位。他喜欢撰写关于数据科学领域的趋势话题和教程,从新算法到数据科学家日常工作经验的建议。Matt 喜欢突出数据科学的商业方面,而不仅仅是技术方面。欢迎通过 LinkedIn 联系 Matt。
我们的前 3 名课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业的快车道。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织在 IT 领域

777

被折叠的 条评论
为什么被折叠?



