1.训练决策树时的参数是什么?
调参:1.如何选取K,可以考虑有N个属性,取K=根号N
2.最大深度(不超过8层)
3.棵数
4.最小分裂样本树
5.类别比例
https://www.cnblogs.com/mdevelopment/p/9381726.html
2.在决策树的节点处分割的标准是什么?
确定最优划分特征的方法是整个决策树的关键部分。最优划分特征的选择基于一个目标:使得分裂后各个节点数据的“纯度”最高。即尽量使得通过该特征进行分类后的分支节点所包含的样本属于同一类别。选择一个合适的特征作为判断节点,可以快速的分类,减少决策树的深度。
3.基尼系数的公式是什么?
基尼指数
基尼指数用于度量数据集D的纯度:

直观来说,Gini(D)反映了从数据集D随机选取两个样本,其类别标记不一致的概率,则基尼系数越小,代表其纯度越高。(与熵类似)
选取合适的纯度量化方式,可以从当前样本数据中找到最好的划分特征,从而将数据集划分为若干个分支。
4.熵的公式是什么?
信息熵(entropy)是用来衡量一个随机变量出现的期望值。如果信息的不确定性越大,熵的值也就越大,出现的各种情况也就越多。

其中,S为所有事件集合,p为发生概率,c为特征总数。注意:熵是以2进制位的个数来度量编码长度的,因此熵的最大值是log2C。
信息增益(information gain)是指信息划分前后的熵的变化,也就是说由于使用这个属性分割样例而导致的期望熵降低。也就是说,信息增益就是原有信息熵与属性划分后信息熵(需要对划分后的信息熵取期望值)的差值,具体计算法如下:

5.决策树如何决定在哪个特征处分割?
https://blog.csdn.net/im_chenxi/article/details/80247436
根据信息增益决策划分节点时特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
6.随机森林的优点有哪些?
https://blog.csdn.net/zhongjunlang/article/details/79488955
随机森林的优点:
表现性能好,在当前的很多数据集上,与其他算法相比有着很大优势。
随机森林能处理很高维度的数据(也就是很多特征的数据),并且不用做特征选择。
在训练完之后,随机森林能给出哪些特征比较重要。
训练速度快,容易做成并行化方法(训练时,树与树之间是相互独立的)。
在训练过程中,能够检测到feature之间的影响。
对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。
如果有很大一部分的特征遗失,用RF算法仍然可以维持准确度。
随机森林算法有很强的抗干扰能力(具体体现在6,7点)。所以当数据存在大量的数据缺失,用RF也是不错的。
随机森林抗过拟合能力比较强(虽然理论上说随机森林不会产生过拟合现象,但是在现实中噪声是不能忽略的,增加树虽然能够减小过拟合,但没有办法完全消除过拟合,无论怎么增加树都不行,再说树的数目也不可能无限增加的。)
随机森林能够解决分类与回归两种类型的问题,并在这两方面都有相当好的估计表现。(虽然RF能做回归问题,但通常都用RF来解决分类问题)。
在创建随机森林时候,对generlization error(泛化误差)使用的是无偏估计模型,泛化能力强。
随机森林的缺点:
随机森林在解决回归问题时,并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续的输出。当进行回归时,随机森林不能够做出超越训练集数据范围的预测,这可能导致在某些特定噪声的数据进行建模时出现过度拟合。(PS:随机森林已经被证明在某些噪音较大的分类或者回归问题上回过拟合)。
对于许多统计建模者来说,随机森林给人的感觉就像一个黑盒子,你无法控制模型内部的运行。只能在不同的参数和随机种子之间进行尝试。
可能有很多相似的决策树,掩盖了真实的结果。
对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。
执行数据虽然比boosting等快(随机森林属于bagging),但比单只决策树慢多了。
7.介绍一下boosting算法。
Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合为一个分类器的方法,即boostrapping方法和bagging方法。
8.gradient boosting如何工作?
Gradient Boosting 在迭代的时候选择梯度下降的方向来保证最后的结果最好。
损失函数用来描述模型的“靠谱”程度,假设模型没有过拟合,损失函数越大,模型的错误率越高
如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度方向上下降。
9.关于AdaBoost算法,你了解多少?它如何工作?
1. 给定训练样本集S,其中X和Y分别对应于正例样本和负例样本; T为训练的最大循环次数;
2. 初始化样本权重为1/n ,即为训练样本的初始概率分布;
3. 第一次迭代:
(1) 训练样本的概率分布相当下,训练弱分类器;
(2) 计算弱分类器的错误率;
(3) 选取合适阈值,使得误差最小;
(4) 更新样本权重;
经T次循环后,得到T个弱分类器,按更新的权重叠加,最终得到的强分类器。
10.SVM中用到了哪些核?SVM中的优化技术有哪些?

11.SVM如何学习超平面?用数学方法详细解释一下。
步骤1:读取想分类的数据集D
步骤2:找到两个平行超平面,可以划分数据并且两平面之间没有数据点。
步骤3:两个超平面之间的距离最大化
12.介绍一下无监督学习,算法有哪些?
自编码(Autoencoding)
主成分分析(Principal components analysis)
随机森林(Random forests)
K均值聚类(K-means clustering)
13.在K-Means聚类算法中,如何定义K?
(1) 随机选取k个中心点;
(2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类;
(3) 更新中心点为每类的均值;
(4) j<-j+1 ,重复(2)(3)迭代更新,直至误差小到某个值或者到达一定的迭代步数,误差不变.
空间复杂度o(N)
时间复杂度o(I*K*N)
其中N为样本点个数,K为中心点个数,I为迭代次数
https://www.cnblogs.com/dudumiaomiao/p/5839905.html
14.告诉我至少3中定义K的方法。
1.在实际应用中,由于Kmean一般作为数据预处理,或者用于辅助分聚类贴标签。所以k一般不会设置很大。可以通过枚举,令k从2到一个固定值如10,在每个k值上重复运行数次kmeans(避免局部最优解),并计算当前k的平均轮廓系数,最后选取轮廓系数最大的值对应的k作为最终的集群数目
2.SSB是类间方差,m为所有点的中心点,mi为某类的中心点;SSW是类内方差,(N-k)/(k-1)是复杂度;VRC比率越大,数据分离度越大.



网友评论