Giả sử dữ liệu đầu vào có kích thước [ m, n ] trong đó m là số ví dụ huấn luyện và n là số đối tượng trong mỗi ví dụ và một vectơ nhãn có kích thước [ m, 1 ]. Đầu tiên, nó khởi tạo các trọng số có kích thước [ n, c ] từ c số mẫu huấn luyện đầu tiên có nhãn khác nhau và sẽ bị loại bỏ khỏi tất cả các mẫu huấn luyện. Ở đây, c là số lớp. Sau đó lặp lại dữ liệu đầu vào còn lại, với mỗi ví dụ đào tạo, nó cập nhật vectơ chiến thắng [ vectơ trọng số có khoảng cách ngắn nhất [ e. g Khoảng cách Euclide] từ ví dụ đào tạo].
Quy tắc cập nhật trọng số được đưa ra bởi
if correctly_classified: wij[new] = wij[old] + alpha[t] * [xik - wij[old]] else: wij[new] = wij[old] - alpha[t] * [xik - wij[old]]
trong đó alpha là tốc độ học tại thời điểm t, j biểu thị vectơ chiến thắng, i biểu thị tính năng thứ i của ví dụ huấn luyện và k biểu thị ví dụ huấn luyện thứ k từ dữ liệu đầu vào. Sau khi đào tạo mạng LVQ, các trọng số được đào tạo được sử dụng để phân loại các ví dụ mới. Một ví dụ mới được gắn nhãn với lớp của vectơ chiến thắng
thuật toán
Bước 1. Khởi tạo các vectơ tham chiếu
từ một tập hợp các vectơ huấn luyện đã cho, lấy số "n" vectơ huấn luyện cụm đầu tiên và sử dụng chúng làm vectơ trọng số, các vectơ còn lại có thể được sử dụng để huấn luyện
Gán ngẫu nhiên các trọng số và phân loại ban đầu
Bước 2. Tính khoảng cách Euclide cho i=1 đến n và j=1 đến m,
D[j] = ΣΣ [xi-Wij]^2
tìm chỉ số đơn vị chiến thắng j, trong đó D[j] là nhỏ nhất
Bước 3. Cập nhật trọng số trên đơn vị chiến thắng wi sử dụng các điều kiện sau
nếu T = J thì wi[mới] = wi [cũ] + α[x – wi[cũ]]
nếu T ≠ J thì wi[mới] = wi [cũ] – α[x – wi[cũ]]
Bước 4. Kiểm tra điều kiện dừng nếu sai lặp lại các bước trên
Dưới đây là việc thực hiện.
Python3
import
math
class
LVQ :
# Function here computes the winning vector
# by Euclidean distance
import
1 import
2import
3import
4
import
5
import
5_______1_______7import
8 import
9
import
5_______2_______1import
8 import
9
import
5
import
5_______2_______6 math
7math
8 math
9class
0class
1class
2
class
3_______1_______7import
8 import
7_______3_______7 class
8class
9LVQ :
0LVQ :
1 LVQ :
2import
9LVQ :
4LVQ :
5 LVQ :
6
class
3_______2_______1import
8 math
1class
7 class
8class
9LVQ :
0LVQ :
1 LVQ :
2
7LVQ :
4LVQ :
5 LVQ :
6
class
3
import
5_______5_______3
4
class
3_______5_______6 import
9
import
5_______5_______9 # Function here computes the winning vector
0
class
3_______5_______6
7
# Function here computes the winning vector
5
import
1 # Function here computes the winning vector
8import
3
0
1_______5_______3
3_______4_______1_______4_______1
6
class
3_______2_______6
9math
8 math
9class
0class
1# by Euclidean distance
4
# by Euclidean distance
5# by Euclidean distance
6import
8 # by Euclidean distance
6class
7 import
00import
01 import
02LVQ :
1 import
04
import
5_______5_______9# Function here computes the winning vector
0
class
3_______2_______6
9math
8 math
9class
0class
1# by Euclidean distance
4
# by Euclidean distance
5# by Euclidean distance
6import
8 # by Euclidean distance
6LVQ :
1 import
00import
01 import
02LVQ :
1 import
04
import
26
import
1 import
28
import
30
import
32_______1_______8 import
34import
9import
36import
9import
36
7import
36
7 import
42
7import
36import
9import
36import
9import
36_____1_______9 import
50
1_______1_______52import
9import
36_______1_______9import
36import
9import
36
7 import
60import
9import
36
7import
36
7import
36_______1_______9 import
50
1_______1_______52
7import
36
7import
36import
9import
36import
9 import
60
7import
36
7import
36
7import
36_______1_______9 import
86
import
88_______1_______8 import
52import
9import
36
7import
36import
9import
36
7import
36
7import
36
7 math
02
2_______04_______1_______8 class
1math
07class
1math
09import
9math
11
math
14
math
16_______1_______8 math
18
math
20_______1_______9 math
22
math
20_______1_______9 math
22
math
28
math
30
math
32_______1_______8 math
32LVQ :
1 LVQ :
5
math
38import
9LVQ :
6
math
38import
9LVQ :
6
math
47
math
49import
8 math
51
math
53_______1_______8 math
55
import
00_______1_______8 math
59
math
6
9math
8 math
9_______2_______66
import
5_______2_______6 math
69math
8 math
9math
72
class
3
class
3_______2_______75
class
3_______2_______77import
8 math
79
class
3
class
3_______2_______82
class
3_______2_______84import
8 math
86
import
5
class
3_______2_______89
class
3_______2_______91
class
3
math
94
math
77_______1_______8 import
52import
9import
36import
9import
36
7import
36import
9 math
02
math
84import
8 math
86
3_______12_______3_______13class
class
15
class
12_______3_______18
3 class
21_______1_______8import
8 class
24
class
26
đầu ra. Mẫu T thuộc về lớp. 0 Trọng lượng được đào tạo. [[0. 3660931, 0. 38165410000000005, 1, 1], [0. 33661, 0. 34390000000000004, 0, 1]]