I.Đặt vấn đề: Ngày nay vấn đề việc làm là hết sức quan trọng và đặc biệt là các bản hợp đồng lao động. để tìm hiểu được và tìm ra một bản hợp đồng có thể được coi là được là một trong những vấn đề rất phức tạp Có rất nhiều vấn đề dẫn đến người lao động bị thiệt thòi khi không tìm ra bản hợp đồng tốt, có thể nảy sinh ra từ các nguyên nhân như là : tăng lương, ngày nghỉ , trợ cấp lao động , ốm đau…… Nhằm khắc phục được những nhược điểm đó thì vấn đề đặt ra là cần xây dựng một công cụ tiện ích cho phép cung cấp, gợi ý, tham khảo cho người lao động để lựa chọn cái hợp đồng lao động tốt nhất. Công cụ này dựa trên các dữ liệu đã được thu thập, cân bằng tương đối. II.Xây dựng cơ sở dữ liệu: Dựa trên những dữ liệu thực tế ta xây dựng được bộ dữ liệu: Trường dữ liệu Giải thích Duration Thời gian Wage-increase-first-year Lương tăng trong năm đầu Wage-increase-second-year Lương tăng trong năm thứ 2 Wage-increase-third-year Lương tăng trong năm thứ 3 Cost-of-living-adjustment Điều chỉnh giá hiện tại đang sống Working-hours Giờ làm việc Pension Trợ cấp Standby-pay Dự trữ trả Shift-differential Các thay đổi khác Education-allowance Trợ cấp giáo dục Statutory-holidays Ngày nghỉ quy định Vacation Ngày lễ Longterm-disability-assitance Trợ cấp ko may mắn Contribution-to-dental-plan Beravement-assistance Trợ giúp mất người thân Contribution-to-health-plan Đóng góp dự định về sức khỏe Class Quyết định III. Phân tích yêu cầu của bài toán: Nhiệm vụ là phải phân loại và cung cấp các mô tả hợp đồng lao động chấp nhận được và không thể chấp nhận được .Dựa trên cây quyết định. IV.Thực nghiệm trên weka: 1.Tiền xử lý dữ liệu: Khởi động WEKA Explorer. Chọn cơ sở dữ liệu CSDL.csv bằng cách chọn Open File… chọn kiểu dữ liệu CSV data file (*.csv) rồi chọn
Trang 1I.Đặt vấn đề:
Ngày nay vấn đề việc làm là hết sức quan trọng và đặc biệt là các bản hợp đồng lao động để tìm hiểu được và tìm ra một bản hợp đồng có thể được coi là được là một trong những vấn đề rất phức tạp Có rất nhiều vấn đề dẫn đến người lao động bị thiệt thòi khi không tìm ra bản hợp đồng tốt, có thể nảy sinh ra từ các nguyên nhân như là : tăng lương, ngày nghỉ , trợ cấp lao động , ốm đau……
Nhằm khắc phục được những nhược điểm đó thì vấn đề đặt ra là cần xây dựng một công cụ tiện ích cho phép cung cấp, gợi ý, tham khảo cho người lao động để lựa chọn cái hợp đồng lao động tốt nhất
Công cụ này dựa trên các dữ liệu đã được thu thập, cân bằng tương đối
II.Xây dựng cơ sở dữ liệu:
Dựa trên những dữ liệu thực tế ta xây dựng được bộ dữ liệu:
Wage-increase-second-year Lương tăng trong năm thứ 2
Wage-increase-third-year Lương tăng trong năm thứ 3
Cost-of-living-adjustment Điều chỉnh giá hiện tại đang sống
Trang 2IV.Thực nghiệm trên weka:
1.Tiền xử lý dữ liệu:
Khởi động WEKA Explorer Chọn cơ sở dữ liệu CSDL.csv bằng cách chọn Open File…
chọn kiểu dữ liệu CSV data file (*.csv) rồi chọn đường dẫn tới CSDL.csv
Ta thấy xuất hiện dữ liệu trên cửa số Preprocess của WEKA như sau:
Trang 3- Chuyển kiểu dữ liệu wage-increase-first thành kiểu Nominal với các giá trị tương ứngcao , thấp
Trang 4+ Nhập biểu thức lọc vào nhấn OK để chấp nhận.Chọn Apply để áp dụng lên trường
dữ liệu DiemTB
+ Chọn tiếp mục NumericToNominal trong cây thư mục Chọn Apply ta thu được kết
quả như sau:
Trang 5Thêm các gí trị cao,thấp Gioi vào thuộc tính học lực Trong cây thư mục chọn
AddValue Tiến hành nhập vào các giá trị tương ứng như sau:
Trang 7Xây dựng cây quyết định bằng thuật toán: J48
- Bước đầu tiên ta sử dụng tất cả dữ liệu để trainning cho cây:
+ Nhấn vào tab Classify chọn thuật toán sử dụng bằng cách nhấn vào nút Choose; khi cây thư mục hiện thư mục Trees/J48:
Trang 8Sau đó ta sẽ nhận được giao diện có dạng:
Để tiến hành trainning trên toàn bộ dữ liệu ta chọn vào tùy chọn Use tranning set rồi nhấn
Start.
Ta thu được kết quả hiển thị ở khung Classifier Output như sau:
Trang 9Nội dung kết quả:
Trang 12Đọc nội dung kết quả:
- Kết quả được trả về theo 3 vùng dữ liệu:
Vùng Run Information: Cho biết thông tin về dữ liệu nguồn.
Vùng hiển thị kết quả trainning:
+ Chế độ phân lớp: toàn bộ dữ liệu
+ Cây J48 sau khi tiến hành trainning:
Trang 13Thời gian tiến hành:0.02
Tóm tắt kết quả xác nhận phân lớp:
+ Trường hợp phân lớp chính xác: 61 chiếm 73.6842%
+Trường hợp không chính xác: 37 chiếm 37,6551%
+ Các thống kê lỗi
Để xem kết quả cây dưới dạng hình ảnh tiến hành như sau:
Kết quả hiển thị cây:
Trang 14Đọc cây quyết định:
Trang 15Nếu wage-increase-first-year=2.5 và statutory-holidays = cao thì chọn
Trang 16Nếu wage-increase-first-year= thấp và statutory-holidays = cao thì chọn
Nếu wage-increase-first-year = cao và statutory-holidays = cao thì chọn
3.Tiến hành chạy thử:
Lần thứ hai: Lấy 95% dữ liệu để xây dựng cây, 5% để test:
Trang 17Kết quả hiển thị:
Trang 19 Chạy lần 3: Bộ dữ liệu trainning 90%, Test 10%
Trang 21 Chạy lần 4: Bộ dữ liệu trainning 85%, Test 15%
Trang 22 Chạy lần 5: Bộ dữ liệu trainning 91%, Test 9%
Trang 24 Chạy lần 6:Bộ dữ liệu trainning 96%, Test 4%
Trang 26 Chạy lần 7:Bộ dữ liệu trainning 50%, Test 50%
Trang 28 Chạy lần 8:Bộ dữ liệu trainning 75%, Test 25%
Trang 34V ĐÁNH GIÁ VÀ KẾT LUẬN:
Sau khi thực hiện chạy 10 lần J48 để xây dựng cây với các tham số đầu vào khác nhau
ta thấy ứng với lần chạy thứ 2 với các tham số lựa chọn là : bộ dữ liệu dùng khởi tạo cây
95 %, bộ dữ liệu test là 5% đạt được tỉ lệ phân lớp chính xác là 80% Số lượng mẫu testkhông quá bé Nên ta chọn cây quyết định sinh ra tại lần chạy thứ 2 để sử dụng cho cácmẫu thử sau bất kỳ sau này
Sau quá trình thực hành tạo cây quyết định trên WEKA bằng thuật toán J48 (C4.5) ta cóthể hình dung được quá trình khởi tạo và hoạt động của một cây quyết định như sau: