一天1个机器学习知识点(三)

陆陆续续整理的机器学习的知识点,资料大多数来自网上,不做盈利目的,如果侵权请告知即删!如果文章中有错误的地方还请各位同学指正,,一起学习,一起进步!
每天都在更新中,记得收藏,每天进步一点点!!

一天1个机器学习知识点(一)(决策树,有无监督学习,SVM,梯度下降法,逻辑回归,NB)
一天1个机器学习知识点(二)(KNN,Kmeans,偏差方差,参数非参数模型,生成模型判别模型,正则化,概率,牛顿法,熵)
一天1个机器学习知识点(三)(损失函数,生成模型和判别模型,DBSCAN,OPTICS,准确率,精确率,召回率,ROC等)
一天1个机器学习知识点(四)这部分主要更新集成学习的内容(RF,adaboost,GBDT,XGBoost等)
一天1个机器学习知识点(五)(特征工程相关,PCA,LDA等)

穿越---->深度学习知识点!!

1.什么是DBSCAN?

这篇知乎对DBSCAN写的很好。
参考回答:
DBSCAN是一种基于密度的空间聚类算法,它不需要定义簇的个数,而是将具有足够高密度的区域划分为簇,并在有噪声的数据中发现任意形状的簇,在此算法中将簇定义为密度相连的点的最大集合。

DBSCAN的算法步骤分成两步:
1,寻找核心点形成临时聚类簇。
扫描全部样本点,如果某个样本点R半径范围内点数目>=MinPoints,则将其纳入核心点列表,并将其密度直达的点形成对应的临时聚类簇

2,合并临时聚类簇得到聚类簇。
对于每一个临时聚类簇,检查其中的点是否为核心点,如果是,将该点对应的临时聚类簇和当前临时聚类簇合并,得到新的临时聚类簇。

重复此操作,直到当前临时聚类簇中的每一个点要么不在核心点列表,要么其密度直达的点都已经在该临时聚类簇,该临时聚类簇升级成为聚类簇

继续对剩余的临时聚类簇进行相同的合并操作,直到全部临时聚类簇被处理。

2.什么是OPTICS?

3.DBSCAN与kmeans,OPTICS区别

3.1.DBSCAN与kmeans

1)K均值和DBSCAN都是将每个对象指派到单个簇的划分聚类算法,但是K均值一般聚类所有对象,而DBSCAN 丢弃被它识别为噪声的对象
2)K均值使用的基于原型的概念,而DBSCAN使用基于密度的概念。
3)K均值很难处理非球形的簇和不同大小的簇。DBSCAN可以处理不同大小或形状的簇,并且不太受噪声和离群点的影响。当簇具有很不相同的密度时,两种算法的性能都很差。
4)K均值只能用于具有明确定义的质心(比如均值或中位数)的数据。DBSCAN要求密度定义(基于传统的欧几里得密度概念)对于数据是有意义的。
5)K均值可以用于
稀疏的高维数据
,如文档数据。DBSCAN通常在这类数据上的性能很差,因为对于高维数据,传统的欧几里得密度定义不能很好处理它们。
6)K均值和DBSCAN的最初版本都是针对欧几里得数据设计的,但是它们都被扩展,以便处理其他类型的数据。
7)基本K均值算法等价于一种统计聚类方法(混合模型),假定所有的簇都来自球形高斯分布,具有不同的均值,但具有相同的协方差矩阵。DBSCAN不对数据的分布做任何假定。
8)K均值和DBSCAN都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇。
9)K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇
10)K均值算法的时间复杂度是O(m),而DBSCAN的时间复杂度是O(m^2),除非用于诸如低维欧几里得数据这样的特殊情况。
11)DBSCAN多次运行产生相同的结果,而K均值通常使用随机初始化质心,不会产生相同的结果。
12)DBSCAN自动地确定簇个数,对于K均值,簇个数需要作为参数指定。然而,DBSCAN必须指定另外两个参数:Eps(邻域半径)和MinPts(最少点数)。
13)K均值聚类可以看作优化问题,即最小化每个点到最近质心的误差平方和,并且可以看作一种统计聚类(混合模型)的特例。DBSCAN不基于任何形式化模型。

3.2.DBSCAN与OPTICS的区别

1)DBSCAN算法,有两个初始参数E(邻域半径)和minPts(E邻域最小点数)需要用户手动设置输入,并且聚类的类簇结果对这两个参数的取值非常敏感,不同的取值将产生不同的聚类结果,其实这也是大多数其他需要初始化参数聚类算法的弊端。

2)为了克服DBSCAN算法这一缺点,提出了OPTICS算法(Ordering Points to identify the clustering structure)。OPTICS并 不显示的产生结果类簇,而是为聚类分析生成一个增广的簇排序(比如,以可达距离为纵轴,样本点输出次序为横轴的坐标图),这个排序代表了各样本点基于密度的聚类结构。它包含的信息等价于从一个广泛的参数设置所获得的基于密度的聚类,换句话说,从这个排序中可以得到基于任何参数E和minPts的DBSCAN算法的聚类结果。

4.机器学习的损失函数都有哪些,怎么用?

这篇文章有详细介绍。

4.1.平方损失函数最小二乘法, Ordinary Least Squares )

最小二乘法是线性回归的一种,最小二乘法(OLS)将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(为什么假设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理,可以参考【central limit theorem】),最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。换言之,OLS是基于距离的,而这个距离就是我们用的最多的欧几里得距离。为什么它会选择使用欧式距离作为误差度量呢(即Mean squared error, MSE),主要有以下几个原因:
简单,计算方便;
欧氏距离是一种很好的相似性度量标准;
在不同的表示域变换后特征性质不变。

当样本个数为n时,此时的损失函数变为:
在这里插入图片描述
Y-f(X)表示的是残差,整个式子表示的是残差的平方和,而我们的目的就是最小化这个目标函数值(注:该式子未加入正则项),也就是最小化残差的平方和(residual sum of squares,RSS)。

而在实际应用中,通常会使用均方差(MSE)作为一项衡量指标,公式如下
在这里插入图片描述

4.2.LogLoss对数损失函数(逻辑回归,交叉熵损失)

在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:最小化负的似然函数(即max F(y, f(x)) —> min -F(y, f(x)))。
在这里插入图片描述
刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE(最大似然估计)中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到最大值(换言之,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大)。因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。
在这里插入图片描述

4.3.指数损失函数(Adaboost)

在这里插入图片描述

4.4.Hinge损失函数(SVM)

这里
在这里插入图片描述
在这里插入图片描述

5.blending和stacking

这部分也属于集成学习的部分。

5.1.blending

  • 将数据划分为训练集和测试集(test_set),其中训练集需要再次划分为训练集(train_set)和验证集(val_set);
  • 创建第一层的多个模型,这些模型可以使同质的也可以是异质的;
  • 使用train_set训练步骤2中的多个模型,然后用训练好的模型预测val_set和test_set得到val_predict,
    test_predict1;
  • 创建第二层的模型,使用val_predict作为训练集训练第二层的模型;
  • 使用第二层训练好的模型对第二层测试集test_predict1进行预测,该结果为整个测试集的结果

Blending与Stacking大致相同,只是Blending的主要区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集,例如10%的训练数据,第二阶段的stacker模型就基于第一阶段模型对这10%训练数据的预测值进行拟合。说白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV。
在这里插入图片描述

5.2.stacking

  • 将数据划分为训练集和测试集(test_set),对训练集进行划分为K个大小相似的集合,取其中一份作为验证集val_set,其余的为训练集train_set;
  • 创建第一层的多个模型,这些模型可以使同质的也可以是异质的;
  • 对于每一个模型来说,train_set和val_set是不一样的,如2.2图所示;然后利用各自的train_set训练各自的模型,训练好的模型对各自的val_set和test_set进行预测,得到val_predict和test_predict;
  • 创建第二层的模型,将每个模型对应的val_predict拼接起来作为第二层的训练集,将所有模型的test_predict取平均值作为第二层的测试集;用训练好的第二层模型对第二层的测试集进行预测,得到的结果即为整个测试集的结果
    在这里插入图片描述

5.3Blending与Stacking对比

Blending的优点在于:
1.比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
2.避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
3.在团队建模过程中,不需要给队友分享自己的随机种子

而缺点在于:
1.使用了很少的数据(是划分hold-out作为测试集,并非cv)
2.blender可能会过拟合(其实大概率是第一点导致的)
3.stacking使用多次的CV会比较稳健

6.softmax

在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。max存在的一个问题是什么呢?如果将max看成一个分类问题,就是非黑即白,最后的输出是一个确定的变量。更多的时候,我们希望输出的是取到某个分类的概率,或者说,我们希望分值大的那一项被经常取到,而分值较小的那一项也有一定的概率偶尔被取到,所以我们就应用到了soft的概念,即最后的输出是每个分类被取到的概率。

下面为大家解释一下为什么softmax是这种形式。
首先,我们知道概率有两个性质:
1)预测的概率为非负数;
2)各种预测结果概率之和等于1。

softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的,其公式为:
在这里插入图片描述
总结一下softmax如何将多分类输出转换为概率,可以分为两步:
1)分子:通过指数函数,将实数输出映射到零到正无穷。
2)分母:将所有结果相加,进行归一化。

7.矩阵正定性的判断,Hessian矩阵正定性在梯度下降中的应用

若矩阵所有特征值均不小于0,则判定为半正定。若矩阵所有特征值均大于0,则判定为正定。在判断优化算法的可行性时Hessian矩阵的正定性起到了很大的作用,若Hessian正定,则函数的二阶偏导恒大于0,函数的变化率处于递增状态,在牛顿法等梯度下降的方法中,Hessian矩阵的正定性可以很容易的判断函数是否可收敛到局部或全局最优解

8.生成模型和判别模型

从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi。
生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布P(y|x)。能够学习到数据生成的机制。
判别模型:学习得到条件概率分布P(y|x),即在特征x出现的情况下标记y出现的概率。
数据要求:生成模型需要的数据量比较大,能够较好地估计概率密度;而判别模型对数据样本量的要求没有那么多。

8.1生成模型和判别模型的范例

生成模型:朴素贝叶斯、隐马尔可夫(em算法)
判别模型:k近邻法、决策树、支持向量机(SVM)、逻辑回归、线性回归、最大熵模型、提升方法、感知机、条件随机场(CRF)

8.2生成模型和判别模型的对比

  • 生成模型可以还原出联合概率分布(还原数据本身相似度),而判别方法不能;
  • 生成模型的学习收敛速度更快,当样本容量增加的时候,学到的模型可以更快的收敛于真实模型;
  • 当存在隐变量时,仍可以利用生成方法学习,此时判别方法不能用
  • 判别学习不能反映训练数据本身的相似度,但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异,直接面对预测,往往学习的准确率更高,由于直接学习P(Y|X)或Y=f(X),从而可以简化学习;
  • 简单的说,生成模型是从大量的数据中找规律,属于统计学习;而判别模型只关心不同类型的数据的差别,利用差别来分类。

8.3生成模型和判别模型的特点

在监督学习中,两种方法各有优缺点,适合于不同条件的学习问题。
生成方法的特点:

  • 生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。
  • 生成方法可以还原出联合概率分布P(Y|X),而判别方法不能。
  • 生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型。
  • 当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用。

判别方法的特点:

  • 判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。
  • 但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
  • 直接面对预测,往往学习的准确率更高
  • 由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

8.4生成模型和判别模型的联系

由生成模型可以得到判别模型,但由判别模型得不到生成模型

9.准确率、精确率、召回率、F1值

参考

9.1.混淆矩阵

在这里插入图片描述
TP、FP、FN、TN可以理解为

  • TP:预测为1,实际为1,预测正确。
  • FP:预测为1,实际为0,预测错误。
  • FN:预测为0,实际为1,预测错误。
  • TN:预测为0,实际为0,预测正确。

9.2.准确率

预测正确的结果占总样本的百分比,表达式为:
在这里插入图片描述
虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。

比如在样本集中,正样本有90个,负样本有10个,样本是严重的不均衡。对于这种情况,我们只需要将全部样本预测为正样本,就能得到90%的准确率,但是完全没有意义。对于新数据,完全体现不出准确率。因此,在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。所以,我们需要寻找新的指标来评价模型的优劣。

9.3.精确率

精确率(Precision) 是针对预测结果为正而言的,其含义是在被所有预测为正的样本中实际为正样本的概率,表达式为:
在这里插入图片描述
精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。

9.4.召回率

召回率(Recall) 是针对原样本为正而言的,其含义是在实际为正的样本中被预测为正样本的概率,表达式为
在这里插入图片描述

9.5.F1分数

首先我们先明确目标,我们希望精确率和召回率都很高,但实际上是矛盾的,上述两个指标是矛盾体,无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。但通常情况下,我们可以根据他们之间的平衡点,定义一个新的指标:F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。F1分数表达式为:
在这里插入图片描述

9.6.Roc、AUC曲线

真正率(TPR)和假正率(FPR):

  • 横坐标:伪正类率(False positive rate,FPR,FPR=FP/(FP+TN)),预测为正但实际为负的样本占所有负例样本的比例;
  • 纵坐标:真正类率(True positive rate,TPR,TPR=TP/(TP+FN)),预测为正且实际为正的样本占所有正例样本的比例(召回率)

ROC曲线也是通过遍历所有阈值来绘制曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的ROC曲线TPR和FPR也会沿着曲线滑动。FPR表示模型虚报的程度,TPR表示模型预测覆盖的程度。理所当然的,我们希望虚报的越少越好,覆盖的越多越好。所以TPR越高,同时FPR越低,也就是ROC曲线越陡,那么模型的性能也就越好。不论样本比例如何改变,ROC曲线都没有影响,也就是ROC曲线无视样本间的不平衡问题。

AUC(Area Under Curve) 表示ROC中曲线下的面积,用于判断模型的优劣。如ROC曲线所示,连接对角线的面积刚好是0.5,对角线的含义也就是随机判断预测结果,正负样本覆盖应该都是50%。另外,ROC曲线越陡越好,所以理想值是1,即正方形。所以AUC的值一般是介于0.5和1之间的。AUC评判标准可参考如下:

  • 0.5-0.7:效果较低。
  • 0.7-0.85:效果一般。
  • 0.85-0.95:效果很好。
  • 0.95-1:效果非常好

10.线性与非线性

参考

10.1线性模型

在统计意义上,如果一个回归等式是线性的,那么它的相对于参数就必须也是线性的。如果相对于参数是线性,那么即使性对于样本变量的特征是二次方或者多次方,这个回归模型也是线性的.
在这里插入图片描述

10.2非线性模型

最简单的判断一个模型是不是非线性,就是关注非线性本身,判断它的参数是不是非线性的。非线性有很多种形象,这也是为什么非线性模型能够那么好的拟合那些曲折的函数曲线的原因。

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值