Để xác định được năng khiếu của một học sinh phụ thuộc rất nhiều yếu tố ảnh hưởng như : Điểm các môn học, lứa tuổi, tâm lý, giới tính, khu vực sống, hoàn cảnh gia đình . . . Đề tài chỉ tập trung nghiên cứu việc đề xuất từ điểm trung bình các môn học lựa chọn ra các môn có ảnh hưởng đến phân lớp năng khiếu của học sinh thông qua cây quyết định đã nghiên cứu tìm ra các luật quyết định (phân lớp) năng khiếu của học sinh. Mời quý thầy cô tham khảo sáng kiến “Xây dựng chương trình phân lớp môn tự chọn tại trường phổ thông”.
SÁNG KIẾN KINH NGHIỆM XÂY DỰNG CHƯƠNG TRÌNH PHÂN LỚP MÔN TỰ CHỌN TẠI TRƯỜNG PHỔ THÔNG MỤC LỤC I LÝ DO CHỌN ĐỀ TÀI: II THỰC TRẠNG TRƯỚC KHI THỰC HIỆN ĐỀ TÀI: .4 III NỘI DUNG ĐỀ TÀI .4 Cài đặt ứng dụng Cơ sở liệu Thuật tốn tìm tập rút gọn .6 Thuật toán xây dựng định 10 Sử dụng chương trình 15 5.1 Màn hình giao diện chương trình 15 5.2 Chức mở liệu 15 5.3 Chức tìm tập rút gọn 16 5.4 Chức tạo hiển thị định 17 5.5 Luật định tương ứng với sở liệu 18 5.6 Chức phân lớp khiếu học sinh .19 IV KẾT QUẢ ĐẠT ĐƯỢC 20 V BÀI HỌC KINH NGHIỆM 21 VI KẾT LUẬN 22 VII TÀI LIỆU THAM KHẢO 22 I LÝ DO CHỌN ĐỀ TÀI Việc đưa ứng dụng công nghệ thông tin vào giảng dạy cấp bậc học quan tâm đầu tư lớn từ phía lãnh đạo ngành Xuất phát từ văn đạo Đảng nhà nước thị 58-CT/UW Bộ Chính Trị ngày 07 tháng 10 năm 2000 việc đẩy mạnh ứng dụng CNTT phục vụ nghiệp Cơng nghiệp hóa Hiện đại hóa rõ trọng tâm ngành giáo dục đào tạo nguồn nhân lực CNTT đẩy mạnh ứng dụng CNTT công tác giáo dục đào tạo, nhiệm vụ mà Thủ tướng Chính phủ giao cho ngành giáo dục thông qua định số 81/2001/QĐ-TTg; Hiện trường học trang bị nhiều thiết bị phần mềm phục vụ việc giảng dạy quản lý số lĩnh vực hoạt động trường Các giáo viên đào tạo, tập huấn tự học để đáp ứng việc vận dụng thiết bị phần mềm giảng dạy đầu tư nhiều vào việc ứng dụng công nghệ thông tin soạn giảng kiểm tra đánh giá học sinh Các cán quản lý trường tập huấn sử dụng nhiều phần mềm để đưa áp dụng công nghệ thông tin vào quản lý số lĩnh vực hoạt động trường : quản lý nhân , quản lý học sinh, quản lý thư viện, quản lý xếp thời khóa biểu, quản lý tài chánh, quản lý tài sản công Theo đạo phân phối chuyên môn Bộ Giáo dục Đào tạo, em học sinh bậc Trung học sở Trung học phổ thơng có tiết qui định cho môn học ‘’ Tự chọn’’ theo khiếu Các tiết học em đăng ký học môn mà em có lực hứng thú Với cách tiệp cận làm để hỗ trợ Ban giám hiệu trường đưa gợi ý cho em học sinh chọn môn học tự chọn phù hợp với khiếu em cách khách quan dựa sở khoa học có ý nghĩa cần thiết Để xác định khiếu học sinh phụ thuộc nhiều yếu tố ảnh hưởng : Điểm mơn học, lứa tuổi, tâm lý, giới tính, khu vực sống, hồn cảnh gia đình Đề tài tập trung nghiên cứu việc đề xuất từ điểm trung bình mơn học lựa chọn mơn có ảnh hưởng đến phân lớp khiếu học sinh thông qua định nghiên cứu tìm luật định (phân lớp) khiếu học sinh Lý thuyết tập thô xây dựng tảng toán học vững giúp cung cấp cơng cụ hữu ích để giải toán phân lớp liệu khai phá luật, Với đặc tính xử lý liệu mơ hồ, không chắn khả loại bỏ thuộc tính dư thừa dựa thuật tốn tìm tập rút gọn làm cho tập thơ tỏ hữu ích việc giải tốn thực tế Từ bảng liệu lớn với liệu dư thừa, khơng hồn hảo, liệu liên tục, hay liệu dạng ký hiệu lý thuyết tập thô cho phép khai phá tri thức từ khối liệu nhằm phát luật tiềm ẩn từ khối liệu Vì lý nên chọn đề tài “ XÂY DỰNG CHƯƠNG TRÌNH PHÂN LỚP MÔN TỰ CHỌN TẠI TRƯỜNG PHỔ THÔNG ” II THỰC TRẠNG TRƯỚC KHI THỰC HIỆN ĐỀ TÀI Thuận lợi - Việc tổ chức tiết học môn tự chọn theo khiếu học sinh trường Trung học sở, Trung học phổ thông việc làm hàng năm nên công tác nghiệp vụ phận, cá nhân liên quan có kinh nghiệm việc triển khai thực - Theo đạo phân phối chuyên môn Bộ Giáo dục Đào tạo, em học sinh bậc Trung học sở Trung học phổ thơng có tiết qui định cho môn học ‘’ Tự chọn’’ theo khiếu Các tiết học em đăng ký học mơn mà em có lực hứng thú - Việc thông tin, báo cáo Bộ với Sở Sở với đơn vị trường thực thông suốt kịp thời qua giúp cho việc triển khai nhiều thuận lợi Khó khăn Để xác định khiếu học sinh phụ thuộc nhiều yếu tố ảnh hưởng : Điểm môn học, lứa tuổi, tâm lý, giới tính, khu vực sống, hồn cảnh gia đình III NỘI DUNG ĐỀ TÀI Phần mô tả ứng dụng cài đặt thuật tốn tìm tập rút gọn thuật tốn xây dựng định ID3 để phân lớp khiếu Cài đặt ứng dụng Ứng dụng xây dựng ngơn ngữ lập trình visual C# (trên tảng công nghệ Microsoft Net 2010) chạy môi trường Window với sở liệu Microsoft Access 2010 Ứng dụng tập trung vào xây dựng thuật tốn tìm tập rút gọn dựa vào ma trận phân biệt lý thuyết tập thơ để tìm thuộc tính điểm có ảnh hưởng cao đến phân lớp khiếu học sinh Thực đưa thuộc tính tập rút gọn vào thuật toán định ID3 Từ định hay luật định trích từ định tiến hành việc phân lớp khiếu học sinh cho môn tự chọn để hỗ trợ Ban giám hiệu trường đưa gợi ý cho em học sinh chọn môn học tự chọn phù hợp với khiếu em cách khách quan dựa sở khoa học Cơ sở liệu Trong trình thực nghiệm, luận văn sử dụng bảng liệu bảng điểm tổng hợp học kỳ, năm học sinh năm 2011 2012 trích từ số trường THCS Tỉnh Đồng Nai (bao gồm trường nội thành phố, trường huyện, có trường điểm, trường đạt chuẩn trường chưa đạt chuẩn) Bảng điểm tổng hợp có thuộc tính giá trị thuộc tính cho bảng sau : STT Bảng 1: Danh sách thuộc tính bảng điểm tổng hợp Tên thuộc Giá trị Giải thích tính TO 0.0 đến 10.0 Điểm trung bình mơn Toán học sinh LY 0.0 đến 10.0 HO 0.0 đến 10.0 SH 0.0 đến 10.0 NV 0.0 đến 10.0 SU 0.0 đến 10.0 DI 0.0 đến 10.0 AV 0.0 đến 10.0 CD 0.0 đến 10.0 10 CN 0.0 đến 10.0 11 12 AN MT 0.0 đến 10.0 Hoặc G,K,TB,Y 0.0 đến 10.0 Hoặc G,K,TB,Y 0.0 đến 10.0 Hoặc G,K,TB,Y 13 TD 14 TBM 0.0 đến 10.0 15 NangKhieu Tên môn học (năng khiếu) Điểm trung bình mơn Lý học sinh Điểm trung bình mơn Hóa học sinh Điểm trung bình mơn Sinh học sinh Điểm trung bình mơn Văn học sinh Điểm trung bình mơn Sử học sinh Điểm trung bình mơn Địa học sinh Điểm trung bình mơn Anh văn học sinh Điểm trung bình mơn Cơng dân học sinh Điểm trung bình mơn Cơng nghệ học sinh Điểm trung bình/đánh giá mơn Âm nhạc học sinh Điểm trung bình/đánh giá mơn Mỹ thuật học sinh Điểm trung bình/đánh giá mơn Thể dục học sinh Điểm trung bình môn học sinh Môn khiếu học sinh Thuật tốn tìm tập rút gọn Nói chung thuật toán xác định đối tượng tập thơ dựa vào ma trận phân biệt Tuy vậy, thuật tốn thường địi hỏi độ phức tạp lớn thời gian khơng gian lưu trữ Để khắc phục nhược điểm đó, thuật toán đề cập dựa vào ý nghĩa ma trận phân biệt không cần phải lưu trữ ma trận Thay vào đó, thuật tốn xác định số cặp đối tượng phân biệt thuộc tính điều kiện Cho B C, cj C \ B X U Ta kí hiệu wBX(cj ) số cặp đối tượng X B khác thuộc tính cj Tức w BX c j = Card({(u,v) X2 | u(B)=v(B) u(cj) ≠ v(cj)}) Tương tự w BX D = Card({(u,v) X2 | u(B)=v(B) u(D) ≠ v(D)}) Khi B= hai đại lượng viết cách đơn giản wX(cj) wX(D) Chẳng hạn wX(cj)= Card({(u,v) X2 | u(cj) ≠ v(c j)}) Khi X=U ta viết kí hiệu wB(cj) wB(D), X=U B= ta viết kí hiệu w(cj) w(D) Nếu RC rút gọn C cặp đối tượng R D, hay nói cách khác wR(D)=0 Tính hợp lý thuật tốn dựa sở khẳng định sau Mệnh đề Cho XU, giả sử INDX(D) = {X1, X2, ,Xm}với Card(X)= x, Card(Xi)=xi Khi đó: m x i 1 xi 1 m 2 x xi i 1 w (D)= xx x j X i j Mệnh đề [1] Giả sử XU, RC INDX(R) = {X1, X2, ,Xk} Khi X X X X (a) w B D = w B D + w B D + + w B k D (b) Với cjC\R, ta có [IND X ( R {c})] = IND X1 ( D) + IND X ( D ) + + IND Xk ( D ) i i i (c) Nếu cj C\R [INDXi (c j )] = Y1 , Y2 , , Yp i i w RXi {c j } D = w Y D + w Y2 D + … + w Ypi D Mệnh đề 1.3 R rút gọn tập thuộc tính điều kiện C R tập tối thiểu thỏa w R D Chứng minh: Rõ ràng theo nhận xét phần trên, R rút gọn C R tập tối thiểu thỏa tính chất: cặp đối tượng R D hay w R D Ngược lại, R tập tối thiểu thỏa w R D có nghĩa R xác định D hay POS R D POSC D tập thực R không thỏa tính chất này, DT’=(U,RD) độc lập Vậy R rút gọn C Vấn đề đặt bước chọn lựa thuộc tính đưa vào R Một cách tự nhiên ta chọn thuộc tính mà tham gia vào tập rút gọn làm số cặp đối tượng R khác D Với cách chọn lựa heuristic thuật tốn có khả cho ta tập rút gọn với số thuộc tính tối thiểu Thoạt tiên, ta chọn R = bổ xung dần thuộc tính vào R bước, ta ln kí hiệu L=[IND(R)] Ban đầu R = nên L={U} Thuật toán Vào: DT={U,CD} Ra: Tập rút gọn R Phương pháp: R =; L={U}; Repeat For cjC\R Begin For Xi L Begin Tìm [IND X (c j )] {Y1 , Y2 , , Ym } i For l=1 to m Begin Tìm [IND y ( D)] {Y1l , Y2l , , Ykl } l w yl D l k (( x ) i 1 ( xil ) ) (Trong x l = Card(Y1) xil Card (Yi l ) ) End ij =w RXi {c j } D wY1 ( D ) wY2 ( D) wYm ( D) End j =w RXi {c j } D X L ij i End Chọn thuộc tính cr cho r bé R=R{cr} L= X L[ INDx (cr )] (=[IND(R)]) i i Until ((r=0) (R=C) Ví dụ xét bảng định U To Av Nv Tc u1 G K2 K2 T u2 K2 K1 G A u3 K1 K2 TB T u4 G TB K1 A u5 G TB K2 T u6 G K1 TB A u7 G K2 K1 A Thực thuật giải ta nhận kết bước sau: R =; L={U} (X1=U) [C1X1 ] {Y1 {u1 , u4 , u5 , u6 , u7 }, Y2 {u2 }, Y3 {u3 }} Y1 D (52 2 32 ) Y2 D (12 12 ) Y3 D (12 12 ) 11 Y1 ( D) Y2 ( D) Y3 ( D) [C2X1 ] {Y1 {u1 , u3 , u7 }, Y2 {u2 , u6 }, Y3 {u4 , u5}} Y1 D (32 2 12 ) 2 Y2 D (22 2 ) Y3 D (2 12 12 ) 12 Y1 ( D) Y2 ( D ) Y3 ( D ) [C3X1 ] {Y1 {u1 , u5 }, Y2 {u2 }, Y3 {u3 , u6 }, Y4 {u4 , u7 }} Y1 D (22 2 ) Y2 D Y4 D 31 Y1 ( D) Y2 ( D) Y3 ( D) Y4 ( D) 1 11 6; 21 3; r 3 31 R = R {c3} = {c3} L { X {u1 , u5 }, X {u2 }, X {u3 , u6 }, X {u4 , u7 }} [C1X1 ] {Y1 {u1 , u5 }} 11 [C1X ] {Y1 {u2 }} 12 [C1X ] {Y1 {u3}, Y2 {u6 }} 13 [C1X ] {Y1 {u4 , u7 }} 14 [C2X1 ] {Y1 {u1}, Y2 {u5}} 21 [C2X ] {Y1 {u2 }} 22 [C2X ] {Y1 {u3}, Y2 {u6 }} 23 [C2X ] {Y1 {u4 }, Y2 {u7 }} 24 1 11 12 13 14 21 22 23 24 Đến ta chọn c1 c2 Thuật toán dừng ta nhận hai rút gọn tương ứng: R={ c1, c3}={To,Nv}; R={ c2, c3}={Av,Nv} Hình 2: minh họa chạy thuật tốn tìm tập rút gọn cho ví dụ từ chương trình Thuật tốn xây dựng định Thuật toán ID3 – Iterative Dichotomiser thuật toán dùng để xây dựng định John Ross Quinlan trình bày Ý tưởng thuật tốn ID3 để xây dựng định cách ứng dụng từ xuống chiến lược tham lam thông qua tập cho để kiểm tra thuộc tính nút Để chọn thuộc tính "tốt nhất" (để có tối ưu – có độ sâu nhỏ nhất), người ta phải tính IG thơng qua Entropy thuộc tính điều kiện Dữ liệu vào: Bảng định DT = (U, C {d}) Dữ liệu ra: Mơ hình định Thuật tốn ID3 [5] TreeNode CreateTree(DT, C, {d}) { if ( Nếu tất mẫu nhãn lớp di) or (C == null) return (TreeNode(di)); bestAttribute = getBestAttribute(DT,C); Root = TreeNode(bestAttribute); foreach (v in bestAttribute) { DTv = [DT]v; 10 C = C-{bestAttribute}; 11 ChildNode = CreateTree(DTv, C, {d}); 12 Root.AdTreeNode(ChildNode,v); 13 } 14 return Root; 15 } Ví dụ 1: Xét bảng định DT = {U, C {d}} cho Bảng Bảng Bảng định minh họa thuật toán ID3 To Ly Nv Av Tc u1 K2 G K2 K2 A u2 K2 G K2 K1 A u3 K1 G K2 K2 T u4 G K1 K2 K2 T u5 G K2 K1 K2 T u6 G K2 K1 K1 A u7 K1 K2 K1 K1 T u8 K2 K1 K2 K2 A u9 K2 K2 K1 K2 T u10 G K1 K1 K2 T u11 K2 K1 K1 K1 T u12 K1 K1 K2 K1 T u13 K1 G K1 K2 T u14 G K1 K2 K1 A Giải thích sở liệu Bảng 2: Để tiện lợi ta xem tất thuộc tính có kiểu liệu rời rạc Thuộc tính nhãn lớp tức thuộc tính “Tc” có hai giá trị “T” “A”, có chín liệu có nhãn lớp giá trị “T” năm giá trị “A” Thuật toán xây dựng định sau: Đầu tiên nút gốc khởi tạo gồm mẫu từ u1 đến u14 Để tìm điểm chia tốt nhất, phải tính tốn số IG tất thuộc tính Đầu tiên tính Entropy cho tồn tập huấn luyện U gồm chín {u , u , u , u , u , u10 , u11 , u12 , u13 } có giá trị thuộc tính nhãn “T” năm {u , u , u , u , u14 } có thuộc tính nhãn “A”: 9 5 Entropy(DTG ) log log 0.940 14 14 14 14 Kế tiếp tính IG cho thuộc tính, bắt đầu với thuộc tính “To” Thuộc tính có ba giá trị “G”, “K1” “K2” Nhìn vào bảng liệu 2.2, với giá trị “K2” có hai { u , u11} có giá trị thuộc tính nhãn “T” ba {u , u , u } giá trị thuộc tính nhãn “A” Tương tự giá trị “K1” có bốn { u , u , u12 , u13} có nhãn lớp “T” khơng có có nhãn lớp “A”; với giá trị “G” có ba {u , u , u10 } nhãn lớp “T” hai { u , u14 } có nhãn lớp “A” Theo cơng thức trên, độ đo lượng thơng tin thu thêm thuộc tính “To” xét DT là: | DTv | Entropy(DTv ) vVTo | DT | IG(DT,To) Entropy(DT ) 3 4 3 2 5 0.940 ( log2 log2 ) ( log2 ) ( log2 log2 ) 0.247 5 14 4 14 5 5 14 Theo cách tính tương tự trên, tính số IG cho thuộc tính “Ly”, “Nv” “Av” Kết là: IG(DT, Ly) = 0.029; IG(DT, Nv) = 0.152; IG(DT, Av) = 0.048; Như vậy, thuộc tính “To” thuộc tính có số IG lớn nên chọn thuộc tính phân chia Vì thuộc tính “To” chọn làm nhãn cho nút gốc, ba nhánh tạo với tên “G”, “K1”, “K2” Hơn nhánh “K1” có mẫu {u3, u7, u12, u13} thuộc lớp “T” nên nút tạo với nhãn “T” Kết phân chia định sau: To {u1, u2, , K2 ID3(DTK2, C-{To}, {d}) K1 T {u3, u7, u12, G ID3(DTG, C-{To}, {d}) Hình định bước đầu ví dụ - Bước gọi thuật tốn đệ quy: ID3(DTK2, C-{To}, {d}) Ta có DTK2 gồm có mẫu {u1, u2, u8, u9, u11 } Tương tự để tìm điểm chia tốt thuật tốn này, phải tính tốn số IG thuộc tính “Ly”, “Nv” “Av” Đầu tiên ta tính Entropy cho tồn tập huấn luyện DTK2 gồm hai {u9, u11} có thuộc tính nhãn “T” ba {u1, u2, u8} có thuộc tính nhãn “A”: 2 3 Entropy (TK ) log log 0.971 5 5 Tiếp theo tính IG cho thuộc tính “Ly” thuộc tính có ba giá trị “G”, “K1” “K2” Nhìn vào bảng liệu trên, với giá trị “K2” có {u9} có giá trị thuộc tính nhãn “T” khơng có giá trị thuộc tính nhãn “A” Tương tự giá trị “K1” có {u11} có nhãn lớp “T” {u8} có nhãn lớp “A”; với giá trị “G” có khơng có nhãn lớp “T” hai { u1 , u 2} có nhãn lớp “A” Theo công thức trên, độ đo lượng thông tin thu thêm thuộc tính “Ly” xét DTK2 là: IG(DTK , Ly) Entropy(DTK ) vVLy | DTK 2v | | DTK | Entropy(DTK 2v ) 1 1 2 1 0.971 ( log ) ( log log ) ( log ) 0.571 2 2 2 5 Tính tương tự ta có: IG(DTK2 , Nv) 0.971, IG(DTK2 , Av) 0.020 Vì vậy, ta chọn thuộc tính “Nv” làm nhãn cho nút bên trái nối với nhánh “K2” Với thuộc tính có hai giá trị “T”, “A” nên ta tiếp tục ta tạo thành hai nhánh “T” “A” Ứng với nhánh “T” gồm mẫu {u , u11} có giá trị định “T” nên tạo nút “T” Tương tự với nhánh “A” gồm mẫu {u1 , u , u 8} nên tạo thêm nút “A” - Đối với nút nối với nhánh “G”, ta gọi thuật toán đệ quy ID3(TG , C-{To}, {d}) Tương tự, ta có: Entropy(DTG) = 0.971 IG(DTG, Ly) = 0.02 IG(DTG, Nv) = 0.02 IG(DTG, Av) = 0.971 Do thuộc tính “Av” có độ đo lượng thơng tin thu thêm IG lớn nhất, ta chọn “Av” làm nhãn cho nút Kết cuối ta có định Hình To {u1, u2, , u14} Nv {u1,u2,u8,u9, K1 T {u9,u11} G K1 K2 T {u3, u7, u12, u13 K2 A {u1,u2,u8} Av {u4,u5,u6,u10,u14 K2 T {u4, u5,u10} K1 A {u6,u14} Hình 3: Cây định xây dựng theo thuật toán ID3 ứng với Bảng định Sử dụng chương trình 5.1 Màn hình giao diện chương trình Hình minh họa hình giao diện chương trình 5.2 Chức mở liệu - Click vào nút - Chọn tập tin chứa liệu cần hiển thị lưới - Kết tập tin chứa liệu hiển thị lưới Hình minh họa hình giao diện chức mở liệu chương trình 5.3 Chức tìm tập rút gọn Sau nội dung hiển thị lưới click vào nút để chương trình sử dụng thuật tốn tìm tập rút gọn loại bỏ thuộc tính khơng cần thiết để đưa vào định thuộc tính cần thiết giúp giảm nhánh định thuận lợi cho việc rút luật định phân lớp Hình minh họa hình giao diện chức tìm tập rút gọn chương trình 5.4 Chức tạo hiển thị định Hình minh họa hình giao diện chức tạo hiển thị định chương trình 5.5 Luật định tương ứng với sở liệu Tri thức trình bày định rút biểu diễn dạng luật IF…THEN Mỗi đường từ nút gốc đến tạo nên luật Các cặp (thuộc tính, giá trị) dọc theo đường tạo thành liên kết tiền đề luật phần IF Nút với giá trị thuộc tính dự đốn tạo nên phần THEN luật Các luật IF … THEN giúp ta dễ hiểu hơn, đặc biệt cho trước lớn Cụ thể từ định thuật toán, rút số luật phổ biến sau: IF (NV, = 9.5) AND (LY, < 9.5) AND (HO, < 9.5) AND (AV, < 9.5) THEN (NangKhieu, Toán) IF (NV, = 9.5) AND (HO, < 9.5) AND (AV, < 9.5) THEN (NangKhieu, Lý) IF (NV, = 8.5) AND (HO, < 8.5) AND (AV, < 8.5) THEN (NangKhieu, Lý) IF (NV, =8.0) AND (TO, < 8.5) AND (LY, < 8.5) AND (HO, >= 8.5) AND (AV, < 8.5) THEN (NangKhieu, Hóa) IF (NV, =8.0) AND (TO, < 8.5) AND (LY, < 8.5) AND (HO, < 8.5) AND (AV, >= 8.5) THEN (NangKhieu, Anh Văn) IF (NV, =8.0) AND (TO, < 8.5) AND (LY, < 8.5) AND (HO,