一、欧氏距离
二维的公式
ρ = 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均值和欧氏距离”涉及到的是一个常见的计算机视觉问题,即手写数字识别,这在银行、邮政服务等领域有着广泛的应用。这个问题通常通过机器学习算法来解决,特别是无监督学习...
RBF-k均值聚类算法是一种在机器学习和数据分析领域广泛应用的聚类方法,它是传统K均值算法的一种变体,引入了径向基函数(Radial Basis Function,简称RBF)的概念。在这个压缩包中,包含有RBF-k均值聚类算法的...
在实际操作中,提供的代码和图片可能包含实现k-均值图像分割的具体步骤,包括读取图像、将像素转换为特征向量、运行k-均值算法、将聚类结果映射回图像像素并显示分割结果等。通过这些代码,我们可以看到如何将理论...
通过对这个函数的分析和学习,你可以深入理解K-均值算法的工作原理,并能够根据实际需求进行调整和优化,比如处理大数据集时考虑使用mini-batch K-means或者优化初始化策略以提高聚类效果。此外,还可以探索其他聚类...
机器学习中自适应k值的k均值算法改进 本文介绍了一种机器学习中自适应k值的k均值算法改进,旨在解决传统k-means算法中的两个主要缺陷:对远离群点敏感和k值难以确定的问题。该算法通过引入肘部法则的思想对数据进行...
K均值(K-Means)算法是一种广泛应用的无监督机器学习方法,主要用于数据的聚类分析。在给定的数据集中,K均值算法通过迭代寻找最佳的类别划分,使得同一类别的样本间距离最小,不同类别间的样本距离最大。在本案例...
通过学习K-均值算法,不仅可以理解聚类的基本原理,还能掌握一种实用的数据分析工具,这对于从事数据分析、机器学习和数据科学相关工作的人来说是非常有价值的。同时,理解算法的局限性也至关重要,这样在面对实际...
【K-均值聚类算法】是机器学习领域中一种常用的无监督学习方法,主要用于数据的分类和分组。在本实验中,我们探讨了如何使用K-均值算法进行聚类分析,并通过编程实现这一过程。 **一、实验目的** 1. **深化对非...
K均值算法是一种广泛应用于机器学习领域的无监督学习算法,主要用于数据聚类分析。通过将数据集中的对象划分成多个簇(cluster),使得簇内的数据相似度高,而不同簇之间相似度低。这种算法的核心在于如何选择合适的...
K均值算法是一种广泛应用的无监督机器学习算法,主要用于数据的聚类分析。它的目标是将数据集中的样本点分成K个不同的簇,使得每个簇内的点相互之间的相似度(通常用欧氏距离衡量)最大化,而不同簇之间的差异性最小...
k均值算法(K-Means)是一种广泛应用的无监督机器学习算法,主要用于数据聚类。在本场景中,我们有一个名为"K_average"的MATLAB程序,这将帮助我们理解并实现k均值算法。MATLAB作为一种强大的数值计算和可视化工具,...
k-中心点算法(k-Medoids)是一种聚类算法,与k-均值算法相似,但使用实际数据点作为聚类中心,而非均值。它寻找的是在每个聚类中最具代表性的对象,即“medoid”,这些medoids是集群内的实际成员,而不是计算出的...
非监督学习是机器学习的一个分支,它不依赖于预先标记的数据,而是通过对数据集的内在结构和模式进行探索来学习。K-Means算法作为动态聚类方法,其设计目标是找到最佳的K个聚类,使得每个样本点都归属于与其最近的...
实验结果展示了K-均值算法的执行效率,以及在不同迭代次数下的总距离平方和。这些结果有助于分析算法的性能,并可能调整K值或初始化策略以优化聚类效果。 总结来说,K-均值聚类算法是一种有效的数据分类工具,尤其...
K均值分类算法是一种广泛应用的无监督机器学习方法,用于数据聚类。在这个"K均值分类算法的VC实现"项目中,开发者采用C++(Visual C++,简称VC)编程语言实现了一个针对24位BMP位图的K均值聚类程序。下面将详细介绍K...
K-均值算法是机器学习领域中常见的非监督学习方法,主要用于数据的聚类分析。它通过迭代的方式将数据集中的样本点分配到最近的聚类中心,从而形成不同的簇。本实验旨在深化对非监督学习的理解,特别是对K-均值算法的...
### 数据挖掘K-均值算法实现毕业设计 #### 1. 研究背景与意义 随着信息技术的飞速发展,特别是互联网的普及,我们每天都在产生大量的数据。这些数据覆盖了生活的方方面面,如科学研究、政府办公、军事分析、企业...
在机器学习领域,它被用来发现数据集中的自然群组,无需预先知道类别信息。该算法的基本思想是通过迭代将数据点分配到最近的聚类中心,从而形成多个聚类。 **算法步骤:** 1. **初始化**:选择K个初始聚类中心,...
在文本分类中,k-均值算法可以用于对大量文档进行自动分组,例如将新闻按照主题进行分类。 k-均值算法的核心步骤如下: 1. 初始化:选择k个初始聚类中心,通常是随机选取数据集中的k个点。 2. 聚类:将每个数据点...