• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Crypto Currency
  • Technology
  • Contact
NEO Share

NEO Share

Sharing The Latest Tech News

  • Home
  • Artificial Intelligence
  • Machine Learning
  • Computers
  • Mobile
  • Crypto Currency

Lập trình thuật toán Centroid Neural Network sử dụng thư viện Numpy

February 17, 2021 by systems

Khơi dậy những tiềm năng bị lãng quên

Lean Tran
Photo by Joshua Aragon on Unsplash

Centroid Neural Network (CentNN) là thuật toán phân cụm hiệu quả và ổn định đã được áp dụng thành công cho nhiều bài toán. CentNN không yêu cầu hệ số học (learning coefficient) được xác định trước nhưng vẫn mang lại kết quả phân cụm cạnh tranh so với K-means Clustering và Self-Organization Map (SOM) khi mà những thuật toán này có kết quả phụ thuộc phần lớn vào các tham số ban đầu. Đối với những bạn đọc chưa biết hoặc chưa hiểu về thuật toán tuyệt vời này, bạn có thể đọc bài viết diễn giải của tôi cho thuật toán CentNN với các ví dụ trực quan tại đây. Còn bây giờ, hãy bắt tay vào lập trình thuật toán này nào.

Tôi chọn bài toán phân cụm dữ liệu 2 chiều (2-d) làm ví dụ giải thích trong bài viết này vì tính dễ hiểu, dễ nhìn, và vì đây là một công cụ hiệu quả để giải thích các thuật toán phân cụm.

Đầu tiên, hãy khao báo một vài thư viện cần thiết và tạo một bộ dữ liệu 2 chiều với 10 trọng tâm.

Image by Author

Một số chương trình con được chuẩn bị trước cho phần lập trình thuật toán CentNN ở sau, bạn đọc có thể tìm tất cả những source code này ở trang github của tôi tại đây.

Một lần nữa, tôi giả sử rằng tất cả các bạn đều đã hiểu thuật toán CentNN. Nếu không, tôi khuyên bạn nên đọc phần lý thuyết trước khi tiếp tục. Bạn có thể xem qua lời giải thích của tôi cho thuật toán này tại đây.

Còn chờ gì nữa, triển thôi!

Tìm trọng tâm c cho tất cả dữ liệu, sau đó phân tách c thành 2 trọng số w1, w2 với một giá trị nhỏ Ɛ.

Đây là 2 trọng số có được:

[0.43965411 2.88785116]
[0.33965411 2.78785116]

Tính “winner neuron” cho mỗi x trong X.

Đây là kết quả sau epoch 0:

Image by Author

Từ epoch 1 đến khi hội tụ, tiếp tục tìm “winner neuron” cho mỗi dữ liệu và cập nhật “winner neuron” và “loser neuron” cho đến khi đạt đến số lượng cụm mong muốn.

Thuật toán hội tụ sau 81 epoch cho bộ dữ liệu mẫu đã tạo:

GIF by Author

Kết quả cuối cùng:

Image by Author

Các trọng tâm cụm tìm được:

[-9.66726188  6.62956078]
[-8.57296482 -8.31582399]
[ 9.30888233 -2.32652503]
[5.82090263 0.57715316]
[5.55404696 7.36294438]
[-1.32316256 7.86651609]
[-1.63557118 2.87845278]
[2.08983389 0.85729017]
[1.47692106 8.56662456]
[0.90838486 4.30719839]

Filed Under: Machine Learning

Primary Sidebar

website design carmel

Website Design in Carmel: Building an Online Presence That Works

Carmel WordPress Help

Carmel WordPress Help: Expert Support to Keep Your Website Running Smoothly

Stay Ahead: The Latest Tech News and Innovations

Cryptocurrency Market Updates: What’s Happening Now

Emerging Trends in Artificial Intelligence: What to Watch For

Footer

  • Privacy Policy
  • Terms and Conditions

Copyright © 2026 NEO Share

Terms and Conditions - Privacy Policy