目录html
上篇文章中,咱们就机器学习的相关基础概念进行了阐述,包括机器学习的基本概念以及机器学习的分类。不了解的童鞋能够看一下补补课,机器学习系列(一)——基础概念及分类。
分类和回归问题做为典型的机器学习问题,一直困扰了我好久,在查了好多文献和推文后,整理下来下面的文档,但愿能够帮助你们,更加细致全面的了解这两种算法。算法
分类算法和回归算法的区别:网络
分类算法和回归算法是对真实世界不一样建模的方法。分类模型是认为模型的输出是离散的,例如大天然的生物被划分为不一样的种类,是离散的。回归模型的输出是连续的,例如人的身高变化过程是一个连续过程,而不是离散的。框架
所以,在实际建模过程时,采用分类模型仍是回归模型,取决于你对任务(真实世界)的分析和理解。机器学习
接下来首先介绍经常使用分类算法的优缺点,如表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比较敏感 |
分类评估方法主要功能是用来评估分类算法的好坏,而评估一个分类器算法的好坏又包括许多项指标。了解各类评估方法,在实际应用中选择正确的评估方法是十分重要的。性能
几个经常使用术语
这里首先介绍几个常见的模型评价术语,如今假设咱们的分类目标只有两类,计为正例(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 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。
不一样算法有不一样特色,在不一样数据集上有不一样的表现效果,根据特定的任务选择不一样的算法。如何评价分类算法的好坏,要作具体任务具体分析。对于决策树,主要用正确率去评估,可是其余算法,只用正确率能很好的评估吗?
答案是否认的。
正确率确实是一个很直观很好的评价指标,可是有时候正确率高并不能彻底表明一个算法就好。好比对某个地区进行地震预测,地震分类属性分为0:不发生地震、1发生地震。咱们都知道,不发生的几率是极大的,对于分类器而言,若是分类器不加思考,对每个测试样例的类别都划分为0,达到99%的正确率,可是,问题来了,若是真的发生地震时,这个分类器毫无察觉,那带来的后果将是巨大的。很显然,99%正确率的分类器并非咱们想要的。出现这种现象的缘由主要是数据分布不均衡,类别为1的数据太少,错分了类别1但达到了很高的正确率缺忽视了研究者自己最为关注的状况。
对某一个任务,某个具体的分类器不可能同时知足或提升全部上面介绍的指标。
若是一个分类器能正确分对全部的实例,那么各项指标都已经达到最优,但这样的分类器每每不存在。好比以前说的地震预测,既然不能百分百预测地震的发生,但实际状况中能容忍必定程度的误报。假设在1000次预测中,共有5次预测发生了地震,真实状况中有一次发生了地震,其余4次则为误报。正确率由原来的999/1000=99.9降低为996/1000=99.6。召回率由0/1=0%上升为1/1=100%。对此解释为,虽然预测失误了4次,但真的地震发生前,分类器能预测对,没有错过,这样的分类器实际意义更为重大,正是咱们想要的。在这种状况下,在必定正确率前提下,要求分类器的召回率尽可能高。
广义线性模型家族里,依据因变量不一样,能够有以下划分:
(1)若是是连续的,就是多重线性回归。
(2)若是是二项分布,就是逻辑回归。
(3)若是是泊松(Poisson)分布,就是泊松回归。
(4)若是是负二项分布,就是负二项回归。
(5)逻辑回归的因变量能够是二分类的,也能够是多分类的,可是二分类的更为经常使用,也更加容易解释。因此实际中最经常使用的就是二分类的逻辑回归。
逻辑回归可用于如下几个方面:
(1)用于几率预测。用于可能性预测时,获得的结果有可比性。好比根据模型进而预测在不一样的自变量状况下,发生某病或某种状况的几率有多大。
(2)用于分类。实际上跟预测有些相似,也是根据模型,判断某人属于某病或属于某种状况的几率有多大,也就是看一下这我的有多大的可能性是属于某病。进行分类时,仅须要设定一个阈值便可,可能性高于阈值是一类,低于阈值是另外一类。
(3)寻找危险因素。寻找某一疾病的危险因素等。
(4)仅能用于线性问题。只有当目标和特征是线性关系时,才能用逻辑回归。在应用逻辑回归时注意两点:一是当知道模型是非线性时,不适用逻辑回归;二是当使用逻辑回归时,应注意选择和目标为线性关系的特征。
(5)各特征之间不须要知足条件独立假设,但各个特征的贡献独立计算。
逻辑回归与朴素贝叶斯区别有如下几个方面:
(1)逻辑回归是判别模型, 朴素贝叶斯是生成模型,因此生成和判别的全部区别它们都有。
(2)朴素贝叶斯属于贝叶斯,逻辑回归是最大似然,两种几率哲学间的区别。
(3)朴素贝叶斯须要条件独立假设。
(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) |
函数 | 拟合函数 | 预测函数 |
参数计算方式 | 最小二乘法 | 极大似然估计 |
下面具体解释一下: