欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-02 17:27:31
...

 一、欧氏距离

二维的公式

  ρ = 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

 



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


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


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


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


 



 



 

 程序见附件

 

 

下面是这个小程序对山水和瀑布图片的分类

A类是山水,B类是图片


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

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

 

  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 90.8 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 86.4 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 112.2 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 109.8 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 100.5 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 113.4 KB
  • 机器学习-K均值算法与欧氏距离进行图片分类
            
    
    博客分类: 数学与计算  
  • 大小: 120.9 KB