vb.netの機械学習 - 手書き認識とデジタルネイティブと平均ユークリッド距離-K

ユークリッド距離
二次元方程式
  、ρ= SQRT((X1-X2)2 +(Y1-Y2) 2)

次元数
  、ρ= SQRT((X1-X2)2 +(Y1-Y2) 2 +(Z1-Z2)^ 2)

式n次元空間
  のN次元のユークリッド空間は、点の集合、(X [1]、X [として表すことができる各点Xで 2]、...、X [N])、 X [i]は(I = 1,2、...、n)は実数であり、i番目の座標X、二点=([1]と呼ばれる [2]、...、[N]) 及びB =(B [ 1]、B [2]、 ...、 B [n]の間の距離ρ(B))は、次式のように定義されます。

ρ(A、B)= SQRT [Σ([I] - B [I])^ 2](i = 1,2、...、N)

二、K-手段アルゴリズム

k-平均(K-手段)クラスタリングアルゴリズムである、クラスタ分析は、オブジェクトとそれらの関係について説明する。情報は、データに見られる、データオブジェクトがグループ化されます。目標は、異なるグループ内のオブジェクトが異なっている間、彼らは、オブジェクトのグループ内の互いに類似している、です。グループ内の大きな類似性、より大きな2つの群の間の差、よりよいクラスタリング。

例えば、二次元平面の点の何百もあり、デカルト座標系における座標(x、y)であり、それらは紙を指し、問題は、異なるグループに分け、各グループにそれらを置く方法がありますポイントの前に、我々は比較的近接して、および他のグループのメンバーから、比較的遠く離れています。ここでは、このようなAの事のできるk平均で。

基本kは意味
基本的な考え方は単純なK-means法、kはユーザが指定したパラメータ、即ち、クラスタの所望の数である第一、初期重心選択K、です。各点は、クラスタの重心に割り当てられた点の集合の最も近い重心に割り当てられます。ポイントは、次に、クラスタに各クラスタ重心更新が割り当てられます。重心が変化しなくなるまで、代入更新ステップは、クラスターが変化しなくなるまで繰り返し、または同等れます。

第三に、特徴抽出

オンライン誰か一回の練習を参照1、最初のステップ:

簡単にするために、我々は、最も簡単な画像を使用しています-トレーニングとテストのための画像の黒画素の分布を。まず、我々は32個の画像正規化画像の32画素、次いで2サブ領域に2分16 256 * 16カットし、その後256次元の特徴ベクトルからなる、4つの画素の黒画素の数をカウント、次の通りであります機能番号2ベクトル:
0 0 4,442,000,000,002,400,444 2 0 0 0,000,002,422,442,100,000 0 1,234,444,400,000,000,244 4,444,400,000,000,244,444 0 0 0 0 0 0 0 0 0 0 2 4. 4. 4 4 4 0 0 0 0 0 0 0 0,002,444,440,000,000,444 4,444,440,000,000,444,444 4. 4 4 2 2 2 2 2 2 2 2 4,423,444,444,444,444,440 4,442,222,432,222,202,444 0 0 0 0 4 2 0 0 0 0 0 0 2 4,440,000,420,000,002,444 0,000,000,000,002,444,000 0000000002444
したがって、我々は唯一の他の値、結果として、対応する寸法の数値が値に設定されているので、10次元のベクトルを作成するために、10桁の0〜9を同定する必要があるため0。次のように2計算結果は、次のとおり0010000000

For m_i As Integer = 1 To 16  
     myinitwidth = myendwidth  
     myendwidth += jiange  
     For myi As Integer = myinitwidth To myendwidth  
         For myj As Integer = myinitheight To myendheight  
             mycolor = myybcominfo.mybitmap.GetPixel(myi, myj)  
             If mycolor.B = 0 And mycolor.R = 255 And mycolor.G = 0 Then  
                 While (Not Monitor.TryEnter(mymonitorobj))  
                     Thread.Sleep(1)  
                 End While  
                 myjgtz(mycount) += 1  
                 Monitor.Exit(mymonitorobj)  
                 Thread.Sleep(1)  
             End If  
         Next  
     Next  
     mycount += 1  
     myendwidth += 1  
 Next  

図2に示すように、最初のステップの重量調整特徴ベクトルとして位置へ位置情報と結合された特性に基づいて、更なる処理の最初のステップは、コアコードは:

 For mi As Integer = 0 To 15  
    If myjgtz(mi) > 0 Then  
        pictz(myii, myjj, m_j) += mi * myjgtz(mi)  
    End If  
    myjgtz(mi) = 0  
Next  

各デジタル・コア・コードのステップK-手段計算:
計算された平均K

   Dim mmsum As Double = 0  
   For myii As Integer = 0 To 9  
       mystr &= vbCrLf & myii & "的样本均值是:" & vbCrLf  
       For myk As Integer = 0 To 15  
           mmsum = 0  
           For myjj As Integer = 0 To 9  
               mmsum += pictz(myii, myjj, myk)  
               ProgressBar1.Value = count  
               count += 1  
           Next  
           mmsum /= 10  
           ktz(myii, myk) = mmsum  
           mystr &= ktz(myii, myk) & ","  
       Next  
       mystr &= vbCrLf  
   Next  

最後に、識別番号が特性値は、ユークリッド距離比較されるべき

Dim jqtz(16) As Integer  
                '欧氏距离   
        Dim mys(10) As Integer  
        Dim temp As Integer = 1000000000  
        Dim jgnum As Integer = -1  
        For m_iii As Integer = 0 To 9  
            mys(m_iii) = 0  
            For m_jjj As Integer = 0 To 15  
                mys(m_iii) += Pow(ktz(m_iii, m_jjj) - jqtz(m_jjj), 2)  
            Next  
            If mys(m_iii) < temp Then  
                temp = mys(m_iii)  
                jgnum = m_iii  
            End If  
        Next  
        jg.Text = ""  
        For m_iii = 0 To 9  
            jg.Text &= m_iii & ":" & mys(m_iii) & vbCrLf  
        Next  
        jg.Text &= "结果是:" & jgnum 

実験では、アルゴリズムはさらに、アルゴリズム、認識率、手書きの数字、限り書き込みがより標準化されるよう、適切な位置を記述することができるイタリック、90%、ボールド、イタリック、等のための最高の認識率を向上させるために改善する必要があり、より高い認識率を有することを示します手書きの手書き認識は、デジタルサンプルとして推奨される場合はそれ以上の中間ブロック、高い認識率で、プログラム附属書は、非常に高い認識率は、マシン識別番号と、サンプル・データを自動的に生成することができます。

ここに画像を挿入説明

公開された473元の記事 ウォン称賛14 ビュー60000 +

おすすめ

転載: blog.csdn.net/AI_LX/article/details/105165025