大数据算法基础总结-lwz更新

  • Prophet
    • Prophet原理:拆成周期项,误差项,拟合项,拟合项又分为线性和非线性。
  • Python
    • 赋值,深拷贝,浅拷贝:比如一个多层链表,浅拷贝只能复制外层,深拷贝会全部拷贝,赋值就是一模一样的东西。
    • 内存管理与垃圾回收机制:当新变量与旧变量的差值到达一个阈值,会引起垃圾回收,主要是引用计数为0的回收,以及利用分代回收和标记清楚进行循环引用的回收。
    • 哪些是可变哪些不可变:float,str,int,set,元组这些都是不可变。
  • Spark
    • mapreduce:分布式数据进来,map生成键值对,然后进行shuffle数据混洗,reduce根据键值对输出。
    • spark原理:有向无环图。
    • 如何处理数据倾斜:看看数据有没有问题,看看代码有没有问题,改一下分区策略,加随机前缀,加分区等等。
    • join表关联策略:1.小表与大表:广播小表;2.中大表之间的关联:  根据中表的key进行shuffle,然后把两张表相同的key放在一个处理器上,内存占用比广播小点。3.大表与大表之间的关联:先排序,然后都按照分区一个个进行关联, 这样就不用把一张表放在内存里。
    • job-stage-task:action触发job, 宽窄依赖shuffle触发stage,一个partition触发task.
  • 分布式框架
    • 普通分布式表与环状结构的区别:普通的分布式表构造简单,但是每当主动新增或者删除一个节点都要重启。环状通过瞬移到下一个节点解决了这个问题,但是链式操作复杂度较高。
    • 哈希环如和解决数据平衡:影子节点。
    • 分布式机器学习:看我的文章。
  • 方差和偏差
    • 解释方差:在训练集上表现很好,测试集上表现很差
    • 解释偏差:在训练集上表现就不好
    • 模型训练为什么要引入偏差和方差?请理论论证:VCBANGD
    • 什么情况下引发高方差:训练数据比较少,模型太复杂, 某些特征引起过拟合。
    • 如何解决高方差问题: 添加训练数据,正则化等一些手段让模型简单,随机森林,减少 引起过拟合的某些特征,dopout。
    • 以上方法是否一定有效:不一定,大部分有效。
    • 如何解决高偏差问题:添加数据,降低正则化水平,使用复杂模型,添加有效特征。
    • 以上方法是否一定有效:一般都有效。
    • 遇到过的机器学习中的偏差与方差问题
    • 就理论角度论证Bagging、Boosting的方差偏差问题:有个数学公式。boost梯度下降,bagging多棵树,单一树的结果被平均了。
    • 遇到过的深度学习中的偏差与方差问题:类似机器学习。
    • 方差、偏差与模型的复杂度之间的关系:反向关系,模型一般越复杂,越容易高方差。

数据预处理

  • 数据平衡
    • 为什么要对数据进行采样:通过样本代表数据。
    • 是否一定需要对原始数据进行采样平衡:除非是异常检测。
    • 有哪些常见的采样方法:7/3,bagging,有放回无放回
    • 能否避免采样:不可能
    • 你平时怎么用采样方法:7/3
    • 如何做归一化:训练集做归一化,用这个值对测试集做归一化。
  • 异常点处理
    • 统计方法:Ecdf, 分位数,sigma等等
    • 矩阵分解方法
    • 特征值和特征向量的本质是什么:一个空间
    • 矩阵乘法的实际意义
    • 密度的离群点检测:Dbscan
    • 聚类的离群点检测:kmeans
    • 如何处理异常点:剔除,业务理解插入等等。
  • 缺失值处理
    • 是不是一定需要对缺失值处理:一般都是的,除非业务不一样。
    • 直接填充方法有哪些:线性擦绘制等等。
    • 模型插值方法有哪些?及方法的问题:好多新的算法。
    • 如何直接离散化:onehot。
    • hold位填充方法有哪些
    • 怎么理解分布补全
    • random方法使用前提
    • 总结
  • 特征选择
    • 为什么要做特征选择:提高准确率,提高计算速度。
    • 从哪些方面可以做特征选择:业务,相关性等等。
    • 既然说了两个方向,分别介绍一些吧:
    • 说说递归特征消除:以线性回归为例子:
    • 皮尔逊,斯皮尔曼,kinrell三大相关系数的区别:前两者用的比较多,但是第一者无法找出非线性管线,第二者能找出非线性关系(通过位序),但是复杂度会高一些。
  • 特征提取
    • 为什么需要对数据进行变换:例如线性回归,都是正态表现更好。
    • 归一化和标准化之间的关系:看公式和我的文章。
    • 连续特征常用方法:归一化,标准化。
    • 离散特征常用方法:onehot
    • 文本特征
    • 画一个最简单的最快速能实现的框架
  • 聚类
    • 请问从EM角度理解kmeans:不一定能收敛,估计参数,不断迭代 可肯定有局部最优解。
    • 为什么kmeans一定会收敛:不一定吧。
    • kmeans初始点除了随机选取之外的方法:kmeans++
  • 线性回归
    • 损失函数是啥:最小二乘法。
    • 最小二乘/梯度下降手推:求导。
    • 介绍一下岭回归:l2正则化,一个圆,约束优化问题,先验概率是正太。
    • 什么时候使用岭回归:处理平滑。
    • 什么时候用Lasso回归:特征较少。
  • 逻辑回归
    • logistic分布函数和密度函数,手绘大概的图像
    • LR推导,基础5连问
    • 梯度下降如何并行化:矩阵乘法
    • LR明明是分类模型为什么叫回归:历史渊源。用到了回归
    • 为什么LR可以用来做CTR预估
    • 满足什么样条件的数据用LR最好:正太,公式推导。
    • LR为什么使用sigmoid函数作为激活函数?其他函数不行吗:平滑,可导,取值范围【0,1】
    • 利用几率odds的意义在哪
    • Sigmoid函数到底起了什么作用:非线性转换。
    • LR为什么要使用极大似然函数,交互熵作为损失函数?那为什么不选平方损失函数的呢:0/1
    • LR中若标签为+1和-1,损失函数如何推导?
    • 如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响:见我的文章。
    • 为什么要避免共线性:见我的文章。
    • LR可以用核么?可以怎么用:可以
    • LR中的L1/L2正则项是啥:参数的平方或者绝对值。
    • lr加l1还是l2好:看情况。
    • 正则化是依据什么理论实现模型优化:偏差/方差理论。
    • LR可以用来处理非线性问题么:加sigmoid
    • 为什么LR需要归一化或者取对数:不然权重不一样。都是正态效果好,先验概率。
    • 为什么LR把特征离散化后效果更好?离散化的好处有哪些:加额外信息。
    • 逻辑回归估计参数时的目标函数逻辑回归的值表示概率吗:是的。
    • LR对比万物
    • LR梯度下降方法:一阶求导。
    • LR的优缺点:快,但是准确度不高。
    • 除了做分类,你还会用LR做什么:特征重要性。
    • 你有用过sklearn中的lr么?你用的是哪个包
    • 看过源码么?为什么去看
    • 谈一下sklearn.linear_model.LogisticRegression中的penalty和solver的选择
    • 谈一下sklearn.linear_model.LogisticRegression中对多分类是怎么处理的
    • ovo 和 ovm的区别:ovm 1对n, ovo 1对1
    • 我的总结
  • 决策树
    • 常见决策树:cart
    • 简述决策树构建过程 信息熵/基尼系数 分裂
    • 详述信息熵计算方法及存在问题:看公式就知道
    • 详述信息增益计算方法
    • 详述信息增益率计算方法
    • 解释Gini系数
    • ID3存在的问题
    • C4.5相对于ID3的改进点
    • CART的连续特征改进点:连续特征, 分类特征有个信息增益的公式。
    • CART分类树建立算法的具体流程:选一个点,信息增益。
    • CART回归树建立算法的具体流程:均值结果。使损失函数最小。
    • CART输出结果的逻辑
    • CART树算法的剪枝过程是怎么样的
    • 树形结构为何不需要归一化:不考虑量纲
    • 决策树的优缺点:效果好,但是速度会稍微慢一点。
  • 随机森林
    • 解释下随机森林:横向多棵树。
    • 随机森林用的是什么树:cart树
    • 随机森林的生成过程:随机抽取特征和样本,放在每一颗树上,预测的时候,数据每棵树都放,输出结果,均值或者投票。
    • 解释下随机森林节点的分裂策略:决策树。
    • 随机森林的损失函数是什么:看分类还是回归,自己定义。
    • 为了防止随机森林过拟合可以怎么做:数据角度:增加数据。模型角度:树更多点,随机抽样更多点。每棵树简单点。
    • 随机森林特征选择的过程:跟决策树一样。
    • 是否用过随机森林,有什么技巧:调参。
    • RF的参数有哪些,如何调参:看情况调参。
    • RF的优缺点:效果好,缺点是慢一点。
  • 集成学习
    • 介绍一下Boosting的思想:竖向。
    • 最小二乘回归树的切分过程是怎么样的:信息增益。
    • 有哪些直接利用了Boosting思想的树模型:gbdt
    • gbdt和boostingtree的boosting分别体现在哪里:损失函数最小化。
    • gbdt的中的tree是什么tree?有什么特征:cart。
    • 常用回归问题的损失函数:平方,根号等等。
    • 常用分类问题的损失函数:好多。坎宫时选择。
    • 什么是gbdt中的残差的负梯度:负梯度,求导。
    • 如何用损失函数的负梯度实现gbdt:看公式。
    • 拟合损失函数的负梯度为什么是可行的:最优解。
    • 即便拟合负梯度是可行的,为什么不直接拟合残差? 拟合负梯度好在哪里:有些情况没有直接拟合残差。
    • Shrinkage收缩的作用
    • feature属性会被重复多次使用么:会的。
    • gbdt如何进行正则化的:剪枝,还有一个正则化项。
    • 为什么集成算法大多使用树类模型作为基学习器?或者说,为什么集成学习可以在树类模型上取得成功:树模型容易过拟合。每棵树容易和而不同。
    • gbdt的优缺点:效果好,慢。
    • gbdt和randomforest区别:横向和竖向。
    • GBDT和LR的差异:挺大的,不是一个流派。
    • xgboost对比gbdt/boosting Tree有了哪些方向上的优化:并行化和二阶求导。每个特征预排序,并行化比如特征上的信息增益计算。
    • xgboost和gbdt的区别:工程实现。
    • xgboost优化目标/损失函数改变成什么样
    • xgboost如何使用MAE或MAPE作为目标函数
    • xgboost如何寻找分裂节点的候选集
    • xgboost如何处理缺失值
    • xgboost在计算速度上有了哪些点上提升
    • xgboost特征重要性是如何得到的:可以参考决策树的,比如分裂了多少次,占比等等。
    • xGBoost中如何对树进行剪枝
    • xGBoost模型如果过拟合了怎么解决:减少树的数量,加大随机抽样个比例。
    • xgboost如何调参数
    • XGboost缺点:慢
    • LightGBM对Xgboost的优化:加速。
    • LightGBM亮点:并行加速。比如一些比较慢的求梯度的地方用了更好的解。
    • 孤立森林原理:一个孤立点非常容易在一开始就被划出来。通过多棵树算每个点的距离,以及所有点的距离,如果某些点的距离比平均距离小很多就是孤立点。注意是在最大最小之间取值。
    • 为什么多个弱分类器组合效果会比单个要好?如何组合弱分类器可以获得更好的结果?原因是什么? 显而易见。
    • Bagging的思想是什么?它是降低偏差还是方差,为什么?有个公式,方差
    • 可否将RF的基分类模型由决策树改成线性模型或者knn?为什么?随机性不强,没用。
  • 框架
    • 为什么要用深度召回
  • dropout
    • dropout如何作用的:训练的时候用。
    • L1为什么在深度学习中不常用:容易太稀疏。
    • 用贝叶斯机率说明Dropout的原理
    • 为什么有效
  • batch_normalization
    • 你觉得bn过程是什么样的:加速,提高准确度。
    • 手写一下bn过程
    • 知道LN么?讲讲原理
  • bp过程
  • embedding
  • softmax
  • 梯度消失与梯度爆炸:链式法则的原因。如何解决?lstm解决了rnn的问题,sigmoid换成relu等等。
  • sgd与adam:加了惯性,同时看的更远。
  • batchsize的影响:越大,越准,但是需要的epoch越多。
  • lstm为什么权重共享:1.减少参数。2.lstm长度有可能会发生变化。
  • 贝叶斯
    • 解释一下朴素贝叶斯中考虑到的条件独立假设
    • 讲一讲你眼中的贝叶斯公式和朴素贝叶斯分类差别
    • 朴素贝叶斯中出现的常见模型有哪些
    • 出现估计概率值为 0 怎么处理
    • 朴素贝叶斯的优缺点
    • 朴素贝叶斯与 LR 区别
  • 残差网络
    • 介绍残差网络
    • 残差网络为什么能解决梯度消失的问题
    • 残差网络残差作用
    • 你平时有用过么?或者你在哪些地方遇到了
  • Attention
    • Attention对比RNN和CNN,分别有哪点你觉得的优势
    • 写出Attention的公式
    • 解释你怎么理解Attention的公式的
    • Attention模型怎么避免词袋模型的顺序问题的困境的
    • Attention机制,里面的q,k,v分别代表什么
    • 为什么self-attention可以替代seq2seq
    • 维度与点积大小的关系是怎么样的,为什么使用维度的根号来放缩
  • 生成与判别模型
    • 什么叫生成模型
    • 什么叫判别模型
    • 什么时候会选择生成/判别模型
    • CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型
    • 我的理解
  • 先验概率和后验概率
    • 写出全概率公式&贝叶斯公式
    • 说说你怎么理解为什么有全概率公式&贝叶斯公式
    • 什么是先验概率
    • 什么是后验概率
    • 经典概率题
  • 频率概率
    • 极大似然估计 - MLE
    • 最大后验估计 - MAP
    • 极大似然估计与最大后验概率的区别
    • 到底什么是似然什么是概率估计
  • AutoML
    • AutoML问题构成
    • 特征工程选择思路
    • 模型相关的选择思路
    • 常见梯度处理思路
    • AutoML参数选择所使用的方法
    • 讲讲贝叶斯优化如何在automl上应用
    • 以高斯过程为例,超参搜索的f的最优解求解acquisition function有哪些
    • 高斯过程回归手记
    • AutoSklearn详解手记
    • AutoML常规思路手记
  • FM/FFM
  • SVM
    • 简单介绍SVM:kkt条件的约束优化。
    • 什么叫最优超平面
    • 什么是支持向量
    • SVM 和全部数据有关还是和局部数据有关
    • 加大训练数据量一定能提高SVM准确率吗
    • 如何解决多分类问题
    • 可以做回归吗,怎么做
    • SVM 能解决哪些问题
    • 介绍一下你知道的不同的SVM分类器
    • 什么叫软间隔
    • SVM 软间隔与硬间隔表达式
    • SVM原问题和对偶问题的关系/解释原问题和对偶问题
    • 为什么要把原问题转换为对偶问题
    • 为什么求解对偶问题更加高效
    • alpha系数有多少个
    • KKT限制条件,KKT条件有哪些,完整描述
    • 引入拉格朗日的优化方法后的损失函数解释
    • 核函数的作用是啥
    • 核函数的种类和应用场景
    • 如何选择核函数
    • 常用核函数的定义
    • 核函数需要满足什么条件
    • 为什么在数据量大的情况下常常用lr代替核SVM
    • 高斯核可以升到多少维?为什么
    • SVM和逻辑斯特回归对同一样本A进行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化
    • 各种机器学习的应用场景分别是什么?例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归
    • Linear SVM 和 LR 有什么异同

参考:

https://github.com/sladesha/Reflection_Summary:

参考:《白面机器学习》 《白面深度学习》

你可能感兴趣的:(机器学习与数据挖掘)