`
deepfuture
  • 浏览: 4410257 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80115
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70282
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103553
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286478
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15037
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67759
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32276
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46064
社区版块
存档分类
最新评论

机器学习-K均值算法与欧氏距离进行图片分类

 
阅读更多

 一、欧氏距离

二维的公式

  ρ = 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
3
1
分享到:
评论

相关推荐

    机器学习-手写和本机数字识别-K均值和欧氏距离

    标题中的“机器学习-手写和本机数字识别-K均值和欧氏距离”涉及到的是一个常见的计算机视觉问题,即手写数字识别,这在银行、邮政服务等领域有着广泛的应用。这个问题通常通过机器学习算法来解决,特别是无监督学习...

    RBF-k.rar_K均值_K均值聚类 RBF_RBF_RBF-k均值聚类_均值

    RBF-k均值聚类算法是一种在机器学习和数据分析领域广泛应用的聚类方法,它是传统K均值算法的一种变体,引入了径向基函数(Radial Basis Function,简称RBF)的概念。在这个压缩包中,包含有RBF-k均值聚类算法的...

    机器视觉基础 | image-k-means | 基于 k-均值聚类算法图像分割

    在实际操作中,提供的代码和图片可能包含实现k-均值图像分割的具体步骤,包括读取图像、将像素转换为特征向量、运行k-均值算法、将聚类结果映射回图像像素并显示分割结果等。通过这些代码,我们可以看到如何将理论...

    Matlb-k均值聚类算法(自编函数体)

    通过对这个函数的分析和学习,你可以深入理解K-均值算法的工作原理,并能够根据实际需求进行调整和优化,比如处理大数据集时考虑使用mini-batch K-means或者优化初始化策略以提高聚类效果。此外,还可以探索其他聚类...

    机器学习中自适应k值的k均值算法改进.pdf

    机器学习中自适应k值的k均值算法改进 本文介绍了一种机器学习中自适应k值的k均值算法改进,旨在解决传统k-means算法中的两个主要缺陷:对远离群点敏感和k值难以确定的问题。该算法通过引入肘部法则的思想对数据进行...

    K均值算法程序.rar_K-均值_K均值_K均值聚类算法_matlab_kjunzhi_聚类,分类

    K均值(K-Means)算法是一种广泛应用的无监督机器学习方法,主要用于数据的聚类分析。在给定的数据集中,K均值算法通过迭代寻找最佳的类别划分,使得同一类别的样本间距离最小,不同类别间的样本距离最大。在本案例...

    K-均值算法

    通过学习K-均值算法,不仅可以理解聚类的基本原理,还能掌握一种实用的数据分析工具,这对于从事数据分析、机器学习和数据科学相关工作的人来说是非常有价值的。同时,理解算法的局限性也至关重要,这样在面对实际...

    实验三-K-均值聚类算法实验报告.docx

    【K-均值聚类算法】是机器学习领域中一种常用的无监督学习方法,主要用于数据的分类和分组。在本实验中,我们探讨了如何使用K-均值算法进行聚类分析,并通过编程实现这一过程。 **一、实验目的** 1. **深化对非...

    k均值算法报告

    K均值算法是一种广泛应用于机器学习领域的无监督学习算法,主要用于数据聚类分析。通过将数据集中的对象划分成多个簇(cluster),使得簇内的数据相似度高,而不同簇之间相似度低。这种算法的核心在于如何选择合适的...

    机器学习__K均值算法.pptx

    K均值算法是一种广泛应用的无监督机器学习算法,主要用于数据的聚类分析。它的目标是将数据集中的样本点分成K个不同的簇,使得每个簇内的点相互之间的相似度(通常用欧氏距离衡量)最大化,而不同簇之间的差异性最小...

    k均值算法,K_average

    k均值算法(K-Means)是一种广泛应用的无监督机器学习算法,主要用于数据聚类。在本场景中,我们有一个名为"K_average"的MATLAB程序,这将帮助我们理解并实现k均值算法。MATLAB作为一种强大的数值计算和可视化工具,...

    k-中心点算法Matlab代码实现

    k-中心点算法(k-Medoids)是一种聚类算法,与k-均值算法相似,但使用实际数据点作为聚类中心,而非均值。它寻找的是在每个聚类中最具代表性的对象,即“medoid”,这些medoids是集群内的实际成员,而不是计算出的...

    试验三k-均值聚类算法试验报告.pdf

    非监督学习是机器学习的一个分支,它不依赖于预先标记的数据,而是通过对数据集的内在结构和模式进行探索来学习。K-Means算法作为动态聚类方法,其设计目标是找到最佳的K个聚类,使得每个样本点都归属于与其最近的...

    实验三k-均值聚类算法实验报告.pdf

    实验结果展示了K-均值算法的执行效率,以及在不同迭代次数下的总距离平方和。这些结果有助于分析算法的性能,并可能调整K值或初始化策略以优化聚类效果。 总结来说,K-均值聚类算法是一种有效的数据分类工具,尤其...

    K均值分类算法的VC实现

    K均值分类算法是一种广泛应用的无监督机器学习方法,用于数据聚类。在这个"K均值分类算法的VC实现"项目中,开发者采用C++(Visual C++,简称VC)编程语言实现了一个针对24位BMP位图的K均值聚类程序。下面将详细介绍K...

    试验三k-均值聚类算法试验报告 (2).pdf

    K-均值算法是机器学习领域中常见的非监督学习方法,主要用于数据的聚类分析。它通过迭代的方式将数据集中的样本点分配到最近的聚类中心,从而形成不同的簇。本实验旨在深化对非监督学习的理解,特别是对K-均值算法的...

    数据挖掘K-均值算法实现毕业设计.docx

    ### 数据挖掘K-均值算法实现毕业设计 #### 1. 研究背景与意义 随着信息技术的飞速发展,特别是互联网的普及,我们每天都在产生大量的数据。这些数据覆盖了生活的方方面面,如科学研究、政府办公、军事分析、企业...

    机器学习-Kmeans聚类算法

    在机器学习领域,它被用来发现数据集中的自然群组,无需预先知道类别信息。该算法的基本思想是通过迭代将数据点分配到最近的聚类中心,从而形成多个聚类。 **算法步骤:** 1. **初始化**:选择K个初始聚类中心,...

    k-mean聚类算法,k-mean聚类算法进行文本分类,C,C++源码.zip

    在文本分类中,k-均值算法可以用于对大量文档进行自动分组,例如将新闻按照主题进行分类。 k-均值算法的核心步骤如下: 1. 初始化:选择k个初始聚类中心,通常是随机选取数据集中的k个点。 2. 聚类:将每个数据点...

Global site tag (gtag.js) - Google Analytics