1. 机器学习包括哪几类方法及哪些任务?
根据处理的数据是否具有标签信息,我们可以将机器学习分为监督学习、无监督学习、强化学习等几种类型。
机器学习的基本任务主要有分类、回归、异常值检测、聚类、降维。
监督学习
通过让机器,学习大量带有标签的样本数据,训练出一个模型,并使该模型可以根据输入得到相应输出的过程,并对未经过学习的数据也可以做出正确解答,形成一定的泛化能力。
常用于解决分类和回归问题,常用算法:决策树、支持向量机、朴素贝叶斯、KNN、线性回归、逻辑回归、神经网络等。
无监督学习
通过学习没有分类标记的训练样本,直接建立一个模型,以揭示数据的内在性质和规律,其学习目标可以不必十分明确。
常用于解决聚类、异常检测问题,常用算法:分层聚类、高斯混合模型、EM等。
半监督学习
其训练数据的一部分是有标签的,另一部分没有标签,处理手段:使用无监督学习对数据作处理,然后使用监督学习做模型的训练。
强化学习
在学习过程中,不设置数据标签,由机器自行对数据学习结果进行评估。通过自我评估,不断进行学习,达到对没有学习过的问题也可以做出正确解答的泛化能力。
与其他学习方法的不同
与监督学习相比,强化学习没有正确输出的引导;与无监督学习相比,强化学习需要对获取到的信息及学习结果进行自我评估。
常用于解决回归、分类、聚类、降维问题。
回归
确定变量间相互以来的定量关系,由样本点数据进行预测。
分类
进一步可细分为二分类和多分类,均属于对指定的模式进行识别,将个体归类为集合。
异常检测
同样可看为分类问题的一种,将数据区分是否为异常值。
聚类
学习没有分类标记的训练样本,以揭示数据的内在性质和规律。
分类和聚类的区别:分类是先确定类别再划分数据;聚类则是先划分数据再确定类别。
降维
从高纬度数据中提取关键信息,将其转换为易于计算的低纬度问题进而求解的方法。
2. 请简述使用scikit-learn实现机器学习任务过程?
- 从 Scikit-Learn 中导入适当的评估器类,选择模型类;
- 用合适的数值对模型类进行实例化,配置模型超参数;
- 整理数据,获取特征矩阵和目标数组;
- 调用模型实例 fit() 方法对数据进行学习;
- 在有监督学习模型中,通常使用 predict() 方法预测新数据的标签;在无监督学习模型中,通常使用 transform() 或 predict() 方法转换或推断数据的性质。
3. 简述在机器学习过程中为什么要采用独热编码(one-hot)?
one hot编码是将类别变量转换为机器学习算法易于利用的一种形式的过程。
在机器学习中,特征可能不是数值型,而是分类型,将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。
将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。
4. 谈谈你对机器学习中的降维(Dimension Reduction)理解?
采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数$ f : x\rightarrow y$,其中 x x x 是原始数据点的表达, y y y 是数据点映射后的低维向量表达,通常 y y y 的维度小于 x x x 的维度(当然提高维度也是可以的)。 f f f 可能是显式的或隐式的、线性的或非线性的。
为什么要降维
- 数据的多重共线性:特征属性之间存在着相互关联关系。多重共线性会导致解的空间不稳定, 从而导致模型的泛化能力弱;
- 高纬空间样本具有稀疏性,导致模型比较难找到数据特征;
- 过多的变量会妨碍模型查找规律;
- 仅仅考虑单个变量对于目标属性的影响可能忽略变量之间的潜在关系。
通过特征选择/降维的目的是:
- 减少特征属性的个数
- 确保特征属性之间是相互独立的
5. 简述分类(Classification)与回归(Regression)两者异同之处?
同
均可采用监督学习,对输入数据进行训练,并做出预测
异
- 分类问题输出预测数据的所属类别,回归问题输出预测数据的值;
- 分类问题输出为离散的,用于预测离散值;回归问题输出为连续值,用于预测连续值;
- 分类问题是定性分析,回归问题是定量分析;
- 分类的目的是为了寻找决策边界,回归的目的是为了找到最优拟合;
- 分类问题的求解结果答案分明,最终结果只有一个;回归问题的求解结果是对真实值的一种逼近预测,求解答案较为模糊;
- 两者处理过程的损失函数不同。
6. 简述分类(Classification)与聚类(Clustering)两者异同之处?
同
本质没有区别,都是构造一个分类器,将数据划分为群簇。
异
学习方法和对数据的要求不同:
- 分类问题已知分类规则或分类标签,利用已知条件进行构造分类器;
- 聚类问题未知分类规则或分类标签,完全通过学习集样本找出分类规则,构造分类器,确定分类。