机器学习系列(二)——分类及回归问题

机器学习基础(二)

上篇文章中,咱们就机器学习的相关基础概念进行了阐述,包括机器学习的基本概念以及机器学习的分类。不了解的童鞋能够看一下补补课,机器学习系列(一)——基础概念及分类
分类和回归问题做为典型的机器学习问题,一直困扰了我好久,在查了好多文献和推文后,整理下来下面的文档,但愿能够帮助你们,更加细致全面的了解这两种算法。算法

分类算法和回归算法的区别:网络

​ 分类算法和回归算法是对真实世界不一样建模的方法。分类模型是认为模型的输出是离散的,例如大天然的生物被划分为不一样的种类,是离散的。回归模型的输出是连续的,例如人的身高变化过程是一个连续过程,而不是离散的。框架

​ 所以,在实际建模过程时,采用分类模型仍是回归模型,取决于你对任务(真实世界)的分析和理解。机器学习

3 分类算法

3.1 经常使用分类算法的优缺点?

​ 接下来首先介绍经常使用分类算法的优缺点,如表2-1所示。分布式

​ 表2-1 经常使用分类算法的优缺点函数

算法 优势 缺点
Bayes 贝叶斯分类法 1)所需估计的参数少,对于缺失数据不敏感。
2)有着坚实的数学基础,以及稳定的分类效率。
1)须要假设属性之间相互独立,这每每并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)。
2)须要知道先验几率。
3)分类决策存在错误率。
Decision Tree决策树 1)不须要任何领域知识或参数假设。
2)适合高维数据。
3)简单易于理解。
4)短期内处理大量数据,获得可行且效果较好的结果。
5)可以同时处理数据型和常规性属性。
1)对于各种别样本数量不一致数据,信息增益偏向于那些具备更多数值的特征。
2)易于过拟合。
3)忽略属性之间的相关性。
4)不支持在线学习。
SVM支持向量机 1)能够解决小样本下机器学习的问题。
2)提升泛化性能。
3)能够解决高维、非线性问题。超高维文本分类仍受欢迎。
4)避免神经网络结构选择和局部极小的问题。
1)对缺失数据敏感。
2)内存消耗大,难以解释。
3)运行和调参略烦人。
KNN K近邻 1)思想简单,理论成熟,既能够用来作分类也能够用来作回归;
2)可用于非线性分类;
3)训练时间复杂度为O(n);
4)准确度高,对数据没有假设,对outlier不敏感;
1)计算量太大。
2)对于样本分类不均衡的问题,会产生误判。
3)须要大量的内存。
4)输出的可解释性不强。
Logistic Regression逻辑回归 1)速度快。
2)简单易于理解,直接看到各个特征的权重。
3)能容易地更新模型吸取新的数据。
4)若是想要一个几率框架,动态调整分类阀值。
特征处理复杂。须要归一化和较多的特征工程。
Neural Network 神经网络 1)分类准确率高。
2)并行处理能力强。
3)分布式存储和学习能力强。
4)鲁棒性较强,不易受噪声影响。
1)须要大量参数(网络拓扑、阀值、阈值)。
2)结果难以解释。
3)训练时间过长。
Adaboosting 1)adaboost是一种有很高精度的分类器
2)可使用各类方法构建子分类器,Adaboost算法提供的是框架。
3)当使用简单分类器时,计算出的结果是能够理解的。并且弱分类器构造极其简单。
4)简单,不用作特征筛选。
5)不用担忧overfitting。
对outlier比较敏感

3.2 分类算法的评估方法

​ 分类评估方法主要功能是用来评估分类算法的好坏,而评估一个分类器算法的好坏又包括许多项指标。了解各类评估方法,在实际应用中选择正确的评估方法是十分重要的。性能

  • 几个经常使用术语
    ​ 这里首先介绍几个常见的模型评价术语,如今假设咱们的分类目标只有两类,计为正例(positive)和负例(negative)分别是:
    1) True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;
    2) False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
    3) False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
    4) True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。  ​
    四个术语组成混淆矩阵
    1)P=TP+FN表示实际为正例的样本个数。
    2)True、False描述的是分类器是否判断正确。
    3)Positive、Negative是分类器的分类结果,若是正例计为一、负例计为-1,即positive=一、negative=-1。用1表示True,-1表示False,那么实际的类标=TF*PN,TF为true或false,PN为positive或negative。
    4)例如True positives(TP)的实际类标=1*1=1为正例,False positives(FP)的实际类标=(-1)*1=-1为负例,False negatives(FN)的实际类标=(-1)*(-1)=1为正例,True negatives(TN)的实际类标=1*(-1)=-1为负例。学习

  • 评价指标
    1) 正确率(accuracy)
    正确率是咱们最多见的评价指标,accuracy = (TP+TN)/(P+N)正确率是被分对的样本数在全部样本数中的占比,一般来讲,正确率越高,分类器越好。
    2) 错误率(error rate)
    错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来讲,分对与分错是互斥事件,因此accuracy =1 - error rate。
    3) 灵敏度(sensitivity)
    sensitivity = TP/P,表示的是全部正例中被分对的比例,衡量了分类器对正例的识别能力
    4) 特异性(specificity)
    specificity = TN/N,表示的是全部负例中被分对的比例,衡量了分类器对负例的识别能力。
    5) 精度(precision)
    precision=TP/(TP+FP),精度是精确性的度量,表示被分为正例的示例中实际为正例的比例
    6) 召回率(recall)
    召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitivity,能够看到召回率与灵敏度是同样的。
    7) 其余评价指标
    计算速度:分类器训练和预测须要的时间;评估速度的经常使用指标是每秒帧率(Frame Per Second,FPS),即每秒内能够处理的图片数量。固然要对比FPS,你须要在同一硬件上进行。另外也可使用处理一张图片所需时间来评估检测速度,时间越短,速度越快。
    鲁棒性:处理缺失值和异常值的能力;
    可扩展性:处理大数据集的能力;
    可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就很差理解,咱们只好把它当作一个黑盒子。
    8) 精度和召回率反映了分类器分类性能的两个方面。若是综合考虑查准率与查全率,能够获得新的评价指标F1-score,也称为综合分类率:\(F1=\frac{2 \times precision \times recall}{precision + recall}\)测试

    为了综合多个类别的分类状况,评测系统总体性能,常常采用的还有微平均F1(micro-averaging)和宏平均F1(macro-averaging )两种指标。

    (1)宏平均F1与微平均F1是以两种不一样的平均方式求的全局F1指标。

    (2)宏平均F1的计算方法先对每一个类别单独计算F1值,再取这些F1值的算术平均值做为全局指标。

    (3)微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值,再由这些值求出F1值。

    (4)由两种平均F1的计算方式不难看出,宏平均F1平等对待每个类别,因此它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每个文档,因此它的值受到常见类别的影响比较大。

  • ROC曲线和PR曲线

    ROC曲线是(Receiver Operating Characteristic Curve,受试者工做特征曲线)的简称,是以灵敏度(真阳性率)为纵坐标,以1减去特异性(假阳性率)为横坐标绘制的性能评价曲线。能够将不一样模型对同一数据集的ROC曲线绘制在同一笛卡尔坐标系中,ROC曲线越靠近左上角,说明其对应模型越可靠。也能够经过ROC曲线下面的面积(Area Under Curve, AUC)来评价模型,AUC越大,模型越可靠。

    PR曲线是Precision Recall Curve的简称,描述的是precision和recall之间的关系,以recall为横坐标,precision为纵坐标绘制的曲线。该曲线的所对应的面积AUC其实是目标检测中经常使用的评价指标平均精度(Average Precision, AP)。AP越高,说明模型性能越好。 mAP 即 Mean Average Precision即平均AP值,是对多个验证集个体求平均AP值,做为 object dection中衡量检测精度的指标。

图像目标检测的IOU是什么?

IoU 做为目标检测算法性能 mAP 计算的一个很是重要的函数。IoU 的全称为交并比(Intersection over Union),经过这个名称咱们大概能够猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。

3.3 正确率能很好的评估分类算法吗

​ 不一样算法有不一样特色,在不一样数据集上有不一样的表现效果,根据特定的任务选择不一样的算法。如何评价分类算法的好坏,要作具体任务具体分析。对于决策树,主要用正确率去评估,可是其余算法,只用正确率能很好的评估吗?
​ 答案是否认的。
​ 正确率确实是一个很直观很好的评价指标,可是有时候正确率高并不能彻底表明一个算法就好。好比对某个地区进行地震预测,地震分类属性分为0:不发生地震、1发生地震。咱们都知道,不发生的几率是极大的,对于分类器而言,若是分类器不加思考,对每个测试样例的类别都划分为0,达到99%的正确率,可是,问题来了,若是真的发生地震时,这个分类器毫无察觉,那带来的后果将是巨大的。很显然,99%正确率的分类器并非咱们想要的。出现这种现象的缘由主要是数据分布不均衡,类别为1的数据太少,错分了类别1但达到了很高的正确率缺忽视了研究者自己最为关注的状况。

3.4 什么样的分类器是最好的

​ 对某一个任务,某个具体的分类器不可能同时知足或提升全部上面介绍的指标。
​ 若是一个分类器能正确分对全部的实例,那么各项指标都已经达到最优,但这样的分类器每每不存在。好比以前说的地震预测,既然不能百分百预测地震的发生,但实际状况中能容忍必定程度的误报。假设在1000次预测中,共有5次预测发生了地震,真实状况中有一次发生了地震,其余4次则为误报。正确率由原来的999/1000=99.9降低为996/1000=99.6。召回率由0/1=0%上升为1/1=100%。对此解释为,虽然预测失误了4次,但真的地震发生前,分类器能预测对,没有错过,这样的分类器实际意义更为重大,正是咱们想要的。在这种状况下,在必定正确率前提下,要求分类器的召回率尽可能高。

4 逻辑回归

4.1 回归划分

广义线性模型家族里,依据因变量不一样,能够有以下划分:

(1)若是是连续的,就是多重线性回归

(2)若是是二项分布,就是逻辑回归

(3)若是是泊松(Poisson)分布,就是泊松回归

(4)若是是负二项分布,就是负二项回归

(5)逻辑回归的因变量能够是二分类的,也能够是多分类的,可是二分类的更为经常使用,也更加容易解释。因此实际中最经常使用的就是二分类的逻辑回归。

4.2 逻辑回归适用性

逻辑回归可用于如下几个方面:

(1)用于几率预测。用于可能性预测时,获得的结果有可比性。好比根据模型进而预测在不一样的自变量状况下,发生某病或某种状况的几率有多大。

(2)用于分类。实际上跟预测有些相似,也是根据模型,判断某人属于某病或属于某种状况的几率有多大,也就是看一下这我的有多大的可能性是属于某病。进行分类时,仅须要设定一个阈值便可,可能性高于阈值是一类,低于阈值是另外一类。

(3)寻找危险因素。寻找某一疾病的危险因素等。

(4)仅能用于线性问题。只有当目标和特征是线性关系时,才能用逻辑回归。在应用逻辑回归时注意两点:一是当知道模型是非线性时,不适用逻辑回归;二是当使用逻辑回归时,应注意选择和目标为线性关系的特征。

(5)各特征之间不须要知足条件独立假设,但各个特征的贡献独立计算。

4.3 逻辑回归与朴素贝叶斯有什么区别

逻辑回归与朴素贝叶斯区别有如下几个方面:

(1)逻辑回归是判别模型, 朴素贝叶斯是生成模型,因此生成和判别的全部区别它们都有

(2)朴素贝叶斯属于贝叶斯,逻辑回归是最大似然,两种几率哲学间的区别

(3)朴素贝叶斯须要条件独立假设。

(4)逻辑回归须要求特征参数间是线性的。

4.4 线性回归与逻辑回归的区别

线性回归与逻辑回归的区别以下描述:

(1)线性回归的样本的输出,都是连续值,$ y\in (-\infty ,+\infty )\(,而逻辑回归中\)y\in (0,1)$,只能取0和1。

(2)对于拟合函数也有本质上的差异:

​ 线性回归:\(f(x)=\theta ^{T}x=\theta _{1}x _{1}+\theta _{2}x _{2}+...+\theta _{n}x _{n}\)

​ 逻辑回归:\(f(x)=P(y=1|x;\theta )=g(\theta ^{T}x)\),其中,\(g(z)=\frac{1}{1+e^{-z}}\)

​ 能够看出,线性回归的拟合函数,是对f(x)的输出变量y的拟合,而逻辑回归的拟合函数是对为1类样本的几率的拟合。

​ 那么,为何要以1类样本的几率进行拟合呢,为何能够这样拟合呢?

\(\theta ^{T}x=0\)就至关因而1类和0类的决策边界:

​ 当\(\theta ^{T}x>0\),则y>0.5;若$\theta ^{T}x\rightarrow +\infty \(,则\)y \rightarrow 1 $,即y为1类;

​ 当\(\theta ^{T}x<0\),则y<0.5;若$\theta ^{T}x\rightarrow -\infty \(,则\)y \rightarrow 0 $,即y为0类;

这个时候就能看出区别,在线性回归中\(\theta ^{T}x\)为预测值的拟合函数;而在逻辑回归中\(\theta ^{T}x\)为决策边界。下表2-3为线性回归和逻辑回归的区别。

​ 表2-3 线性回归和逻辑回归的区别

线性回归 逻辑回归
目的 预测 分类
\(y^{(i)}\) 未知 (0,1)
函数 拟合函数 预测函数
参数计算方式 最小二乘法 极大似然估计

下面具体解释一下:

  1. 拟合函数和预测函数什么关系呢?简单来讲就是将拟合函数作了一个逻辑函数的转换,Sigmod函数将$ y\in (-\infty ,+\infty )\(,转换后使得\)y^{(i)} \in (0,1)$;
  2. 最小二乘和最大似然估计能够相互替代吗?回答固然是不行了。咱们来看看二者依仗的原理:最大似然估计是计算使得数据出现的可能性最大的参数,依仗的天然是Probability。而最小二乘是计算偏差损失(平方差)。
相关文章
相关标签/搜索