人工智能学习:机器学习相关面试题(二)
7、有监督学习和无监督学习的区别
有监督学习:
对具有概念标记(分类)的训练样本进行 学习,以尽可能对训练样本集外的数据进行 标记(分类)预测。 这里 ,所有的标记(分类)是已知的。 因此 ,训练样本的岐义性低。监督学习中只要输入 样本集,机器就可以从中推演出 制定目 标变量的可能结果.如协同过滤推荐算法,通过对训练集进行 监督学习,并对测试集进行 预测,从而 达到预测的目 的.
无监督学习:
对没有概念标记(分类) 的训练样本进行 学习, 以发现训练样本集中的结构性知识。这里 ,所有的标记 (分类)是未知的。 因此 ,训练样本的岐义性高 。聚类就是典型的无监督学习。监督学习的典型例子 就是决策树、神经网 络以及疾病监测, 而无 监督学习就是很早之前的西 洋双陆棋和聚类。
8、有了解过哪些机器学习的算法?
问题分析:
考官主要考察的是学员是否对于人工 智能方面 的感兴趣 ,是否有空闲时间了解过机器学习算法这方面 的知识 ,有则更好。
核心答案讲解:
学员需要根据自己 的实际情况去回答 ,学员也可以自己 课下空余的时间去掌握— 两常用 的机器学习算法,以此来增 加自 己 的筹码。
决策树模型:
构建决策树三要素
1、特征选择
信息熵---信息增益---信息增益大 的
H(x) = -sum(pi*log(pi))
Gain(A) =Info(D)-Info_A(D)
43Gini: Gini系数是对信息熵关于ln(x)在x =0处的— 阶泰勒展开近似得到是信息GIni系数
2、决策树的构成
ID3算法:
算法输入 :特征和样本构成的数据集
算法输出: ID3的决策树
算法步骤:
(1)如果所有的属性都被处理完毕
(2)计算各个节点的信息增益 ,选择最大 的信息增益所代表的特征构建决策树(信息熵--sum(pi*log(pi)))
(3)如果上述的属性没有处理完毕 ,需要从剩余的属性中继续获取其他的信息增益较大 的值对应的特征。
(4)递归构建决策树算法模型算法优化
选择信息增益率--C4.5算法算法的停止 迭代条件:
(1)迭代次数
(2)树的深度
(3)树的叶子 节点的个数
(4)树的分支 节点含有样本的个数
(5)树的最大 不纯度的下降
(Cart树---gini系数)
3、决策树剪枝
先剪枝
后剪枝
问题扩展:
在算法的推导过程中 ,会大 量的使用 到数学的推导公式, 而 数学思想对于程序员来说是必不可缺的— 种思想 ,可以 在讲解的时候 ,概括性的给学员讲— 下数学的相关知识。
信息熵数学公式(sum(pi*log(pi)))+信息增益数学公式(总体的信息熵-以A节点作为划分节点的信息熵)
结合项目中使用:
此问题在项目 中是没有什么体现的, 面 试官就是想考察— 下面 试者本身具有的学习能力 , 以此来评估该面试者的可 培养价值 ,以及潜力 。但是机器学习算法在推荐系统项目 中、以后数据挖掘工 作中会起到至 关重要作用 。
9、你对LR是怎么理解的? LR的损失函数是怎样的?
首先,LR是逻辑斯特回归 ,是分类算法。
LR的原理是在线性回归的基础上增加— 个非 线性函数 ,这里 用 的是sigmod函数 ,得到的结果是以概率的形式输出类别的结果。
LR的损失函数是似然函数 ,似然函数的log对数的形式 ,得到是交叉熵损失 ,对应的是分类中最重要交叉熵损失函数。
交叉熵损失和其他的损失函数区别就在于交叉熵损失是定义在概率分布基础上的, 它通常是被用 于基于多项式的逻辑斯 特回归和神经网 络中 ,还有用 在EM算法中。对数损失是用 来度量分类器的预测输出的概率分布和真是分布的差距, 而 不是比 较离散类标签是否相等。
10、二分类模型如何做多分类?
决策树中ID3和C4.5算法都是可以解决多分类问题 ,而logisticModel、SVM只能解决二 分类问题,如何将二分类问题拓展到多分类上 ,使用 常用 的方 法有两种:
Ovo-One vs one :通过将任意两个分类的组合形式来进行 多分类
Ovr-One vs rest: C( n,2)f分类结果
scikit-learn: machine learning in Python
11、KMeans算法和KNN算法区别?
KMeans算法是聚类的算法, KNN是— 个分类算法。
KNN是通过K值设定最近邻的个数,通过当前样本点到各个点之间的距离的求解,通过少数服从多数的投票原则划分当前样本点。
KMeans通过K值设定有几 个聚类中心 ,通过将各个样本点到聚类中心 的距离 ,将离中心 点最小 距离的样本进行 组合 ,从 而 将样本点分成不同的簇 ,通过均值的方 法迭代聚类中心 ,直到迭代次数或mse误差或聚类中心 不在改变停止 迭代。
12、请问GBDT和XGBoost的区别是什么?
XGBoost类似于GBDT的优化版 ,不论是精度还是效率上都有了提升。与GBDT相比 ,具体的优点有:
损失函数是用 泰勒展式二 项逼近 ,而 不是像GBDT里的就是—阶导数;对树的结构进行 了正则化约束 ,防止模型过度复 杂, 降低了过拟合的可能性;节点分裂的方 式不同, GBDT是用 的基尼系数 ,XGBoost是经过优化推导后的分裂增益。