初识机器学习
- 机器学习的概念
机器学习是一种从数据当中发现复杂规律,并且利用规律对未来时刻、未知状况进行预测和判定的方法。机器学习是一种从数据当中发现复杂规律,并且利用规律对未来时刻、未知状况进行预测和判定的方法。 - 机器学习的类型
按学习方式分为三大类
- 监督学习(Supervised learning):从给定的训练数据集(历史数据)中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集需要包括输入和输出,也可以说是特征和目标/Label。训练集中的目标是由人标注的。
- 非监督学习(Unsupervised learning):与监督学习相比,输入的数据没有人为标注的结果,模型需要对数据的结构和数值进行归纳。
- 强化学习(Reinforcement learning):输入数据可以刺激模型并且使模型做出反应。反馈不仅从监督学习的学习过程中得到,还从环境中的奖励或惩罚中得到。
- 机器学习的一般过程
机器学习是一个由数据建立模型的过程。
首先是对训练数据进行数据处理,选择算法进行建模和和评估,再对算法进行调优,最后得到一个模型。
数据处理到算法调优这个过程是一个不断完善、循环往复的过程,这个过程相当于做实验,直到得出一个在接受度范围内的模型,但是这个过程是可以被一些先验经验指导的,需要识别问题、识别场景、算法原理掌握等等。
机器学习中的数据处理
- 样本级数据处理
由于实际应用场景中的数据是不完整、不正确、含噪声的,而机器学习建模的数据需要准确、完整、一致、时效、可信,所以需要对数据进行预处理。
样本级的数据处理主要有样本选择和样本生成。
样本选择:存在大量的无意义样本时(比如设备异常检测场景下的设备实时数据),需要对样本进行挑选,使得 不同类型的样本达到均衡。先经过简单去重,用阈值去掉几乎完全相同的样本,再进行样本可视化,将样本按特征显示出来,去掉变化规律几乎一致的样本,然后是规则性去重,设定一系列基于人工的先验规则,过滤样本,规则基于深厚的业务场景理解,最后经过随机过滤得到样本。
样本生成:样本缺失严重、样本对于连续性敏感时需要生成一部分的样本,目的是样本完整性。样本生成要经过统计值填充,在某特征上按照统计量(均值、中位数、最大最小值)等进行缺失值填充,K最近邻填充,用K个
最近(时间上、空间上)的样本的均值进行样本生成,GAN生成,指采用GAN网络进行样本生成。 - 特征级数据处理
特征清洗:进行特征上缺失值、异常值的处理。方法有忽略、缺失值填充、异常值处理、分箱平滑、回归平滑等。
特征生成:进行特征的提取、组合、映射。方法有组合、特征统计、特征移位。
特征选择:进行特征间相关性的分析,进行特征的取舍。 主要方法有:
主成分分析
(1)在每个特征上减去这个特征的平均值。
(2)计算数据集的协方差矩阵。
(3)计算协方差矩阵的特征值和特征向量。
(4)将特征值排序保留最大的N个特征值。
(5)将数据转换到特征向量构建的新空间中。
特征子集
1、逐步向前,从空集开始,每一次添加当前特征集中最有价值的特征,特征价值来自于统计显著性检验、信息增益等。
2、逐步向后,从特征全集开始,每一次删除当前特征集中最没有价值的特征,特征价值来自于统计显著性检验、信息增益等。
3、决策树,构建一棵规定深度的决策树,将没有出现在树中的特征删除。
特征归约:将特征的表征(数据类型)进行一致性处理。方法有:离散化,标准化,光滑,聚类。 - 集合级数据处理
很多数据集是一个二维表,行是样本,列是特征,但是还有一些场景下的数据是一个样本就是一个二维表,将本来由一个二维表表示一个样本转换为一行数据表示一个样本。
当样本处理、特征处理完成之后,进入到建模阶段,需要考虑使用怎样的验证集和测试集去判定模型的好坏,涉及到样本集合的划分。
机器学习中的分类问题
- 定义:使用带有类别标签的训练数据通过一定的算法或规则得出一个针对类别标签的分类器,这个分类器对于不带标签的数据给出标签的预测结果。
- 决策树:是一种类似于流程图的树形结构,其中每个非叶结点都表示在某一个特征或者特征组合上的测试,每一个分支表示该测试的一个条件输出,而每个叶结点存放一个标签。
分裂原则:信息增益,基尼指数。 - 随机森林决策树产出的是一棵树去进行分类的判定,随机森林是使用抽样有放回的方式产生多个训练集,每个训练集产出一棵决策树,最终形成一个决策森林。最终的分类判定由决策森林中的每棵树投票产生。投票方式可以有平等投票和权重投票,一般采用平等投票。
I、随机森林的第一步是随机产生多个数据集,需要提供的参数是森林中树的个数,随机的方式有以下三种:
设森林中树的个数为k,原始训练集为D,一共m个样本,每个样本n个特征。
-
随机样本:对于D中的样本进行有放回的抽样,抽样k次,产生k个小训练集,每个小训练集的样本数小于m,每个样本的特征数依然是n。
-
随机特征:对于D中的特征进行有放回的抽样,抽样k次,产生k个小训练集,每个小训练集的样本数等于m,每个样本的特征数小于n。
-
随机特征组合:随机产生一个数字L,L<n,随机选择L个特征,随机从[-1,1]中产出系数,L个特征和系数产生F个线性组合。
一般3种方式组合进行使用,最终产生的k个小训练集中的每一个的样本数小于m、特征数小于nII、随机森林的第二步是随机进行分裂规则选择,每个小训练集进行决策树产出的时候,可以随机的选择是使用信息增益还是基尼指数等,
III、随机森林的第三步是随机进行分裂特征的指定,每个小训练集进行决策树产出的时候,进行到每一步的分裂计算时,随机产生一个小于n的数t,且t小于这个小训练集的特征数,然后在当前分裂上随机选择t个特征进行分裂规则的计算
- 分类模型评估的指标
准确率:假定一个二分类问题,标签是<0,1>两种。如果是一个多分类问题,则可以站在某一个类别标签的角度看待其它所有的类别标签都可以归为“其它类”的范畴,将多分类转换为二分类。
混淆矩阵:当面临一个多分类问题,且每个类别的权重几乎等同时,利用混淆矩阵进行模型评估。
ROC曲线:当一些分类器(比如基于神经网络)给出的判定值并不是类别标签,而是一些数值,那么就需要给这些数值一个阈值去产生类别,阈值不同,则类别判定结果不同,这样就产生了基于阈值的recall和(1-specificity),每一对这样的两个值看做平面上的一个点,多个阈值产生的点相连就产生了ROC曲线。ROC曲线越凸,表明模型效果越好。 - 逻辑回归算法
逻辑回归是指Logistic Regression,简称LR。LR是一种回归分析方法,但常用在分类问题中。 - 支持向量机算法
能够进行样本分隔的直线只和位于类别边界上的样本相关,SVM希冀通过一些方法找到一条最佳的直线。当把数据推广到超过3维的空间,SVM希冀寻找的就是最佳超平面,这个平面被称为MMH(Maximum Marginal Hyperplane,最大边缘超平面)
机器学习中的回归问题
数据标签:回归问题属于“监督学习”的范畴,即模型建立的必要条件是训练数据当中必须包含标签(label)数据。
1、数据标签用于在进行回归模型训练时对于label列分布的规律进行监督式的发现,准确的数据label是构建一个准确的回归模型的非常重要的因素。
2、label是一个连续型的数值。
一个预测问题在回归模型下的解决步骤为:
数据收集: 我们将收集到的历史数据称之为训练集,“以史为鉴”,模型的训练都是以历史数据为基础进行分析的。
学习训练:有了历史数据之后,我们就可以开始学习训练并总结经验,以上面的产品销量预测为例,我们需要从历史数据中学习,在满足什么样输入的情况下销量是300,以此类推,我们会总结出一个对应关系。在学习阶段,应当找到最合适的学习方法。这类方法我们称之为学习算法 。
回归预测:学习完成后,当接受了新的数据(输入)后,我们就能通过学习阶段获得的对应关系来预测输出。
典型回归方法:
- 线性回归
- KNN回归
- 分类回归树(基于平方误差)
回归问题的评价
- 平均绝对误差( mean absolute error,MAE )
- 均方根误差(root mean squared error,RMSE)
- 均方误差(Mean Squared Error,MSE)
线性回归:在统计学中,线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量(输入数据)和因变量(输出数据)之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。
梯度下降:梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部最小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。梯度下降方法基于以下的观察:如果实值函数 ?(x)在点a处可微且有定义,那么函数 F(x)在a 点沿着梯度相反的方向-??(?)下降最快。
K最近邻回归(KNN):当无法判定当前待识别数据是从属于已知类别中
的哪一类别时,我们可以依据统计学的理论看它所处的位置特征,衡量它周围邻居的权重,而把它归类(或分配)到权重更大的那一类。
随机森林回归:随机森林用于分类还是回归取决于每颗决策树是分类树还是回归树。当为回归树时,树结点采用的分裂原则是最小均方差。
回归树构建过程:
1.考虑数据集 R 上的所有特征 j,遍历每一个特征下所有可能的取值或者切分点 s,将数据集 R 划分成两部分 ?1 和 ?2
2.分别计算上述两个子集的平方误差和,选择最小的平方误差对应的特征与分割点,生成两个子节点。
3.对上述两个子节点递归调用步骤1和2,直到满足停止条件。
梯度提升树:梯度提升树回归是一种基于决策树的迭代回归算法。该算法采用迭代的思想不断地构建回归决策树模型,每棵树都是通过梯度优化损失函数而构建,从而达到从基准值到目标值的逼近。
机器学习中的聚类问题
聚类( Clustering )就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。
基于划分的聚类:
定义:给定一个n个对象的集合,将其按照一定的规则划分为k个分区,其中每个分区表示一个簇,k<=n,每个分区至少包含一个对象。基本划分方法是互斥的。
使用迭代的重定位技术:
1、设定规则。
2、给定一个初始划分。
3、根据规则计算这个划分包含的对象集。
4、更新划分。
5、循环3和4,直到无法更新划分
划分聚类算法:k-means 原理
输入:k(簇的数目)、要进行分类的数据集D
输出:k个簇的集合
过程:
1)从D中以某种规则选择k个样本或者k个在值域范围内的点作为初始簇的中心
2)计算簇中心之外的每个样本和每个簇中心的距离,将样本归属于最近的的簇。
3)计算簇内均值,将均值作为簇的中心。
4)训练2和3,直到簇中心的变化小于一定的阈值或者即便簇中心变动,但是簇内样本不变动。
基于层次的聚类:
在某些情况下,希望可以将数据划分成不同层次或者level上的簇。比如考虑某一种疾病的发病率,可以从个体发病率的角度去考虑、也可以从群体(比如性别)的角度去考虑。如果能够将数据在不同层次上进行聚类,则能发现更多的数据规律。
可以把所有数据看做一个大簇,也可以把每一个样本看做一个小簇。这样就衍生出了基于分裂的层次方法和基于凝聚的层次方法。
基于分裂的层次方法:自顶向下,迭代的进行分裂,从1个大簇形成多个小簇,最底层的簇都足够的凝聚(包含一个对象or 簇内的样本彼此都充分的相似)
基于凝聚的层次方法:自底向上,迭代的进行合并,从n个小簇形成更大的簇,终止条件可设定,也可以是最终形成一个簇。
样本距离计算方法:
- 欧氏距离
- 标准化欧式距离
- 余弦距离
- 曼哈顿距离
来源:CSDN
作者:Iseeasong
链接:https://blog.csdn.net/weixin_44323916/article/details/85469734