机器学习的一些基本知识点

一、什么是机器学习

   机器学习是一门能够发觉数据价值的算法与应用,通过自学习算法的开发,从数据中获取知识, 进而实现对未知事件的预测.它提供了一种从数据中获取知识的方法,同时能够逐步提高预测模型的性能,并将模型应用于基于数据驱动的决策中去.
机器学习的三种不同的方法:
(1)监督学习,
(2)强化学习,
(3)无监督学习

1,监督学习:

   通过监督学习对未来事件进行预测。
   目的:使用有类标的训练数据构建模型,通过该模型对未来数据进行预测.监督是指训练数据集中每一个样本均有一个已知的输出项(类标).
   监督学习的子类别:
   1, 分类, 输出是离散, 使用离散的,无序的类标;利用分类对新样本的类标进行预测: 目的是基于对已知类标的样本的观察和学习,实现对新样本类标的预测。
   2, 回归,输出是连续,使用连续的类标;使用回归预测连续输出值: 在回归分析中,数据会给出大量的自变量和相应的连续因变量, 通过尝试寻找这两种变量之间的关系, 就能够预测输出变量. 线性回归就是: 通过对样本数据的训练来获得拟合直线的截距和斜率,从而对新的输入变量所对应的输出变量值进行预测。

2强化学习:

   目的:构建一个系统, 在与环境的交互过程中提高系统的性能.
    强化学习把学习看作试探评价过程,系统选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给系统,Agent根据强化信号和环境当前状态再选择下一个动作。
    选择的原则是:使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。

3,无监督学习:

   目的:通过无监督学习发现数据本身潜在的结构.
处理无类标数据或者总体分布趋势不明朗的数据. 我们可以在没有已知输出变量和反馈函数指导的情况下提取有效信息来探索数据的整体结构.
   (1)聚类:在没有任何相关先验信息的情况下, 将数据划分为有意义的小的组别. 是获取数据的结构信息, 以及导出数据间有价值的关系的很好的技术. 所以也叫无监督聚类.
   (2)数据降维:无监督降维是数据特征预处理时常用的技术, 用于清理数据中的噪声, 能在最大程度保留相关信息的情况下将数据压缩到一个维度较小的子空间. 在数据可视化方面也很有用。

   基本术语介绍: 样本为行, 样本的特征为列, 类标也是列. 在多目标进化算法中: 样本集合就是群体, 样本就是个体, 特征就是个体的属性, 类标就是要达成的目标. 样本是几维的就是有多少特征. 通常把样本和它的特征组成一个矩阵, 样本可以看作行向量, 矩阵可以看作多个列向量组成的.

4、构建机器学习系统:

   使用机器学习的预测模型进行数据分析的典型工作流程:
   (1)数据预处理: 如:属性值映射到[0,1]区间, 或满足标准正太分布, 降维, 划分训练数据集和测试数据集等.特征缩放,降维中的参数只能在训练数据集中提取。
    (2)选择预测模型并进行训练: 选用几种不同的算法来训练模型, 比较它们的性能,选择最优的,常用的指标如分类的准确率. 还可以采用交叉验证技术, 将训练集分为训练子集和验证子集, 从而对模型的泛化能力进行评估。 还可以采用超参优化技术(不是在数据集中提取的参数) 提升模型的性能。
   (3)模型验证与使用未知数据进行预测:使用训练数据集构建一个模型后, 可采用测试集对模型进行测试, 预测模型在未知数据上的表现并对模型的泛化误差进行评估。

二、一些常见的机器学习算法

分为七大部分:
   分类,回归,聚类,推荐算法,深度学习,数据处理与模型训练,工程实战。按顺序介绍,每个部分可能包含多个知识点。

1、线性模型

   线性模型(linear model)试图学习得到一个通过属性的线性组合来进行预测的函数,也就是:f(x) = w T w^T wT + b , 学习得到w和b这两个向量后,模型就得以确定了。而且许多强大的非线性模型是在线性模型的基础上引入层次结构或高维映射而得。
   学习过程:从回归开始,然后讨论二分类和多分类任务。主要有以下几个方面:
   (1)线性回归,逻辑回归(对数几率回归),线性判别分析,多分类学习,类别不平衡,这里面包括梯度下降法了。

2、决策树

   决策树(decision tree)也是一种有监督学习算法。以树状图为基础,输出结果为一系列简单实用的规则,故名决策树。可知,决策树就是一系列的if-then语句,它可以用于分类也可以用于回归问题。优点是:可读性强,分类速度快,学习决策树时,通常采用损失函数最小化原则。

3、贝叶斯分类器

   贝叶斯分类是一种分类算法的总称,它们均以贝叶斯定义为基础。贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,也就是该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。
主要特点是:属性可离散,可连续,分类效率稳定,对缺失和噪声数据不太敏感,属性若不相关,分类效果好;若相关,效果不低于决策树。

4、K近邻算法

   k近邻算法是一种基本的分类与回归方法,也是有监督学习。它的输入为实例的特征向量,通过计算新数据与训练数据特征值之间的距离,选取k个距离最近的邻居进行分类判断(投票法,那个类的多,那么该新数据就属于那个类)或回归(k个最近邻的平均值作为预测值)。
该算法不具有显式的学习过程,它是直接预测。实际上它利用数据集对特征向量空间进行划分,将划分的结果作为其分类的模型。

5、支持向量机

   支持向量机(Support Vector Machine, SVM)的基本模型是定义在特征空间上间隔最大的线性分类器。它是一种二分类模型,当采用核技巧之后,支持向量机可以用于非线性分类。我们可以运用不同类型的支持向量机解决不同的问题:
   (1)线性可分支持向量机(也称为硬间隔支持向量机):当训练数据线性可分时,通过硬间隔最大化,学得一个线性可分支持向量机。
   (2)线性支持向量机(也称为软间隔支持向量机):当训练数据近似线性可分时,通过软间隔最大化,学得一个线性支持向量机。
   (3)非线性支持向量机:当训练数据不可分时,通过核技巧以及软间隔最大化,学得一个非线性支持向量机。

6、人工神经网络

   人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,互连是单元与单元之间的(层之间),并行是在单元内部的。每个单元接受一定数量的实数输入和唯一的实数输出。唯一的实数输出或者是下一个单元的输入,或者是得到的结果。
   常见的人工神经网络包括:感知器神经网络(Perceptron Neural Network),反向传播神经网络(Back Propagation, BP),Hopfield网络,自组织映射网络(Self-Organizing,SOM),学习矢量化(Learning Vector Quantization,LVQ)网络等。

7、聚类

   聚类的思想:将数据集中的样本划分为若干个不想交子集,每个子集称为一个“簇”(cluster),通过这样的划分,每个簇可能对应于一些潜在的概念(类别),但是聚类只负责划分,它不负责告诉你这些簇的意思,所以潜在的概念(类别)需要使用者子集解释。
   聚类的用途:聚类可以作为一个单独的寻找数据内在的分布结构的过程,也可以作为分类等其他学习任务的前驱。
   聚类的两个基本问题:性能度量和距离计算。

8、降维与度量学习

   数据降维就是指采用某种映射方法,将原高维空间中的数据点映射到低纬度空间中。降维的本质是学习一个映射函数。目前大多数降维算法处理向量表达的数据。为什么要降维呢?因为原始高维空间中,包含的冗余信息以及噪声信息,在实际应用中造成了误差,降低了准确率;我们希望通过降维挺高精度或者虚招数据内部的本质结构特征。
   度量学习:每个空间对应的样本属性上都定义了一个距离度量,而寻找合适的空间就是在找一个合适的距离度量,这时度量学习的基本动机。

9、集成学习

   集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。
   (1)同质集成:集成中只包含同种类型的个体学习器,比如神经网络集成中全是神经网络,同质集成中的个体学习器也成为基学习器,相应的算法称为基学习算法。
   (2)异质集成:集成中可包含不同类型的个体学习器。
   工作流程:
   首先:产生一组个体学习器
   然后:使用某种策略将它们结合起来
   :个体学习器通常由一个或多个现有的学习算法从训练数据中产生,比如决策树算法,BP神经网络算法等。

10、半监督学习

   半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。是一类如何自动地利用未标记的数据集来提升学习性能的算法。

11特征选择与稀疏学习

   特征选择:是一个重要的“数据预处理”过程,它是从给定的特征集合中选择出相关特征子集(对当前学习有用的特征)的过程。利用它避免:维数灾难;降低学习任务难度。
   冗余特征:这是一类无关特征,它们包含的信息能从其他特征中推演出来,很多时候不起作用。若其对应了学习任务所需的中间概念,则是有益特征。
   特征选择方法:将特征子集搜索机制和子集评价机制相结合,就得到特征选择方法。我们无法遍历所有可能的特征子集,因为特征数多的时候会造成组合爆炸。我们可以做的是产生一个特征子集,对其评价,基于评价结果产生下一个候选子集,一直到无法找到更好的候选子集位置。所以——
   (1)如何根据评价结果获取下一个候选特征子集呢?
   (2)如何评价候选特征子集的好坏呢?
   子集搜索:前向搜索:每个特征单独评价,选最好作为选定集,然后加入一个特征,如果该集合比上个好则该集合作为选定集,知道不比它好;后向搜索:完整集合,每次去掉一个特征;双向搜索:两者结合,每一轮增加且也减少(注意增加的后来不会去掉)。
   子集评价:基于训练数据D,计算属性子集A的信息增益Gain(A),信息增益越大,意味着特征子集A包含的有助于分类的信息越多,以此作为评价标准。
对于属性子集A,根据A中属性的取值不同,将D分为V个子集,每个子集内样本在A中的属性取值相同,然后计算信息增益。
   更一般得说:特征子集A实际是确定了数据集D的一种划分,每个划分区域对应着A上的一个取值,样本标记信息Y对应D的真实划分,通过估算这两个划分的差异,就能对A进行评价,与Y对应的划分差异越小,说明A越好。只要能判断两个划分差异的机制都能用于特征子集评价。
   发现:将前向搜索和信息熵结合起来,和决策树算法很像。
   常用的特征选择方法:过滤式,包裹式,嵌入式。

12、推荐算法与矩阵分解

推荐算法:
   (1)协同过滤算法:CF算法从用户的历史行为数据中挖掘出用户的兴趣,基于用户与用户或者项与项之间的相关性来为用户推荐其感兴趣的项,根据挖掘方法的不同,可分为基于用户的协同过滤算法和基于项的协同过滤算法。
基于模型的协同过滤算法:首先建立模型,然后利用训练好的模型进行推荐。(用户-商品数据)
   矩阵分解:基于模型的协同过滤算法有效解决了实时推荐的问题,其中矩阵分解是基于模型的协同过滤算法的一种。它首先对用户商品矩阵分解,然后利用分解后的矩阵预测原始矩阵中的未打分项。(用户-商品矩阵)
   (2)基于图的推荐算法:将用户-商品数据,转换为二部图的存储形式。PersonalRank是计算图中节点之间重要性的算法,实现用户推荐。

13、数据预处理

   数据预处理没有标准的流程,
   常用的流程如下:去除唯一属性;处理缺失值;属性编码;数据标准化、正则化;特征选择;主成分分析。

14、模型评估、选择与验证

   通常机器学习过程分为两个阶段,原型设计阶段和应用阶段。
   (1)原型设计阶段:使用历史数据训练一个解决目标任务的一个或多个机器学习模型,对其进行验证和离线评估,然后通过评估得到的指标选择一个较好的模型。
   (2)应用阶段:模型上线,投入生产,使用新生成的数据对模型进行在线评估,更新模型。这两个阶段的评价指标往往不同。
   损失函数:度量错误的程度。
   风险函数为损失函数的期望,我们希望损失函数值越小越好。经验风险为模型在训练集T上的平均损失,常常利用经验风险最小化,结构风险最小化来对经验风险进行校正,得到最优模型。
   0、一些概念:训练误差,泛化误差,过拟合,欠拟合

   1、模型评估方法:
   主要有:留出法,交叉验证法,留一法,自助法。
   2、性能度量:
   主要有:准确率,错误率,精度,查准率,查全率,混淆矩阵,P-R曲线,多类混淆矩阵。ROC曲线,AUC,偏差方差分解。

15、概率图模型

   概率模型提供了一种描述框架,将学习任务归结于计算变量的概率分布,其中利用已知变量推测未知变量的分布成为“推断”,其核心是如何基于可观测变量推测出未知变量的条件分布。
   概率图模型就是一类用图来表达变量相关关系的概率模型。最常见是以一个节点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系。
   分类:根据边的性质不同可分为:
   (1)使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网。
   (2)使用无向图表示变量间的相关关系,成为无向图模型或马尔科夫网。

16、深度学习(多层神经网络与卷积神经网络)

   由来:之前所提到的机器学习算法都需要人工指定其特征的具体形式,也就是需要进行诗句的特征处理得到特征。然后再通过具体的算法,对其进行处理得到结果。这需要大量的先验知识。深度学习不需要大量的先验知识就可以自动学习出特征。
深度学习:利用神经网络技术,自动提取出数据中的特征,这个过程叫做特征学习。
   1、AutoEncoder:
   AutoEncoder是最基本的特征学习方式,对于一些无标注的数据,AutoEncoder通过重构输入数据达到自我学习的目的。
   2、卷积神经网络
   它是多层神经网络的一个变种,CNN充分利用图像数据在局部上的相关性,这样可以尽可能减少网络中参数的个数,以方便网络中参数的求解。

你可能感兴趣的:(机器学习,机器学习,sklearn,深度学习)