一、欧氏距离
二维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2 )
三维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )
n维空间的公式
n维欧氏空间是一个点集,它的每个点 X 可以表示为 (x[1],x[2],…,x[n]) ,其中 x[i](i = 1,2,…,n) 是实数,称为 X 的第i个坐标,两个点 A = (a[1],a[2],…,a[n]) 和 B = (b[1],b[2],…,b[n]) 之间的距离 ρ(A,B) 定义为下面的公式。
ρ(A,B) =sqrt [ ∑( a[i] - b[i] )^2 ] (i = 1,2,…,n)
二、K均值算法
k均值(k-means)是聚类算法的一种,聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的。组内的相似性越大,组间差别越大,聚类就越好。
举个例子,在二维平面上有几百个点,在笛卡儿坐标系中有(x,y)坐标,把它们点到纸上,问题是如何把它们分成不同组,每个组里点彼此之前都比较相近,而离其它组的成员又比较远。下面介绍的k均值就能干这种事。
基本k均值
基本k均值思想很简单,首先,选择k个初始质心,其中k是用户指定的参数,即所期望的簇的个数。每个点被指派到最近的质心,而指派到一个质心的点集为一个簇。然后根据指派到簇的点,更新每个簇的质心。重复指派和更新步骤,直到簇不发生变化,或等价的,直到质心不发生变化。
三、部分核心代码
'计算相似度,欧氏距离
xsd_label.Text = ""
sumpic3 = 0
For myjj As Integer = 0 To 2000
If IsNothing(pic3tz(myjj)) Then
Exit For
End If
sumpic3 += Pow(pic3tz(myjj) - sumpic1(myjj), 2)
Next
xsd1 = Sqrt(sumpic3)
sumpic3 = 0
For myjj As Integer = 0 To 2000
If IsNothing(pic3tz(myjj)) Then
Exit For
End If
sumpic3 += Pow(pic3tz(myjj) - sumpic2(myjj), 2)
Next
xsd2 = Sqrt(sumpic3)
Dim mydis As Integer = kdistance.Text
If mydis < 0 Then
kdistance.Text = 50
mydis = 50
End If
xsd_label.Text &= "与A类的距离:" & vbCrLf & xsd1 & vbCrLf
xsd_label.Text &= "与B类的距离:" & vbCrLf & xsd2 & vbCrLf
If xsd1 > mydis And xsd2 > mydis Then
xsd_label.Text &= "不属A和B类"
ElseIf xsd1 > xsd2 Then
xsd_label.Text &= "属于B类"
Else
xsd_label.Text &= "属于A类"
End If
程序见附件
下面是这个小程序对山水和瀑布图片的分类
A类是山水,B类是图片
- 大小: 90.8 KB
- 大小: 86.4 KB
- 大小: 112.2 KB
- 大小: 109.8 KB
- 大小: 100.5 KB
- 大小: 113.4 KB
- 大小: 120.9 KB
分享到:
相关推荐
K-Means算法是典型的基于距离的聚类算法,其中k代表类簇个数,means代表类簇内数据对象的均值(这种均值是一种对类簇中心的描述),因此,K-Means算法又称为k-均值算法。K-Means算法是一种基于划分的聚类算法,以...
NULL 博文链接:https://deepfuture.iteye.com/blog/1602779
定义了一个欧氏距离和监督信息相混合的新的最近邻计算函数,从而将K-均值算法很好地应用于半监督聚类问题。针对K-均值算法初始质心敏感的缺陷,用粒子群算法的搜索空间模拟聚类的欧氏空间,迭代搜索找到较优的聚类质心...
k-近邻的分类算法,距离函数分别为欧式距离 和Manhatan 距离。
基于同态加密算法设计了安全的乘法协议、单个密钥加密下的完全平方式协议和联合公钥加密下的完全平方式协议,基于这三个基础计算协议设计了欧氏距离的外包计算协议。安全性分析表明该协议足够安全,效率分析显示该...
本人原创的K均值聚类算法,可支持不限维度的多维空间点的聚类。以欧氏距离为相似度量,接口分离,易改写。采用JAVA语言实现。
结合属性约简方法,根据数据属性对聚类效果的影响因子设置权值,在欧氏距离中引入权值系数来初始化簇的中心点,最后通过K值递增的改进算法对数据集进行正态检验来验证每个簇的数据是否符合高斯分布模型,从而能够...
基于欧氏距离的K-MEANS算法优化,李轮,宋文广,对于传统的K-means聚类算法而言,在使用上有太多的局限性。文中针对K-means算法,在基于欧氏距离相似度计算的基础上,利用现有的一些�
行业教育软件-学习软件-欧氏距离计算器 1.0.zip
K-means聚类算法的性能依赖于距离度量的选择,k-means算法将欧几里德距离作为最常用的距离度量方法。欧氏距离认为所有属性在聚类中作用是相同的,但是这种距离度量方法并不能准确反映样本间的相异性。针对这种不足,...
针对特征权重自调节软子空间聚类(soft subspace clustering with feature weight self-adjustment mechanism,SC-FWSA)算法使用欧氏距离,存在对数据适应性较差的问题,将SC-FWSA算法中的欧氏距离拓展为闵科夫斯基...
使用K-NN、朴素贝叶斯及最小欧氏距离进行高光谱图像分类,准确度和混淆矩阵评估模型,运行project.m即可
针对欧氏距离容易丢失数据信息、受异常值影响较大的缺点,利用云相似度对聚类算法进行了改进,减少异常数据等不确定因素对聚类结果的影响;针对K-means 算法易受人为因素影响的迭代次数、大数据环境下聚类中心不再...
K-Means算法是典型的基于距离的聚类算法,其中k代表类簇个数,means代表类簇内数据对象的均值(这种均值是一种对类簇中心的描述),因此,K-Means算法又称为k-均值算法。K-Means算法是一种基于划分的聚类算法,以...
3. 计算距离:使用合适的距离度量方法(如欧氏距离、曼哈顿距离等),计算待分类样本与训练集中每个样本之间的距离。 4. 分类决策:根据最小距离原则,将待分类样本分配给与其距离最近的训练集样本所属的类别。 5. ...
利用K均值聚类IRIS数据,包括两个程序: 一、基于欧氏距离聚类 二、基于余弦距离聚类 二者聚类效果不同,输出结果包括:轮廓图、聚类结果可视化(标注明聚类错误样本)、聚类正确率。
北大-图像距离课件,包含一个PPT转换过来的PDF文件,内容包括图像距离,Hausdorff 距离,切距离,欧氏距离等 。
这类算法通常是由距离比较相近的对象组成簇,把得到紧凑而且独立的簇作为最终目标,因此将这类算法称为基于距离的聚类算法不同的是K - means算法还是动态聚类算法,是其中比较经典的算法。 算法简介: 随机选择 k 个...
协同过滤推荐系统。使用协同过滤的推荐算法。主题:排序算法,欧氏距离算法,斜率一算法.zip