Chương 3. PHÂN CỤM KẾT QUẢ HỌC TẬP TẠI TRƯỜNG TRUNG HỌC CƠ SỞ CHU VĂN AN
3.2. Lựa chọn phương pháp, công cụ
3.2.1. Lựa chọn ngôn ngữ R thực hiện phân cụm 1. Ngôn ngữ R
Phân tích số liệu và biểu đồ thường được tiến hành bằng các phần mềm thông dụng như SAS, SPSS, Stata, Statistica, và S-Plus. Đây là những phần mềm được các công ty phần mềm phát triển và giới thiệu trên thị trường khoảng ba thập niên qua, và đã được các trường đại học, các trung tâm nghiên cứu và công ty trên toàn thế giới sử dụng cho giảng dạy và nghiên cứu. Nhưng vì chi phí để sử dụng các phần mềm này tuơng đối đắt tiền, một số trường đại học ở các nước đang phát triển không có khả năng tài chính để sử dụng chúng một cách lâu dài. Do đó, các nhà nghiên cứu thống kê trên thế giới đã hợp tác với nhau để phát triển một phần mềm
45
mới, với chủ trương mã nguồn mở, sao cho tất cả các thành viên trong ngành thống kê học và toán học trên thế giới có thể sử dụng một cách thống nhất và hoàn toàn miễn phí.
Năm 1996, trong một bài báo quan trọng về tính toán thống kê, hai nhà thống kê học Ross Ihaka và Robert Gentleman thuộc Trường đại học Auckland, New Zealand phát hoạ một ngôn ngữ mới cho phân tích thống kê mà họ đặt tên là R [17].
Sáng kiến này được rất nhiều nhà thống kê học trên thế giới tán thành và tham gia vào việc phát triển R.
Cho đến nay, qua chưa đầy 10 năm phát triển, càng ngày càng có nhiều nhà thống kê học, toán học, nghiên cứu trong mọi lĩnh vực đã chuyển sang sử dụng R để phân tích dữ liệu khoa học. Trên toàn cầu, đã có một mạng lưới hơn một triệu người sử dụng R, và con số này đang tăng rất nhanh. Có thể nói trong vòng 10 năm nữa, vai trò của các phần mềm thống kê thương mại sẽ không còn lớn như trong thời gian qua nữa. Vậy R là gì ? Nói một cách ngắn gọn, R là một phần mề sử dụng cho phân tích thống kê và vẽ biểu đồ. Về bản chất, R là ngôn ngữ máy tính đa năng, có thể sử dụng cho nhiều mục tiêu khác nhau, từ tính toán đơn giản, toán học giải trí (recreational mathematics), tính toán ma trận (matrix), đến các phân tích thống kê phức tạp. Vì là một ngôn ngữ, cho nên người ta có thể sử dụng R để phát triển thành các phần mềm chuyên môn.
Để sử dụng R, việc đầu tiên là chúng ta phải cài đặt R trong máy tính của mình. Để làm việc này, ta phải truy nhập vào mạng và vào website có tên là
“Comprehensive R Archive Network” (CRAN) sau đây:
http://cran.R-project.org
Khi đã tải R xuống máy tính, bước kế tiếp là cài đặt (set-up) vào máy tính.
Để làm việc này, chúng ta chỉ đơn giản nhấn chuột vào tài liệu trên và làm theo hướng dẫn cách cài đặt trên màn hình. Đây là một bước rất đơn giản, chỉ cần 1 phút là việc cài đặt R có thể hoàn tất. Tài liệu cần tải về, tùy theo phiên bản, nhưng thường có tên bắt đầu bằng mẫu tự R và số phiên bản (version). Tài liệu này khoảng 26 MB, và địa chỉ cụ thể để tải là:
46
http://cran.r-project.org/bin/windows/base/R-2.2.1-win32.exe 2. Phương pháp phân cụm
Luận văn lựa chọn thuật toán phân cụm K-means để thử nghiệm với bài toán phân cụm kết quả học tập của học sinh trường Trung học cơ sở Chu Văn An.
3.2.2. Các bước thực hiện phân cụm bằng ngôn ngữ R
Giả sử tệp dữ liệu kết quả học tập của học sinh sử dụng để thực nghiệm là D:\DEMO\KHOI9.CSV (tệp excel). Phần tiếp theo, luận văn mô tả các bước thực hiện các lệnh bằng ngôn ngữ R thực hiện thuật toán K-means trên dữ liệu thực nghiệm.
1. Nạp dữ liệu vào vùng làm việc bằng R
- Dịch chuyển con trỏ tới thư mục làm việc:
setwd("D:/DEMO")
- Đặt đường dẫn tới tệp làm việc:
path=paste(getwd(),"/KHOI9.CSV",sep="")
- Nạp dữ liệu vào vùng làm việc từ tệp KHOI09.CSV:
dat = read.csv(path,header=TRUE,sep=",") 2. Mô tả dữ liệu
- Phân bố số học sinh theo điểm trung bình các môn:
plot(dat[,20],ylab="Trung bình các môn",xlab="Số học sinh",main="Biểu đồ mô tả học sinh theo TBCM",pch=20,col=3)
- Thống kê số học sinh theo điểm toán:
hist(dat[,5],col=2,ylab="Số lượng học sinh",xlab="Điểm toán",main="Biểu đồ thông kê học sinh theo điểm toán")
47
Hình 3.3. Thống kê số học sinh theo điểm toán
Biểu đồ trên cho thấy phân lớn học sinh tập trung từ 7.5 đến 9.5 điểm. Trong 208 học sinh có khoảng 32 học sinh 7.5 đến 8, 40 học sinh có điểm toán 8 đến 8.5, 32 học sinh có điểm toán 8.5 đến 9 và 34 học sinh có điểm trong khoảng 9 đến 9.5.
3. Thực hiện thuật toán K-means
Giả sử phân cụm học sinh theo trường điểm toán (TOAN) và điểm văn (VAN) với số cụm là 03
- Lấy các trường cần phân cụm vào ma trận số X gồm các trường toán, văn:
X = datN[,1:2]
- Thiết lập vùng làm việc:
set.seed(1)
- Sử dụng thuật toán K-means phân X thành 03 cụm, với tâm cụm được lấy ngẫu nhiên trong khoảng [1,10]:
km = kmeans(X,3, nstart=10)
- Vẽ cặp phân cụm giữ điểm toán và điểm văn:
plot(X[c(1,2)], col =(km$cluster +1), main="K-Means result with 3 clusters", pch=20, cex=2)
- Hiện thị tâm cụm:
points(km$centers,col=c(2,3,4), pch=8,cex=4)
48