聚类算法之核函数

news/2024/5/20 6:23:13 标签: 算法, 聚类, 机器学习

一:监督学习与无监督学习
1,监督学习
监督学习就是人们常说的分类,通过训练已有样本得到一个最优模型,利用该模型将输入转化成输出,对输出进行判断,从而实现分类,也就是具有了对未知数据进行分类的能力。
2,无监督学习
他与监督学习最大的区别在于事先没有任何的训练样本,直接对数据进行建模,典型的例子就是聚类算法
3,如何选择监督学习还是无监督学习
首先看是否有训练数据,也就是是否有标签,如果有,就用监督学习(分类),否则就用无监督学习。
其次,看数据条件是否可改善。如果可以将数据进行改善,就用监督学习,否则无监督
最后,看样本是否独立分布。对于有训练样本的情况,有监督总比无监督好。
二:机器学习之核函数
1,核函数的定义
机器学习中,线性可分的情况我们都可用svm/lr/感知机等进行清楚的分析,但是在实际生产中我们的数据基本是高维且不可分的,通常的办法是选用一个∮(x),将x映射到另一个高维空间中,使其线性可分。这里的核心就是如何选用∮(x),一般有三种方法
【1】:通过现有核函数,例如径向基函数(rbf)。如果∮(x)有足够高的维度,我们总有足够的能力来拟合训练集,但在测试集上的泛化能力往往不佳,因为常用的特征映射只是基于局部光滑原则,并没有将足够的先验信息进行编码来解决高级问题
【2】:通过手动设计∮(x)。在深度学习以前,各个行业对于不同的任务都只能自己设置∮(x),但消耗时间巨大,且不同的行业不同任务之间的∮(x)难以变迁。
【3】采用深度学习的方式直接学习∮(x)
同时学习函数参数+权重参数,唯一放弃凸性的方法,利大于弊,通用:只需要一个广泛的函数族,不用太精确,可控:专家知识辅助泛化,只需要找函数族∮(x)
2,核函数的原理
我们要进行高维空间线性可分,首先要将原始空间的点通过核函数∮(x)映射到高维空间中,然后进行学习,所谓的学习就是计算高维空间中点的距离和夹角。然后完成线性任务、。核函数的技巧就是不显示定义的映射函数,而直接在高维空间中使用核函数计算。所谓的计算,就是直接先进行内积,然后使用核函数。
3,核函数的要求
核函数的要求是其核矩阵必须是半正定的,所谓核矩阵就是每个点之间的高维映射之后的内积构成的矩阵。
4,常用的核函数

  1. 径向基函数核(RBF kernel)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三:高斯函数

1,定义:高斯核函数又称为径向基函数,是一种常用的核函数,他可以将由县委数据映射到高维空间。
数学定义:
在这里插入图片描述
上述公式涉及到两个向量欧氏距离的计算,而且,高斯核函数是两个向量欧氏距离的单值函数,σ 是带宽,是控制径向作用范围,换句话说,σ 控制的是高斯核函数的局部作用范围。当x和x’的欧氏距离处于某一个区间范围内的时候,假设x’固定,那么k(x,x’)随着x的变化 而变化,且效果相当明显。
一维情况
σ = 1
在这里插入图片描述
σ = 5
在这里插入图片描述

我们看到,随着x 与x′的距离的距离的增大,其高斯核函数值在单调递减。并且,σ越大,那么高斯核函数的局部影响范围就会越大。
二维情况
在这里插入图片描述
在这里插入图片描述
二维可以更加明显的看出高斯核函数局部作用的范围随带通的变化情况。带通越大,高斯核函数的局部影响的范围就越大。在超出这个范围之后,核函数的值几乎不变。
2,高斯核将数据映射到高维甚至无穷维的原理。
为了方便推导,我们令分母为1
在这里插入图片描述
可以看出公式中的的泰勒展开式其实是0-n维的多项式核函数的和。我们知道多项式核函数将低维数据映射到高维(维度是有限的),那么 对于无限个 不同维的多项式核函数之和 的高斯核,其中也包括 无穷维度 的 多项式核函数。而且我们也找得到 使该等式
在这里插入图片描述
3,高斯核函数的五个性质
【1】二维高斯核函数具有旋转对称性。即高斯平滑滤波器在各个方向上的平滑程度是相同的
【2】高斯核函数是单值函数,这表明高斯滤波器用像素领域的加权平均值来代替该点的像素值
【3】高斯核函数的傅里叶变换频谱是单瓣的,这一推论是由高斯核函数的傅里叶变换等于高斯核函数本身而来
【4】高斯滤波器的宽度(即)平化程度是由*决定的。*越大高斯滤波器的频带就越宽,平滑程度就越高。
【5】由于高斯核函数的可分离性,大高斯滤波器可以得以实现,二维高斯函数卷积可以分两步来实现。

四:GMM聚类

一、正态分布
在了解高斯混合模型之前,我们先来看看什么是高斯分布,高斯分布大家应该都比较熟悉了,就是我们平时所说的正态分布,也叫高斯分布。正态分布是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。

正态分布的特点
集中性:正态曲线的高峰位于正中央,即均数所在的位置。
对称性:正态曲线以均数为中心,左右对称,曲线两端永远不与横轴相交。
均匀变动性:正态曲线由均数所在处开始,分别向左右两侧逐渐均匀下降。

若随机变量服从一个数学期望为μ、方差为σ^{2}的正态分布,记为在这里插入图片描述
。其中期望值μ决定了其位置,标准差σ决定了分布的幅度。当 当μ = 0,σ = 1时时,正态分布是标准正态分布。
在这里插入图片描述
正态分布有极其广泛的实际背景,生产与科学实验中很多随机变量的概率分布都可以近似地用正态分布来描述。例如,在生产条件不变的情况下,产品的强力、抗压强度、口径、长度等指标;同一种生物体的身长、体重等指标;同一种种子的重量;测量同一物体的误差;弹着点沿某一方向的偏差;某个地区的年降水量;以及理想气体分子的速度分量,等等。一般来说,如果一个量是由许多微小的独立随机因素影响的结果,那么就可以认为这个量具有正态分布(见中心极限定理)。从理论上看,正态分布具有很多良好的性质 ,许多概率分布可以用它来近似;还有一些常用的概率分布是由它直接导出的,例如对数正态分布、t分布、F分布等。

二、高斯模型
高斯模型有单高斯模型(SGM)和混合高斯模型(GMM)两种。

1、单高斯模型(SGM)
概率密度函数服从上面的正态分布的模型叫做单高斯模型,具体形式如下:

当样本数据 是一维数据(Univariate)时,高斯模型的概率密度函数为:
在这里插入图片描述
其中:μ为数据的均值,\sigma为数据的标准差。
当样本数据x 是多维数据(Univariate)时,高斯模型的概率密度函数为:
在这里插入图片描述
其中:μ为数据的均值,\Sigma为协方差,d为数据维度。
2、高斯混合模型(GMM)
高斯混合模型(GMM)是单高斯概率密度函数的延伸,就是用多个高斯概率密度函数(正态分布曲线)精确地量化变量分布,是将变量分布分解为若干基于高斯概率密度函数(正态分布曲线)分布的统计模型。

用通俗一点的语言解释就是,个单高斯模型混合在一起,生成的模型,就是高斯混合模型。这 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。

GMM是工业界使用最多的一种聚类算法。它本身是一种概率式的聚类方法,假定所有的样本数据X由K个混合多元高斯分布组合成的混合分布生成。

高斯混合模型的概率密度函数可以表示为:
在这里插入图片描述
在这里插入图片描述
3,GMM聚类模型实现步骤
在这里插入图片描述

四:参数估计
GMM的实现过程使用了极大似然估计思想,极大似然估计的思想是:随机试验有多个可能的结果,但在一次试验中,有且只有一个结果会出现,如果在某次试验中,结果w出现了,则认为该结果发生的概率最大。
极大似然估计求解参数步骤:
在这里插入图片描述
1,单高斯模型的参数估计
对于单高斯模型,可以使用极大似然估计(MLE)来求解出参数的值。
在这里插入图片描述
3,高斯混合模型的参数估计
高斯混合模型的参数估计用到了em算法,因为极大似然估计的方法直接求导无法计算出参数,如下
在这里插入图片描述
图12和图13梳理了高斯分布和混合高斯分布参数估计的逻辑流程图
在这里插入图片描述
在这里插入图片描述
相比于高斯分布的参数估计,混合高斯分布的参数估计更加复杂。主要原因在于隐变量的存在,混合高斯分布的参数估计之所以要进行多次迭代循环,是因为em算法中对于y的估计利用的是初始化或者第i步的参数。这对于样本的分类划分是有误差的,所以只能通过多次迭代优化寻找更加的参数来抵消误差。


http://www.niftyadmin.cn/n/1802184.html

相关文章

JSP页面跳转刷新

问题: 当前的jsp页面触发ajax请求后,能够获得新的相应页面,但是浏览器上展示的依然是老的页面,数据不刷新 尝试使用页面重定向依然无效, 最后使用js的window.location.href, 让浏览器的页面url 重加载才ok function submitDate() {var date1 document.getElementById("d…

约瑟夫问题的数组解法

这是博主的第一篇博文,也是数据结构基础的引入。先看下 约瑟夫问题的描述: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死…

挑战面试编程:计算整数二进制位中1的个数

挑战面试编程:计算整数二进制位中1的个数 题目: 在计算机中,整数是以2的补码的形式给出的。 给出整数A和B,假设计算机是32位机,求从A到B之间的所有二进制数中,一共用了多少个1。 输入格式: 多组…

挑战面试编程:字符串转换为整数

挑战面试编程:字符串转换为整数 将类似这样的字符串,"abc123abc"转换为整数,即为123。若是"abc",则直接输出0。本题看似很简单,但有些地方还得注意:字符串中可能带有符号,如…

挑战面试编程:最大连续子序列和

挑战面试编程:最大连续子序列和问题对于形如:int arr[] { 1, -5, 3, 8, -9, 6 };的数组,求出它的最大连续子序列和。若数组中全部元素都是正数,则最大连续子序列和即是整个数组。若数组中全部元素都是负数,则最大连续…

挑战面试编程:单词翻转、高斯公式、魔方矩阵、黑白球、3n+1

挑战面试编程:单词翻转、高斯公式、魔方矩阵、黑白球、3n1 题一: 把一字符串如"I love you."变为"you. love I"。 分析: 这并不是一简单的字符串reverse的操作,在reverse的过程中要保持单词本身的字母顺序。…