机器学习面试笔记

0 聚类算法
1)K-meas
K个聚类点,找最近,在最近的点重算聚类点,迭代;
2)DBSCAN
扫描半径 (eps)和最小包含点数(minPts)。 从随机点出发找密度可达的所有点为一个簇;遍历所有点。O(n2)
3)比较

  1. 与K-means方法相比,DBSCAN不需要事先知道要形成的簇类的数量。
  2. 与K-means方法相比,DBSCAN可以发现任意形状的簇类。
  3. 同时,DBSCAN能够识别出噪声点。
    4.DBSCAN对于数据库中样本的顺序不敏感,即Pattern的输入顺序对结果的影响不大。但是,对于处于簇类之间边界样本,可能会根据哪个簇类优先被探测到而其归属有所摆动。
    1 分类算法
    分类模型是认为模型的输出是离散的,例如大自然的生物被划分为不同的种类,是离散的。回归模型的输出是连续的,例如人的身高变化过程是一个连续过程,而不是离散的。
    常用分类算法:
    1)贝叶斯分类算法

优点:1.所需估计的参数少,对于缺失数据不敏感。2.有着坚实的数学基础,以及稳定的分类效率。
缺点:1.需要假设属性之间相互独立,这往往并不成立。。2.需要知道先验概率。3.分类决策存在错误率。
2)决策树
优点:1.不需要任何领域知识或参数假设。2.适合高维数据。3.简单易于理解。4.短时间内处理大量数据,得到可行且效果较好的结果。5.能够同时处理数据型和常规性属性。
缺点:1.对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。2.易于过拟合。3.忽略属性之间的相关性。4.不支持在线学习。
3)支持向量机
优点:1.可以解决小样本下机器学习的问题。2.提高泛化性能。3.可以解决高维、非线性问题。超高维文本分类仍受欢迎。4.避免神经网络结构选择和局部极小的问题。
缺点:1.对缺失数据敏感。2.内存消耗大,难以解释。3.运行和调参麻烦;
4)KNN
优点:1.思想简单,理论成熟,既可以用来做分类也可以用来做回归;2.可用于非线性分类;3.训练时间复杂度为O(n);4.准确度高,对数据没有假设,对outlier不敏感;
缺点:1.计算量太大。2.对于样本分类不均衡的问题,会产生误判。3.需要大量的内存。4.输出的可解释性不强
5)逻辑回归
优点:1.速度快。2.简单易于理解,直接看到各个特征的权重。3.能容易地更新模型吸收新的数据。4.如果想要一个概率框架,动态调整分类阀值。
缺点:1.特征处理复杂。需要归一化和较多的特征工程。
6)神经网络
优点:1.分类准确率高。2.并行处理能力强。3.分布式存储和学习能力强。4.鲁棒性较强,不易受噪声影响。
缺点:1.需要大量参数(网络拓扑、阀值、阈值)。2.结果难以解释。3.训练时间过长。
2 分布
正态分布/泊松分布/二项分布
概率密度
本质上是数据和标签呈现的一种特征。以正态分布为例,即测量误差总是在真值附近,即更多的数据属于预测正确。
而泊松分布:?符合一条公式。
3 生成还是分类
生成方法的特点:上面说到,生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。生成方法可以还原出联合概率分布P(Y,X),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用。
判别方法的特点:判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。直接面对预测,往往学习的准确率更高。由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
1)逻辑回归和朴素贝叶斯的区别?
(1)逻辑回归是判别模型, 朴素贝叶斯是生成模型,所以生成和判别的所有区别它们都有。
(2)朴素贝叶斯属于贝叶斯,逻辑回归是最大似然,两种概率哲学间的区别。
(3)朴素贝叶斯需要条件独立假设。
(4)逻辑回归需要求特征参数间是线性的
2)线性回归和逻辑回归
(1)线性回归的样本的输出,都是连续值y∈(−∞,+∞),而逻辑回归中只能取0和1。
(2)对于拟合函数也有本质上的差别。
4 代价函数
分类
1)平方差代价函数

2)二次代价函数 quadratic cost

3)交叉熵代价函数 cross-entropy

4)对数似然代价函数 log-likelihood cost
对数似然函数常用来作为softmax回归的代价函数。
在二分类时可以简化为交叉熵代价函数
与sigmoid搭配使用的交叉熵函数:torch.nn.BCEWithLogitsLoss()。
与softmax搭配使用的交叉熵函数:torch.nn.CrossEntropyLoss()。
为什么用交叉熵不用二次
sigmoid倒数为0-1,使得一开始学习很慢;
5 损失函数
分类
1)0-1损失函数

2)绝对值损失函数

3)平方损失函数

4)对数损失函数

常见的逻辑回归使用的就是对数损失函数,有很多人认为逻辑回归的损失函数是平方损失。形式上等价于二分类的交叉熵损失函数,就是指只有01标签的情况下,用那条公式。
5)指数损失函数

6)Hinge损失函数

对数损失函数如何度量损失?
例如,在高斯分布中,我们需要确定均值和标准差。
如何确定这两个参数?最大似然估计是比较常用的方法。最大似然的目标是找到一些参数值,这些参数值对应的分布可以最大化观测到数据的概率。
因为需要计算观测到所有数据的全概率,即所有观测到的数据点的联合概率。
6 梯度下降
作用
(1)梯度下降是迭代法的一种,可以用于求解最小二乘问题。
(2)在求解机器学习算法的模型参数,即无约束优化问题时,主要有梯度下降法(Gradient Descent)和最小二乘法。
(3)在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。
(4)如果我们需要求解损失函数的最大值,可通过梯度上升法来迭代。梯度下降法和梯度上升法可相互转换。
(5)在机器学习中,梯度下降法主要有随机梯度下降法和批量梯度下降法。
批量梯度下降

随机梯度下降

分类
随机梯度下降(SGD)批量梯度下降(BGD)小批量梯度下降(Mini-batch GD)和Online GD的区别:
BGD SGD Mini-batch GD Online GD
训练集 固定 固定 固定 实时更新
单次迭代样本数 整个训练集 单个样本 训练集的子集 根据具体算法定
算法复杂度 高 低 一般 低
时效性 低 一般 一般 高
收敛性 稳定 不稳定 较稳定 不稳定
7 LDA
思想
1)多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成 1维数据进行处理。
2)对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
3)对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。
与PCA对比
异同点 LDA PCA
相同点 1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点 有监督的降维方法;
降维最多降到k-1维;
可以用于降维,还可以用于分类;
选择分类性能最好的投影方向;
更明确,更能反映样本间差异; 无监督的降维方法;
降维多少没有限制;
只用于降维;
选择样本点投影有最大方差的方向
目的较为模糊;
8 PCA
思想

  1. PCA就是将高维的数据通过线性变换投影到低维空间上去。
  2. 投影思想:找出最能够代表原始数据的投影方法。被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
  3. 去冗余:去除可以被其他向量代表的线性相关向量,这部分信息量是多余的。
  4. 去噪声,去除较小特征值对应的特征向量,特征值的大小反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,要保留。
  5. 对角化矩阵,寻找极大线性无关组,保留较大的特征值,去除较小特征值,组成一个投影矩阵,对原始样本矩阵进行投影,得到降维后的新样本矩阵。
  6. 完成PCA的关键是——协方差矩阵。协方差矩阵,能同时表现不同维度间的相关性以及各个维度上的方差。协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。
  7. 之所以对角化,因为对角化之后非对角上的元素都是0,达到去噪声的目的。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉,即去冗余。
    PCA可解决训练数据中存在数据特征过多或特征累赘的问题。核心思想是将m维特征映射到n维(n < m),这n维形成主元,是重构出来最能代表原始数据的正交特征。
    9 过拟合欠拟合
    解决欠拟合:
  8. 添加其他特征项。组合、泛化、相关性、上下文特征、平台特征等特征是特征添加的重要手段,有时候特征项不够会导致模型欠拟合。
  9. 添加多项式特征。例如将线性模型添加二次项或三次项使模型泛化能力更强。例如,FM(Factorization Machine)模型、FFM(Field-aware Factorization Machine)模型,其实就是线性模型,增加了二阶多项式,保证了模型一定的拟合程度。
  10. 可以增加模型的复杂程度。
  11. 减小正则化系数。正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
  12. 增加数据
    解决过拟合:
  13. 重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
  14. 增加训练样本数量。
  15. 降低模型复杂程度。
  16. 增大正则项系数。
  17. 采用dropout方法,dropout方法,通俗的讲就是在训练的时候让神经元以一定的概率不工作。
  18. early stopping。
  19. 减少迭代次数。
  20. 增大学习率。
  21. 添加噪声数据。
  22. 减少特征项。
    10 决策树
    思路
    决策树(Decision Tree)是一种分而治之的决策过程。一个困难的预测问题,通过树的分支节点,被划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。将依规则分割数据集的过程不断递归下去(Recursive Partitioning)。随着树的深度不断增加,分支节点的子集越来越小,所需要提的问题数也逐渐简化。当分支节点的深度或者问题的简单程度满足一定的停止规则(Stopping Rule)时, 该分支节点会停止分裂,此为自上而下的停止阈值(Cutoff Threshold)法;有些决策树也使用自下而上的剪枝(Pruning)法。
    信息增益
    熵:

信息增益:

信息增益比=惩罚参数×信息增益
CART
分类与回归树(CART——Classification And Regression Tree)) 是一种非常有趣并且十分有效的非参数分类和回归方法。它通过构建二叉树达到预测目的。
分类和回归首先利用已知的多变量数据构建预测准则, 进而根据其它变量值对一个变量进行预测。在分类中, 人们往往先对某一客体进行各种测量, 然后利用一定的分类准则确定该客体归属那一类。
支持向量机
支持向量:在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。
支持向量机(Support Vector Machine,SVM):其含义是通过支持向量运算的分类器。
核函数
引入核函数目的:把原坐标系里线性不可分的数据用核函数Kernel投影到另一个空间,尽量使得数据在新的空间里线性可分。
计算两个向量在隐式映射过后的空间中的内积的函数叫做核函数
核函数分类

对偶问题?
SVM缺点
(1) SVM算法对大规模训练样本难以实施
(2) 用SVM解决多分类问题存在困难
(3) 对缺失数据敏感,对参数和核函数的选择敏感
逻辑回归和SVM区别
1)相同
1.LR和SVM都是分类算法。
2.LR和SVM都是监督学习算法。
3.LR和SVM都是判别模型。
4.如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
2)不同
1.LR采用log损失,SVM采用合页(hinge)损失。
2.LR对异常值敏感,SVM对异常值不敏感。
3.计算复杂度不同。对于海量数据,SVM的效率较低,LR效率比较高
4.对非线性问题的处理方式不同
5.SVM的损失函数就自带正则。
6.SVM会用核函数而LR一般不用核函数。
贝叶斯分类器
极大似然估计
最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
EM最大期望算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值