初级数据科学家面试题:Python、SQL、统计与机器学习

Milad Bonakdar
作者
用 Python、pandas、SQL、统计学、机器学习基础和项目讲解问题,系统准备初级数据科学家面试。
简介
数据科学结合了统计学、编程和领域知识,以从数据中提取见解。初级数据科学家应具备扎实的 Python、统计学、机器学习基础和数据处理工具方面的基础。
本指南涵盖了初级数据科学家必备的面试问题。我们将探讨 Python 编程、统计学基础、使用 pandas 进行数据处理、机器学习概念、数据可视化和 SQL,以帮助你为你的第一个数据科学职位做好准备。
Python 基础 (5 个问题)
1. Python 中的列表 (list) 和元组 (tuple) 有什么区别?
回答:
- 列表 (List): 可变的 (可以修改),用方括号
[]定义 - 元组 (Tuple): 不可变的 (不能修改),用圆括号
()定义 - 性能: 元组稍微快一些,并且占用更少的内存
- 用例:
- 列表:当你需要修改数据时
- 元组:用于固定集合、字典键、函数返回值
稀有度: 非常常见 难度: 简单
2. 解释列表推导式 (list comprehension) 并给出一个例子。
回答: 列表推导式提供了一种基于现有可迭代对象创建列表的简洁方法。
- 语法:
[expression for item in iterable if condition] - 优点: 更具可读性,通常比循环更快
稀有度: 非常常见 难度: 简单
3. 什么是 lambda 函数,你会在什么时候使用它们?
回答: Lambda 函数是匿名的、单表达式的函数。
- 语法:
lambda arguments: expression - 用例: 短函数、回调、排序、过滤
稀有度: 非常常见 难度: 简单
4. 解释列表的 append() 和 extend() 方法之间的区别。
回答:
- append(): 将单个元素添加到列表的末尾
- extend(): 将来自可迭代对象的多个元素添加到列表的末尾
稀有度: 常见 难度: 简单
5. 什么是 *args 和 **kwargs?
回答: 它们允许函数接受可变数量的参数。
*args: 可变数量的位置参数 (元组)**kwargs: 可变数量的关键字参数 (字典)
稀有度: 常见 难度: 中等
统计学与概率 (5 个问题)
6. 均值 (mean)、中位数 (median) 和众数 (mode) 之间有什么区别?
回答:
- 均值 (Mean): 所有值的平均值 (总和 / 计数)
- 中位数 (Median): 排序后的中间值
- 众数 (Mode): 最常出现的值
- 何时使用:
- 均值:正态分布的数据
- 中位数:偏斜数据或存在异常值
- 众数:分类数据
稀有度: 非常常见 难度: 简单
7. 解释方差 (variance) 和标准差 (standard deviation)。
回答:
- 方差 (Variance): 与均值的平均平方偏差
- 标准差 (Standard Deviation): 方差的平方根 (与数据相同的单位)
- 目的: 衡量数据的离散程度/分散程度
稀有度: 非常常见 难度: 简单
8. 什么是 p 值,你如何解释它?
回答: p 值是在假设零假设为真的情况下,获得至少与观察到的结果一样极端的结果的概率。
- 解释:
- p < 0.05: 拒绝零假设 (具有统计显著性)
- p ≥ 0.05: 无法拒绝零假设
- 注意: p 值不衡量效应量或重要性
稀有度: 非常常见 难度: 中等
9. 什么是中心极限定理?
回答: 中心极限定理指出,随着样本量的增加,样本均值的抽样分布趋近于正态分布,而与总体的分布无关。
- 要点:
- 适用于任何分布 (如果样本量足够大)
- 通常认为 n ≥ 30 就足够了
- 能够进行假设检验和置信区间估计
稀有度: 常见 难度: 中等
10. 什么是相关性 (correlation) 与因果关系 (causation)?
回答:
- 相关性 (Correlation): 两个变量之间的统计关系
- 因果关系 (Causation): 一个变量直接导致另一个变量发生变化
- 要点: 相关性并不意味着因果关系
- 原因:
- 混淆变量
- 反向因果关系
- 巧合
稀有度: 非常常见 难度: 简单
使用 Pandas 进行数据处理 (5 个问题)
11. 如何读取 CSV 文件并显示基本信息?
回答: 使用 pandas 读取和探索数据。
稀有度: 非常常见 难度: 简单
12. 如何处理 DataFrame 中的缺失值?
回答: 处理缺失数据的多种策略:
稀有度: 非常常见 难度: 简单
13. 如何在 pandas 中过滤和选择数据?
回答: 过滤和选择数据的多种方法:
稀有度: 非常常见 难度: 简单
14. 如何分组和聚合数据?
回答:
使用 groupby() 进行聚合操作:
稀有度: 非常常见 难度: 中等
15. 如何合并或连接 DataFrames?
回答:
使用 merge()、join() 或 concat():
稀有度: 非常常见 难度: 中等
机器学习基础 (5 个问题)
16. 监督学习和无监督学习有什么区别?
回答:
- 监督学习:
- 具有标记的训练数据 (输入-输出对)
- 目标:学习从输入到输出的映射
- 示例:分类、回归
- 算法:线性回归、决策树、SVM
- 无监督学习:
- 没有标记的数据 (只有输入)
- 目标:在数据中找到模式或结构
- 示例:聚类、降维
- 算法:K-Means、PCA、层次聚类
稀有度: 非常常见 难度: 简单
17. 什么是过拟合 (overfitting),你如何防止它?
回答: 当模型学习训练数据过于深入,包括噪声,并且在新数据上表现不佳时,就会发生过拟合。
- 迹象:
- 高训练准确率,低测试准确率
- 模型对于数据来说过于复杂
- 预防:
- 更多训练数据
- 交叉验证
- 正则化 (L1, L2)
- 更简单的模型
- 提前停止
- Dropout (神经网络)
稀有度: 非常常见 难度: 中等
18. 解释训练-测试集分割 (train-test split) 及其重要性。
回答: 训练-测试集分割将数据划分为训练集和测试集,以评估模型在未见过的数据上的性能。
- 目的: 防止过拟合,估计真实世界的性能
- 典型分割: 70-30 或 80-20 (训练-测试)
- 交叉验证: 更稳健的评估
稀有度: 非常常见 难度: 简单
19. 你使用哪些评估指标来衡量分类模型的性能?
回答: 不同的场景使用不同的指标:
- 准确率 (Accuracy): 总体正确率 (适用于平衡数据集)
- 精确率 (Precision): 在预测为正例的样本中,有多少是正确的
- 召回率 (Recall): 在实际为正例的样本中,有多少被找到了
- F1-Score: 精确率和召回率的调和平均值
- 混淆矩阵 (Confusion Matrix): 预测结果的详细分解
稀有度: 非常常见 难度: 中等
20. 分类和回归有什么区别?
回答:
- 分类:
- 预测离散的类别/类
- 输出:类标签
- 示例:垃圾邮件检测、图像分类
- 算法:逻辑回归、决策树、SVM
- 指标:准确率、精确率、召回率、F1
- 回归:
- 预测连续的数值
- 输出:数字
- 示例:房价预测、温度预测
- 算法:线性回归、随机森林回归
- 指标:MSE、RMSE、MAE、R²
稀有度: 非常常见 难度: 简单


