当前位置:   article > 正文

【数据挖掘工程师-笔试】2022年SHEIN 公司_shein 牛客 数据分析

shein 牛客 数据分析

公司:SHEIN

数据挖掘工程师

1 选择题(10个)

题库来自牛客网–数据挖掘工程师题目
(1)Naive Bayes
(2)XGBoost 和LightGBM原理及对比分析
(3)逻辑回归
。。。忘了

2 问答题(2个)

(1)逻辑回归为什么要对特征进行离散化

  • 非线性,逻辑回归属于广义线性模型,表达能力有限,单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,,能够提高模型表达力,加大拟合, 离散特征的增加和减少都很容易,易于模型的快速迭代;
  • 速度快,稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  • 鲁棒性,离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  • 稳定性:特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
  • 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

(2)机器学习中常见的几种最优化方法
在这里插入图片描述

  • 梯度下降法(Gradient Descent)
  • 牛顿法和拟牛顿法(Newton’s method & Quasi-Newton Methods)
  • 共轭梯度法(Conjugate Gradient)
  • 启发式优化方法
  • 解决约束优化问题——拉格朗日乘数法

3 编程题(2个)

(1)111.二叉树的最小深度

def minDepth(self,root)
    if root is None:
        return 0
    if root.left is None and root.right is None:
        return 1
    elif root.left is None:
        return 1 + self.minDepth(root.right)
    elif root.right is None:
        return 1 + self.minDepth(root.left)
    else:
        return 1 + min([self.minDepth(root.left), self.minDepth(root.right)])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(2)面试题 08.11. 硬币
给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)
示例1:

输入: n = 5
输出:2
解释: 有两种方式可以凑成总金额:
5=5
5=1+1+1+1+1

示例2:

输入: n = 10
输出:4
解释: 有四种方式可以凑成总金额:
10=10
10=5+5
10=5+1+1+1+1+1
10=1+1+1+1+1+1+1+1+1+1

解题思路同518:使用动态规划

def waysToChange(self, n: int) -> int:
    dp = [1] + [0] * n
    coins = [1, 5, 10, 25]
    for coin in coins:
        for i in range(coin, n + 1):
            dp[i] = dp[i] + dp[i - coin]
            return dp[-1] % 1000000007
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/927671
推荐阅读
相关标签
  

闽ICP备14008679号