Building a neural network with R
chuc1803@gmail.com
Mạng Neuron nhân tạo (Artificial Neural Network- ANN) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Neuron được gắn kết để xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data).
Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi có độ chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…
Bài viết này hướng dẫn triển khai bài toán phân lớp dữ liệu bằng mạng Neuron (Neural Network) với ngôn ngữ R
Mô tả yêu cầu: Sử dụng neural network để xây dựng mô hình phân lớp dữ liệu
Dataset: iris
Code triển khai neural network với R (tải ở đây)
Các bước thực hiện trong R:
1. Load dataset hoa iris và chia dữ liệu thành 2 tập training (70%) và testing (30%) datasets
#Loading data
>data("iris")
>fix(iris)
>ind <- sample(2, nrow(iris), replace = TRUE, prob=c(0.7, 0.3))
>trainset = iris[ind == 1,]
>testset = iris[ind == 2,]
>trainset #show trainset
>testset #show testset
2. Cài đặt và Load gói neuralnet trong R:
>install.packages("neuralnet") # install neuralnet package
>library(neuralnet) # load the neuralnet package
3. Thêm vào trainset 3 cột có tên “versicolor”, “setosa”, và “virginica” như sau:
>trainset$setosa = trainset$Species == "setosa"
>trainset$virginica = trainset$Species == "virginica"
>trainset$versicolor = trainset$Species == "versicolor"
4.Tiếp theo, huấn luyện mạng neural với 3 hidden neurons:
>network = neuralnet(versicolor + virginica + setosa~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, trainset, hidden=3)
5. Xem thông tin về Neural network đã xây dựng
>network #show detail of the network
>network$result.matrix
6. Xem mô hình Neural network đã huấn luyện ở dạng trực quan
>plot(network)
Neural network dùng để phân lớp hoa iris trên gồm có 4 neurons input tương ứng với 4 thuộc tính đầu vào Sepal.Length, Sepal.Width, Petal.Length và Petal.Width; với 3 hidden neurons và 3 neurons output tương ứng với 3 loài hoa là versicolor, setosa và virginica; các trọng số liên kết được mô tả như trong hình.