华为数据分析面试100题(附答案)

共计6大部分,100道常见数据分析面试题,内含答案

第一部分:SQL

1. sql 如何解决数据倾斜问题?

数据倾斜通常发生在数据分布不均匀时,可以通过调整数据分布、使用更合适的分区策略、优化查询语句等方式解决。

2. SQL中 ,having  和 where  的 区 别 有 哪 些 ?

WHERE用于过滤行,而HAVING用于过滤分组后的结果集。

3. SQL中 ,union和 join 的 区 别 有 哪 些 ?

UNION用于合并两个或多个查询结果集,去除重复行;JOIN用于连接两个表,根据指定的条件返回匹配的行。

4. SQL 语句中的执行顺序是怎样的?

通常,SQL语句的执行顺序是:FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY。

5.SQL如 何 实 现 去 重 操 作 ?

使用DISTINCT关键字可以去除查询结果中的重复行。

6. SQL中,count(*)、count(字段) 、count(distinct字 段 ) 的 区 别 是 什 么

  COUNT(*) 用于统计表中所有记录的数量,包括NULL值;

  COUNT(字段名) 用于统计指定字段中非NULL值的数量;

    而 COUNT(DISTINCT 字段名) 用于统计指定字段中不同(唯一)非NULL值的数量。

7.sql  如 何 将'yyyy-MM-dd' 的 日 期 格 式 转 换 为'yyyyMMdd' 形 式 ?

SELECT CONCAT(DATE_FORMAT(your_date_column, '%Y%m%d')) AS formatted_date
FROM your_table;

8. sql中如何求出两 个'yyyyMMdd' 格 式 的日期差多少天 ?

SELECT DATEDIFF(end_date, start_date) AS days_difference
FROM your_table;

9. sql 如 何 将 时 间 戳 转 换 为'yyyy-MM-dd' 格 式 ?

SELECT DATE_FORMAT(FROM_UNIXTIME(your_timestamp_column), '%Y-%m-%d') AS formatted_date
FROM your_table;

10. sql中,if 和 case when 的区别有哪些 ?

IF condition THEN
    -- 如果条件为真,执行这里的代码
ELSEIF condition THEN
    -- 如果第一个条件为假,但第二个条件为真,执行这里的代码
ELSE
    -- 如果所有条件都为假,执行这里的代码
END IF;
CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE resultN
END

11.sql中,如何求字段整体的标准差和均值 ?

SELECT AVG(column_name) AS mean, 
STD(column_name) AS standard_deviation,
STDDEV_SAMP(column_name) AS standard_deviation
FROM your_table;

12. sql中,什么是笛卡尔积 ? 笛卡尔积一般出现在什么场景下?

假设表A有m行,表B有n行,当它们进行笛卡尔积操作时,结果集将有m*n行。

13.sql中,rank、dense rank、row number的区别是什么 ?

rank:跳跃排序,1 2 2 4

dense_rank:连续排序 1 2 2 3

row_number:没有重复值的排序 1 2 3 4

14.  sql中 ,除 了rank以外还有哪些窗口函数 ?

ROW_NUMBER():为每个分组内的行分配一个唯一的序号,序号从1开始。

DENSE_RANK():为每个分组内的行分配一个唯一的序号,但当有并列时,下一个序号会跳过并列的序号,直接分配下一个序号。

NTILE(n):将分组内的行分成n个桶,并为每个桶分配一个序号。

SUM():计算分组内的总和。

AVG():计算分组内的平均值。

MIN():计算分组内的最小值。

MAX():计算分组内的最大值

FIRST_VALUE():返回分组内第一个值。

LAST_VALUE():返回分组内最后一个值。

LAG():返回分组内当前行之前第n行的值。

LEAD():返回分组内当前行之后第n行的值。

PERCENT_RANK() 计算分组内当前行的百分比排名。

CUME_DIST() 计算分组内当前行的累积分布值。

PERCENTILE_CONT() 和 PERCENTILE_DISC():计算分组内连续或离散的百分位数。

SELECT 
    column1, column2,
    ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS row_num
FROM 
    your_table;

15. 简述一下max()  聚合函数和窗口函数max(A)over(partition by B)的区别

聚合函数
SELECT column_name, MAX(other_column) AS max_other_column
FROM table_name
GROUP BY column_name;
窗口函数
SELECT column_name, MAX(column_name) OVER (PARTITION BY column_name) AS max_value
FROM table_name;

区别总结

  • 聚合函数MAX()函数返回整个数据集或由GROUP BY子句指定的分组中的最大值,结果集的行数会减少。
  • 窗口函数MAX()函数作为窗口函数时,返回每个分组内的最大值,但结果集的行数与原始数据集相同,每行都会显示其所在分组的最大值。

16.   窗口函数和where的 执行顺序孰先孰后 ?

窗口函数是在WHERE子句之后、SELECT子句之前执行的。

17.sql 中正则化函数(正则表达式Regular Expressions)一般如何使用?,

SQL使用REGEXPRLIKE关键字来执行正则表达式匹配。REGEXPRLIKE的同义词。

SELECT column_name
FROM table_name
WHERE column_name REGEXP 'pattern';

18.  sql 中如何将int 类型的字段转换为string 类型 ?

SELECT CAST(column_name AS CHAR) AS string_column
FROM table_name;

-- 或者

SELECT CONVERT(column_name USING CHAR) AS string_column
FROM table_name;

19. sql 中,leftjoin、rightjoin、inner join有什么差别 ?

SELECT FORMAT(column_name, 2) AS formatted_column
FROM table_name;

20. sql如何将类型为float的字段保留两位小数?

第二部分:概率论

21 . 两个人轮流抛硬币,硬币表面均匀,正反面概率均为50%。抛到正面 者胜利,假如抛硬币 一 直抛到有人获胜为止,那么先抛硬币的人获胜的概率是多少? 

=100%

22. 已知随机变量X 服从指数分布 λ ( 2 ) , 求随机变量X 的数学期望与方差  

随机变量X的数学期望是0.5,方差是0.25。

23. 箱子里有15个球,其中10个红球,5个白球。从中抽5个球,求5个球中有3个以上是白球的概率? 

至少有3个是白球的概率是1/6

24.X 服从正态分布N(0,2),  已知Y=2X+5, 求随机变量Y 的均值与标准差

25. 甲运动员罚球进球概率为50%,甲运动员罚球10次中,有3次以上进球的概率?

26. 已知随机变量X服从均匀分布U(3,6), 求 P(X>=4)

27. 已知有两个管道工甲和乙,他们其中一人会被指派维修某下水道。甲  员工维修成功概率为50%,乙为30%,并且甲和乙被指派的概率分别 为70%和30%。求管道会被维修成功的概率

28. 假设某国家没有生育限制,且该国家的夫妻生孩子会直到生到男孩为 止,在没有堕胎等情况的假定下,那么该国家在 一段时间内生下来的男孩和女孩的比重理论上应该是?

29.  求伯努利分布B(0.5)   的数学期望和方差

30.  已知X和Y分别服从正态分布N(4,2),N(1,3), 在 X和Y相互独立的情况下,求随机变量XY 的均值与标准差

第三部分:数理统计

31.  什么是中心极限定理?

 中心极限定理说明,在一定条件下,大量独立随机变量之和趋近于正态分布(高斯分布),无论原始随机变量的分布如何。

32.  什么是置信区间?

32.  能不能解释下什么是置信度a?

33.  聊一聊双样本t 检验与配对样本t 检验的差别?

34.  解释一下中心极限定理和置信区间的关系?

35.  描述 一 下假设检验与置信区间的关系?   

36.  t 检验与z 检验有何差异?

37. 为什么t检验需要进行方差齐次性检验?

38. 聊一聊什么是单因素方差分析 ?

39. F检验的用途有哪些?

40.  描述一下一类错误和二类错误的差异 ?

41.  如何同时缩小一类错误和二类错误 ?

42.   一类错误和二类错误哪个更严重 ?

第四部分:机器学习

45.  线性回归普通最小二乘法(Ordinary Least Squares, OLS)运用的经典基本假设有哪些?

线性关系:自变量(X)与因变量(Y)之间存在线性关系,即模型可以表示为 Y = β0 + β1X1 + β2X2 + ... + βnXn + ε,其中β是回归系数,ε是误差项。

随机抽样:数据应该是随机抽样得到的,这样样本能够代表总体。

无完全多重共线性:自变量之间不应该存在完美的线性关系,即没有一个自变量是另一个自变量的完美线性函数。

误差项的期望值为零:误差项的期望值应该为零,即 E(ε) = 0,这意味着回归线在总体上是无偏的。

同方差性(Homoscedasticity):对于所有的观测值,误差项具有恒定的方差,即不存在异方差性(Heteroscedasticity)。

误差项的独立性:误差项之间相互独立,即一个误差项的值不应该依赖于另一个误差项的值。

正态分布的误差项:在大样本的情况下,误差项应该呈正态分布,这有助于进行假设检验和构建置信区间。

无异常值或极端值:数据中不应该包含异常值或极端值,这些值会对OLS估计产生不成比例的影响。

模型的适用性:所选模型应该能够合理地描述数据中的关系,即模型应该适合数据。

46.  多重共线性是什么 ? 如何解决多重共线性问题 ?

多重共线性(Multicollinearity)是指在多元线性回归模型中,两个或多个自变量之间存在高度相关性。这种相关性可能导致回归系数估计的不稳定性和不准确性。在极端情况下,多重共线性可能导致回归系数的符号与预期相反,或者使得某些系数的估计值变得非常大或非常小,甚至无法估计。

多重共线性的后果:

1.系数估计的不稳定性:多重共线性使得回归系数的估计值对数据中的微小变化非常敏感。

2.系数估计的不准确性:由于共线性,系数的标准误差可能被高估,导致系数的显著性检验结果不可靠。

3.模型预测能力的降低:多重共线性可能降低模型预测新数据的能力。

如何解决多重共线性问题?

解决多重共线性问题的方法有多种,以下是一些常见的方法:

1.变量选择:从模型中移除一些高度相关的变量,只保留对因变量影响最大的变量。

2.增加样本量:更多的数据可以帮助区分变量之间的关系,从而减少共线性的影响。

3.主成分回归(Principal Component Regression, PCR):通过主成分分析(PCA)将原始变量转换为一组不相关的主成分,然后使用这些主成分进行回归分析。

4.岭回归(Ridge Regression):通过在回归模型的损失函数中加入一个正则化项(L2惩罚项),来减少系数的大小,从而降低共线性的影响。

5.偏最小二乘回归(Partial Least Squares Regression, PLSR):结合了主成分分析和多元线性回归,通过提取对因变量解释能力最强的成分来构建模型。

6.变量变换:对变量进行变换(如对数变换、平方根变换等),以减少变量之间的相关性。

7.使用先验信息:如果可能,利用领域知识或先验信息来选择变量或构建模型。

8.模型诊断:使用统计诊断工具(如方差膨胀因子VIF)来检测和量化共线性问题。

在实际应用中,选择哪种方法取决于数据的具体情况和研究目的。通常,首先尝试通过变量选择和增加样本量来解决共线性问题。如果这些方法不可行或效果不佳,可以考虑使用主成分回归、岭回归或偏最小二乘回归等统计方法。在任何情况下,都应仔细检查模型的假设,并在必要时进行模型诊断,以确保模型的稳健性和可靠性。

46. 描述一下异方差性是什么,如何克服异方差性?

47. 什么是内生变量问题?如何解决?

48. 简述有监督学习和无监督学习的差异

  1. 目标差异

    • 有监督学习:目标是训练一个模型,使其能够预测或决定未见过的数据的输出标签。这通常涉及到分类(例如,判断邮件是否为垃圾邮件)或回归(例如,预测房价)任务。
    • 无监督学习:目标是探索数据的内在结构和模式,没有给定的标签或输出。这通常涉及到聚类(例如,市场细分)或关联规则学习(例如,购物篮分析)。
  2. 数据标签

    • 有监督学习:使用标记过的训练数据,即每个训练样本都有一个对应的标签或结果。
    • 无监督学习:使用未标记的训练数据,模型需要自行发现数据中的结构。
  3. 模型复杂度

    • 在有监督学习中,模型的复杂度通常由预测任务的复杂性决定。
    • 在无监督学习中,模型的复杂度可能由数据的内在结构决定,这可能更加难以量化。
  4. 应用场景

    • 有监督学习:适用于有明确输出变量和足够标记数据的场景,如图像识别、语音识别等。
    • 无监督学习:适用于数据探索、发现隐藏模式或数据压缩的场景,如客户细分、异常检测等。
  5. 评估方法

    • 有监督学习:可以使用准确率、召回率、F1分数等指标来评估模型性能。
    • 无监督学习:评估较为困难,可能需要使用聚类有效性指标,如轮廓系数(Silhouette Coefficient)等,或者依赖领域专家的评估。
  6. 算法示例

    • 有监督学习:常见的算法包括决策树、支持向量机(SVM)、神经网络、线性回归、逻辑回归等。
    • 无监督学习:常见的算法包括K-means聚类、层次聚类、主成分分析(PCA)、自编码器等。
  7. 对数据的要求

    • 有监督学习需要高质量、标记准确的数据集。
    • 无监督学习可能更能容忍数据中的噪声和异常值,因为它们不需要标记数据。

49. 常用的有监督学习的基础算法有哪些 ?

有监督学习:常见的算法包括决策树、支持向量机(SVM)、神经网络、线性回归、逻辑回归等。

50. 简述一下参数模型与非参数模型的区别?

51. 逻辑回归模型是分类模型还是回归模型 ?

分类

52. 能否一句话概括一下什么是逻辑回归模型 ?

53. 感知机模型和SVM模型的差别 ?

54. 决策树模型的优缺点 ?

55. 决策树算法计算信息增益的衡量标准有哪 些 ?

56. 决策树ID3 、C4.5 、CART三种算法之间有什么区别 ?

57. 决策树如何降低过拟合的程度?

58. 决策树算法在sklearn当中有哪些关键的超参数?

59. 什么是超参数 ? 描述一下KNN 算法的超参数有哪些?

60. bagging 和 boosting 的区别是什么?

61. 简述 一 下随机森林与xgboost的 区 别

62. 描述一下xgboost 和GBDT 的关系?

63. 集成学习相比于普通基础算法的优势体现在哪?

64. 如何评价分类模型的优劣?

65.如何评价回归模型的优劣 ?

66.有哪些处理样本不均衡问题的处理方法 ?

67. 为什么会发生过拟合和欠拟合,怎么解决模型的过拟合和欠拟合的问题 ?

68. 解释一下什么是偏差和方差和泛化误差

69. 聚类模型有哪些 ?

70. k-means聚类的k如何确定 ?

71.k-means聚类的优缺点 ?

72.k-means聚类和层次聚类的差异 ?

73.k-means聚类如何更好地规避初始点的选择对模型造成的误差 ?

74. k-means 聚类 和DBSCAN 模型的差异和优缺点

75. PCA 是什么 ?

76. 如何确定PCA保留几个主成分 ?

77.PCA一般在什么场景下使用 ?

78. LDA(Linear Discriminant Analysis) 和PCA的差异?

第五部分:Python

79. Python有 哪 些 数 据 结 构

80. python中,元组和集合的区别是 ?

81. python中,for 循环和while循环的区别是 ?

82. python 的pandas 如何实现排序?

83. python  的pandas  如何实现sq| 中 的left   join?

84. python 的pandas 如何实现sql 中的union?

85.   python的 pandas如何计算某列的平均值和中位数 ?

86. python 的pandas中,如何实现类似于sql 中的where 进行限制?

87.  python 的pandas 如何实现sql中的group by?

90.python 的pandas 中,如何删除某一列?

第六部分:AB实验

91/92. 解释一下什么是AB 实验 ?   

93/94. 有哪些方法可以检验分流的均匀性 ? 什么是AA 实验 ?

95. 如何确定实验最小样本量 ?

96. 如何确定实验周期?

97. AB实验和因果推断的关系?

98. 互斥实验与正交实验的区别?

99. AB 实 验 的 基 本 假 设 ?

100. 什么情况下不能使用随机分流实验进行增效度量 ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值