机器学习常见问题整理?

机器学习项目流程?

答:理解实际问题,抽象成数学模型(分类、回归、聚类)——>获取数据——>特征预处理与特征选择——>训练模型与调优——>模型诊断(过拟合、欠拟合等)——>模型融合——>上线运行。

机器学习算法的分类?

答:监督学习、非监督学习、半监督学习、强化学习。

特征选择与降维的区别?

答:两者达到的效果是一样的,都是试图去减少特征数据集中的属性(特征)的数目;
但是两者所采用的方式方法却不同:降维的方法主要是通过属性间的关系,如组合不同的属性得新的属性,这样就改变了原来的特征空间;而特征选择的方法是从原始特征数据集中选择子集,是一种包含的关系,没有更改原始的特征空间。

特征选择的方法?

答:主要有三种方法:1)Filter;2)Wrapper;3)Embedded
1、Filter方法(过滤式)

其主要思想是:对每一维的特征“打分”,即给每一维的特征赋予权重,这样的权重就代表着该维特征的重要性,然后依据权重排序。

主要的方法有:
Chi-squared test(卡方检验)
information gain(信息增益)
correlation coefficient scores(相关系数)
2、Wrapper方法(包裹式)

其主要思想是:将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较。这样就将子集的选择看作是一个是一个优化问题,这里有很多的优化算法可以解决,尤其是一些启发式的优化算法,如GA,PSO,DE,ABC等,详见“优化算法——人工蜂群算法(ABC)”,“优化算法——粒子群算法(PSO)”。

主要方法有:recursive feature elimination algorithm(递归特征消除算法)

3、Embedded方法(嵌入式)

其主要思想是:在模型既定的情况下学习出对提高模型准确性最好的属性。这句话并不是很好理解,其实是讲在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。

主要方法:正则化,如岭回归就是在基本线性回归的过程中加入了正则项。

模型诊断的方法?

答:交叉验证、绘制学习曲线等。

过拟合的调优思路?欠拟合的调优思路?

过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差。
机器学习常见问题整理?_第1张图片

解决办法:

  1. 重新清洗数据
  2. 增加数据量
  3. 降低模型复杂度
  4. 采用正则化方法

欠拟合就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据。

机器学习常见问题整理?_第2张图片

解决办法:

  1. 提供特征的数量和质量
  2. 增加模型复杂度
  3. 减少正则化参数

哪些机器学习算法不需要做归一化处理?

答:树模型(概率模型)不需要,如决策树、RF;而想Adaboost、SVM、LR、KNN、Kmeans之类的优化问题就需要归一化。
树模型不需要归一化,因为数值缩放不影响分类点位置。
而对于线性模型,使用梯度下降时,损失等高线是一个椭圆的形状,如迭代到最低点需要多次迭代,使用归一化后,等高线就是圆形的,迭代次数较少。

有监督学习和无监督学习的区别

答:有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测(LR、SVM、RF、GBDT)
无监督学习:对未标记的样本进行训练学习,已发现这些样本中的知识结构(Kmeans,DL)

生成模型和判别模型

生成模型:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。(朴素贝叶斯)
生成模型可以还原联合概率分布p(X,Y),并且有较快的学习收敛速度,还可以用于隐变量的学习
判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。(k近邻、决策树)
直接面对预测,往往准确率较高,直接对数据在各种程度上的抽象,所以可以简化模型

什么是正则化?

答:所谓正则化就是对参数施加一定的控制,防止参数走向极端。

L1与L2的区别?

答:L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||w||
L2正则化是指权值向量w中各个元素的平方和然后再求平方根

L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

为什么L1可以产生稀疏矩阵,L2可以防止过拟合?

答:可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

机器学习常见问题整理?_第3张图片

决策树/Bagging/Radom Forest/Boosting/Adaboost/GBDT 和XGBoost的区别?

答:1.决策树:从根节点开始,测试待分类项目中相应的特征属性,并按其值选择输出分支,直到叶子结点,将叶子节点存放的类别作为决策结果
2.bagging(综合多个弱分类器的结果得到一个强分类的思想):
1)从样本中重采用选出n个样本
2)在所有属性上对n个样本建立分建立分类器(ID3,C4.5,CART,SVM,Logistic 回归等)
3)重复以上步骤m次(奇数),即获得了m个分类器
4)将数据放在这m个分类器上,最后根据m个分类器的投票结果决定数据属于哪类
3.Random Forest(在bagging基础上做了修改,有限样本,有限属性):
1)从样本集中采用boostrap采用(有放回的采用)选出n个样本
2)从所有属性中随机选择k个属性,选择最佳分割属性作为结点,建立CART树
3)重复以上两步m次,即建立m棵CART树
4)这m棵CART形成随机森林,通过投票结果决定数据属于哪一类
4.Boosting:(与Bagging类似,循环嵌套,不好的数据重新weight)
通过m次的迭代,每次迭代训练出不同的弱分类器,然后将这n个弱分类器进行组合,形成一个强分类器。Adaboost是最具代表性的一个算法。
Adaboost属于Boosting,采用指数损失函数替代原本分类任务的0/1损失函数
GBDT属于Boosting的优秀代表,对函数残差近似值进行梯度下降,用CART回归树做学习
器,集成为回归模型
XGBoost属于Boosting的集大成者,对函数残差近似值进行梯度下降,迭代时利用了二阶梯度信息,集成模型可分类,也可回归。由于它可在特征粒度上进行并行计算,结构风险和工程实现多了很多优化,泛化性能和扩展性能都比GBDT好。

LR和SVM的区别与联系?

答:联系:1)都处理分类问题,一般都为线性二分类问题
2)都可加不同的正则化项,如L1,L2

区别:1)LR是参数模型,SVM是非参数模型
2)目标函数:LR采用Logistic loss,SVM采用hinge loss
3)SVM只考虑support vector,也就是和分类最相关的少数点
去学习分类器。而逻辑回归通过非线性映射,大大减少离分类平面较远点的权重,相对提升与分类最相关数据点的权重
4)LR简单、易于理解,SVm相对复杂,SVM转换为对偶问题后,分类只需计算与少数几个支持向量的距离,在进行复杂核函数计算时,优势明显,能大大简化模型和计算。
5)LR能做的SVM能做,但准确率上有问题,SVM能做的,LR做不了。

什么是熵?

答:用来表示变量的不确定性

什么是梯度下降法?

答:如何调整 θ 使得J(θ)(损失函数)取最小值有很多方法,其中有一种是最小二乘法,另一种是梯度下降法。
算法流程如下:
1)首先对θ 赋值,这个值可以是随机的,也可以是全零向量
2)改变θ 的值,使得J(θ)按梯度下降的方向进行减少,θ =θ-∇θJ
易被初始值的选择而陷入局部最优。

LDA主题模型?

主题模型的主要思想就是通过对文档的统计分析找到对应的主题,再有主题来找到在这个主题下会产生词语的概率。在操作中,文档和词都是已知条件而主题模型则是隐变量,基于这一点我们能够很好的利用EM算法特性。
LDA模型:是一个三层结构的贝叶斯模型,需要超参数。

你可能感兴趣的:(机器学习,机器学习算法)