7. Bố cục luận văn
2.4.2. Ứng dụng Random Forresst
2.4.2.1. Phân tích dữ liệu
Có rất nhiều yếu tố ảnh hưởng đến tỉ lệ rủi ro trong bảo hiểm tàu cá như đã nêu ở trên. Tuy nhiên ở đây, chúng ta chú trọng phân tích các tập thuộc tính với những yếu tố chính trong bảng dữ liệu như sau:
Bảng 2.3. Bảng dữ liệu mẫu của 10 khách hàng
Các thuộc tính Thuộc tính phân loại TT Mục Đích sử dụng Thời gian sử dụng Kinh nghiệm lái tàu Làm nước Số tiền bồi thường Khu vực để tàu Phạm vi hoạt đông Rủi ro
1 Giả cào 6 3 Có 10 Cầu cảng Gần bờ THẤP
2 Câu 8 7 Không 30 Không Gần bờ TB
3 Giả cào 14 6 Không 50 Không Gần bờ CAO
4 Lặn 11 6 Có 10 Cầu cảng a bờ TB
5 Giả cào 12 11 Có 20 Cầu cảng Gần bờ TB
6 Giả cào 12 12 Không 50 Không a bờ CAO
7 Lặn 7 2 Có 10 Cầu cảng Gần bờ THẤP
8 Câu 6 4 Không 40 Không a bờ TB
9 Giả cào 14 7 Không 50 Không a bờ TB
10 Giả cào 9 4 Không 50 Cầu cảng Gần bờ CAO
Trong đó:
Thuộc tính Mục đích sử dụng là loại thộc tính Nominal có giá trị [giả cào, lặn, câu]
+ Giả cào: Là tàu sử dụng lưới để đánh bắt cá
+ Lặn: Là tàu sử dụng con người lặn để đánh bắt cá… + Câu: Là tàu sử dụng lưỡi câu để đánh bắt cá …
Thuộc tính Thời gian sử dụng là loại thuộc tính Numeric có giá trị [3, 6, 9, 12] nếu tàu đóng nằm trong thời gian từ 1 năm đến 3 năm thì có giá trị bằng <=3 và là tàu có rủi ro là thấp nhất. Ngược lại, tàu sản xuất >3 thì nguy cơ rủi ro càng cao.
Thuộc tính Kinh nghiệm lái tàu là loại thuộc tính Numeric có giá trị [3, 6, 9, 12] nếu kinh nghiệm lái tàu >3 thì nguy cơ rủi ro thấp. Ngược lại kinh nghiệm lái <=3 thì nguy cơ rủi ro càng cao.
Thuộc tính làm nước là loại thộc tính Nominal có giá trị [Có, Không] nếu chủ tàu thường xuyên bảo dưỡng, kiểm tra định kỳ, thì chắc chắn sẽ giảm thiểu được rủi ro.
Thuộc tính Khu vực để tàu là loại thộc tính Nominal có giá trị [Cầu cảng, Không] đây cũng là yếu tố ảnh hưởng đến mức độ rủi ro của tàu tham gia bảo hiểm. Vì nếu tàu không có cầu cảng, thì nguy cơ va quẹt tàu nơi đậu đỗ là rất cao
Thuộc tính Số tiền bồi thường là loại thuộc tính Numeric có giá trị [20, 30, 40, 50] nếu số tiền bồi thường <=40 thì có mức độ rủi ro thấp hơn những tàu có số tiền bồi thường >40
Thuộc tính Phạm vi hoạt động là loại thộc tính Nominal có giá trị [gần bờ, xa bờ] nếu tàu hoạt động trên vùng biển xa bờ. Thì khả năng gặp rủi ro càng cao. Ngược lại nếu tàu hoạt động ở vùng biển gần bờ thì nguy cơ rủi ro là thấp.
Trong đó:
+ Numeric: Là các giá trị số hay giá trị liên tục.
+ Nominal: Là các giá trị định danh hay giá trị không liên tục.
Các yếu tố trên chính là các tập thuộc tính, dựa vào tập thuộc tính này ta sẽ dự đoán giá trị cho thuộc tính đích rủi ro. Đây là thuộc tính phân loại.
2.4.2.2. Xây dựng mô hình phân lớp với Random Forest
ây dựng mô hình phân lớp với dữ liệu đầu vào là bảng dữ liệu của 1724 hồ sơ khách hàng với 8 thuộc tính và thuộc tính cần phân lớp là: rủi ro, như sau:
Trước hết xác định 2 giá trị quan trọng của Random Forest là numTree (số cây của rừng) và numFeatures (số biến được lựa chọn để chia nút).
Ta xây dựng Random Forest gồm numTree cây phân lớp. Mỗi cây phân lớp được xây dựng với các bước sau: Bước 1: Tạo tập huấn luyện bằng các sử dụng bootstrap
Hình 2.2. Tạo bootstrap
Dữ liệu đào tạo [1724 khách hàng]
Dữ liệu huấn luyện [1724 khách hàng]
Bước 2: ây dựng một cây quyết định ngẫu nhiên
Hình 2.3. Cấu trúc cây ngẫu nhiên
Cây được xây dựng từ trên xuống với mỗi nút của cây (không phải nút lá) ta lấy ngẫu nhiên n thuộc tính từ 8 thuộc tính (n<8).
Ví dụ: Ở đây chọn ngẫu nhiên 5 thuộc tính (n=5), trong 8 thuộc tính để tính thuộc tính chia tốt nhất.
Bảng 2.4. Bảng thuộc tính ngẫu nhiên để chia nút
CÁC THUỘC TÍNH Thời gian sử
dụng
Bảo dưỡng định
kỳ Số tiền bồi thường
Khu vực để tàu
Mục đích sử dụng Bước 3: Chọn nút chia tốt nhất bằng cách tính theo giá trị GAIN. Lập lại như vậy với mỗi nút cho đến khi cây không thể chia nữa.
Cuối cùng ta được Random Forest với numTree cây.
Hình 2.4. Mô hình Random Forest với numtree cây
Giả sử ta kiểm tra 1 trường hợp khách hàng mới gồm các thuộc tính như sau:
Bảng 2.5. Bảng thuộc tính của khách hàng mới
Mục Đích sử dụng Thời gian sử dụng Kinh nghiệm lái tàu Làm nước Số tiền bồi thường Khu vực để tàu Phạm vi hoạt đông Rủi ro
Mô hình chạy hết qua các cây với mỗi cây sẽ cho 1 dự đoán, và kết quả cuối cùng là sự bỏ phiếu của các cây có kết quả lớn nhất.
Ví dụ với 10 cây: Kết quả dự đoán lần lượt là: Thấp, Thấp, Thấp, Thấp, Trung Bình, Thấp, Trung Bình, Trung Bình, Thấp, Thấp,
Vây suy ra kết quả cuối cùng là: Thấp. Mô hình tổng quát
Hình 2.5. Mô hình tổng quát của Random Forest để phân lớp
Ví dụ: Tạo mô hình Random Forest với CSDL mẫu của 10 khách hàng ở bảng 2.3 với giá trị numTree = 3 và numFeature = 3:
Tập dữ liệu tàu cá (1724 phần tử, 8 thuộc tính) Tập bootstrap 1 Tập bootstrap 2 Tập bootstarp n … outbag 410 pt, 8 tt inbag 1724 pt, 8 tt outbag 410 pt, 8 tt inbag 1724 pt, 8 tt outbag 410 pt, 8 tt inbag 1724 pt, 8 tt
Kết quả 1 Kết quả 2 Kết quả n
Dự báo phân tử mới
Bình chọn theo số đông n KETQUA Nút trong (không phải nút lá) Lấy ngẫu nhiên m thuộc tính từ 8 thuộc tính
Bước 1: Tạo bootstrap 1:
Bảng 2.6. Bảng dữ liệu bootstrap 1 của 10 khách hàng
TT Mục Đích sử dụng Thời gian sử dụng làm nước Số tiền bồi thường Khu vực để tàu Rủi ro
1 giả cào 6 có 10 cầu cảng THẤP
2 câu 8 không 30 không TB
1 giả cào 6 có 10 cầu cảng THẤP
3 giả cào 14 không 50 không CAO
4 lặn 11 có 10 cầu cảng TB
5 giả cào 12 có 20 cầu cảng TB
2 câu 8 không 30 không TB
6 giả cào 12 không 50 không CAO
7 lặn 7 có 10 cầu cảng THẤP
5 giả cào 12 có 20 cầu cảng TB
Bước 2: Tạo cây phân lớp với dữ liệu bootstrap 1 + ây dựng cây ngẫu nhiên
Hình 2.6. Mô hình cây phân lớp tạo với bootstrap 1
+ ây dựng mỗi nút (không phải nút lá)
Lấy ngẫu nhiên 3 thuộc tính trong số 6 thuộc tính là: Mục Đích Sử Dụng, Thời gian sử dụng, Số Tiền Bồi Thường.
Hình 2.7. Các thuộc tính chọn để chia nút
Đầu tiên ta tính ngưỡng để chia của 3 thuộc tính:
Đối với thuộc tính Mục Đích Sử Dụng gồm có giá trị [Giả cào, lặn, câu] Đối với thuộc tính thời gian sử dụng có giá trị [6, 8, 11, 12, 7, 14].
Trước tiên ta sắp xếp thời gian sử dụng theo thứ tự, ta có [6, 7, 8, 11, 12, 14], lấy giá trị trung bình của các cặp liền kề ta được [6,5; 7,5; 9,5; 11,5; 13].
Mục Đích sử Dụng Giả cào Câu Lặn Thời gian sử dụng> ? đúng sai
Số Tiền Bồi Thường > ? >30 <=30
Trong tập dữ liệu trên: Gọi S1 là những bản ghi có giá trị phân lớp Thấp, S2 là những bản ghi có giá trị phân lớp Trung Bình, S3 là những bản ghi có giá trị phân lớp Cao.
Áp dụng công thức tính Entropy, ta có:
Entropy(S) = Entropy(S1, S2, S3) = - (2/10)log2(2/10) - (5/10)log2(5/10) - (3/10)log2(3/10) = 1,485
Trường hợp Thời gian sử dụng (TGSD) = 6,5 năm, ta có các giá trị của TGSD≤6,5 và TGSD>6,5 (gọi là giá trị bên trái và phải).
Bảng 2.7. Entropy(S) phân theo thời gian sử dụng
Thời gian sử dụng SL RỦI RO
Entropy
Thấp TB Cao
TGSD≤6,5 2 1 1 0 1
TGSD>6,5 8 1 4 3 1,405
Entropy(S, TGSD=6,5)= 2/10*1 + 8/10*1,405 = 1,324 Gain(S, TGSD=6,5) = Entropy(S) – Entropy(S, TGSD=6,5) = 1.485 – 1.324 = 0.161
Tương tự với trường hợp còn lại ta tính được: Gain(S, TGSD=7,5) = 0,520
Gain(S, TGSD=9,5) = 0,281 Gain(S, TGSD=11,5) = 0,255 Gain(S, TGSD=13) = 0,235
Vậy ngưỡng chia của Thời gian sử dụng với giá trị nút là 7,5.
Tiếp theo ta sắp xếp Số Tiền Bồi Thường (STBT) theo thứ tự [10, 20, 30, 50], lấy giá trị trung bình của các cặp liền kề ta được: [15, 25, 40]
Tương tự với cách tính như trên ta tính được: Gain(S, STBT=15) = 0,533
Gain(S, STBT=25) = 0,485 Gain(S, STBT=40) = 0,620
Vậy ngưỡng chia của Số Tiền Bồi Thường với giá trị nút là 40.
Hình 2.8. Ngưỡng các thuộc tính để chia
Mục Đích sử Dụng Giả cào Câu Lặn Thời gian sử dụng ≤7.5 >7.5 ≤40 >40
Tiếp theo tính thuộc tính chia tốt nhất với nút.
Đối với thuộc tính Mục Đích Sử Dụng, ta tính Entropy của các tập con S được chia bởi các giá trị của thuộc tính Mục Đích Sử Dụng như bảng sau:
Bảng 2.8. Entropy(S) phân theo Mục Đích Sử Dụng
Mục đích sử dụng SL RỦI RO Entropy Thấp TB Cao Câu 2 0 2 0 0 Lặn 2 1 1 0 1 Giả cào 6 1 2 3 0
Entropy của S đối với thuộc tính Mục Đích Sử Dụng là: Entropy(S, MĐSD)= 8/10*1,50 + 1/10*0 + 1/10x0 = 1,2 Độ lợi thông tin tương ứng là:
Gain(S, MĐSD) = Entropy(S) – Entropy(S, MĐSD) = 1.485 – 1.2 = 0.285
Đối với thuộc tính thời gian sử dụng ta có bảng sau:
Bảng 2.9. Entropy(S) phân theo thời gian sử dụng
Thời gian sử dụng SL RUIRO Entropy Thấp TB Cao 6 2 1 1 0 1 7 1 1 0 0 0 8 1 0 1 0 0 9 1 0 0 1 0 11 1 0 1 0 0 12 2 0 1 1 1 14 2 0 1 1 1
Entropy của S đối với thuộc tính Thời gian sử dụng là:
Entropy(S, TGSD) = 2/10*1 + 1/10*0 + 1/10*0 + 1/10*0 +1/10*0 +2/10*1 2/10*1 = 0,6
Gain(S, TGSD) = Entropy(S) – Entropy(S, TGSD) = 1,485 – 0,6 = 0,885
Bảng 2.10. Entropy(S) phân theo Số Tiền Bồi Thường Số Tiền Bồi Thường SL RUIRO Entropy Thấp TB Cao 10 3 2 1 0 0,918 20 1 0 1 0 0 30 1 0 1 0 0 40 1 0 1 0 0 50 4 0 1 3 0,811
Entropy của S đối với thuộc tính Số Tiền Bồi Thường là:
Entropy(S, STBT) = 3/10*0,918 + 1/10*0 + 1/10*0 + 1/10*0 + 4/10*0,811 = 0,599 Gain(S, STBT) = Entropy(S) – Entropy(S, STBT)
= 1,485 – 0,599 = 0,886
Vậy thuộc tính tốt nhất để chia là: số tiền bồi thường
Hình 2.9. Ví dụ - Cây phân lớp với nút chia đầu tiên
Với nút tiếp theo lập lại cho đến khi cây đạt độ sâu tối đa. Bước 3: Lập lại bước 2 để xây dựng bootstrap 2, bootstrap 3.
2.4.2.3. Ước tính độ chính xác của mô hình
Ước tính độ chính xác của mô hình bằng cách sử dụng k-fold crops validation với k=10.
Tập dữ liệu ban đầu được chia ngẫu nhiên thành 10 tập con (fold) có kích thước xấp xỉ nhau S1, S2, …, S10. Quá trình học và test được thực hiện 10 lần. Tại lần lặp thứ 10, S10 là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu đào tạo gọi là R10
Độ chính xác là toàn bộ số phân lớp đúng từ 10 lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu.
Dữ liệu ban đầu ở đây là: 1724 khách hàng.
Số tiền bồi thường
?
Fold 1:
Hình 2.10. Fold 1 với CSDL 1724 bảng ghi của khách hàng
Fold 2:
Hình 2.11. Fold 2 với CSDL 1724 bảng ghi của khách hàng
Fold 10:
Độ chính xác của mô hình = trung bình độ chính xác của 10 fold hoặc độ chính xác của mô hình = tổng dự đoán chính xác của 10 fold / tổng số mẫu của dữ liệu ban đầu.
+ Đối với phương pháp Random Forest bằng Weka.
Hình 2.13. Thông số của Random Forest
MaxDepth: Cho thấy chiều sâu tối đa cây, nếu = 0 là không giới hạn. numFeatures: Thuộc tính được sử dụng trong khi lựa chọn ngẫu nhiên. numTrees: Số lượng cây được tạo ra.
Bảng 2.11. Sử dụng phần mềm Weka so sánh độ chính xác giữa thuật toán C4.5 và Random Forest Dữ liệu Số lượng bảng ghi Thuộc tính Ramdon Forest C4.5 Trường hợp Phân loại chính xác Trường hợp Phân loại không chính xác Trường hợp Phân loại chính xác Trường hợp Phân loại không chính xác Bảo hiểm tàu cá 1724 8 97.66% 2.33% 96.92% 3.07% 2.4.3. So sánh C4.5 và Random Forest
Thực hiện so sánh và đánh giá trên phần mềm Weka với phương pháp đánh giá độ chính xác bằng 10-fold croos validation
Kết quả trên cho thấy phần lớn phương pháp sử dụng thuật toán Random Forest cho kết quả chính xác cao hơn. Đặc biệt với bộ dữ liệu càng lớn thì Random Forest cho kết quả chính xác tốt hơn, còn đối với phương pháp sử dụng thuật toán C4.5 (J-48 được cắt tỉa) thì lại tiện dụng với bộ dữ liệu nhỏ.
KẾT LUẬN CHƯƠNG 2
Trong chương này, tôi đã phân tích hiện trang và các yếu tố ảnh hưởng đến rủi ro trong bảo hiểm tàu cá.
So sánh kết quả phân lớp giữa 2 thuật toán C4.5 và Random Forest. Phân tích đã trình bày chi tiết quá trình tính toán, chọn lựa các thuộc tính nhằm xây dựng một cây quyết định trực quan có khả năng phân loại đúng đắn tập dữ liệu cho trước để xây dựng hệ thống hỗ trợ đánh giá rủi ro trong bảo hiểm tàu cá.
Trong chương tiếp đến, tôi sẽ trình bày phương pháp xây dựng, cài đặt và sau đó tiến hành kiểm thử ứng dụng.
CHƯƠNG 3
XÂY DỰNG VÀ THỬ NGHIỆM ỨNG DỤNG 3.1. Chức năng hệ thống
3.1.1. Phân tích yêu cầu
a. Biểu đồ ca sử dụng
Dựa vào các yêu cầu chức năng về hệ thống, ta có biểu đồ ca sử dụng tổng quát. Biểu đồ ca sử dụng tổng quát gồm 02 tác nhân là cán bộ thẩm định sử dụng chương trình, quản trị viên hệ thống và 03 ca sử dụng chính.
Huấn luyện Dữ Liệu
Đăng nhập
Cán bộ thẩm định Administrator
Tư vấn
Hình 3.1. Biểu đồ ca sử dụng tổng quát
+ Ca sử dụng Huấn luyện dữ liệu có thể phân rã thành 03 ca sử dụng nhỏ hơn là:
Hình 3.2. Phân rã ca sử dụng huấn luyện dữ liệu
Ca sử dụng Tải dữ liệu huấn luyện: Dùng để tải dữ liệu của thông tin khách hàng cho quá trình huấn luyện, đầu vào dữ liệu có thể là file CSV được thống nhất định dạng.
Ca sử dụng Huấn luyện: Sử dụng cả hai thuật toán C4.5 và Random Forest để xây dựng cây quyết định và sinh ra tập luật.
Ca sử dụng Lưu cây và tập luật: Lưu lại cây và tập luật sau khi được sinh, tập luật này dùng để đánh giá và phân loại cho tập dữ liệu mới.
Ca sử dụng Nhập dữ liệu khách hàng: Dữ liệu khách hàng có thể được nhập riêng lẽ hoặc được tải từ các file CSV lưu ở ngoài.
Ca sử dụng Áp dụng luật: Sử dụng tập luật đã lưu dể đánh giá, tư vấn. Ca sử dụng uất kết quả: xuất thông tin kết quả đánh giá.
Tư vấn Nhập dữ liệu khách hàng Áp dụng luật uất kết quả <<extend>> <<extend>> <<extend>> Hình 3.3. Phân rã ca sử dụng Tư vấn b. Biểu đồ hoạt động
Biểu đồ hoạt động huấn luyện dữ liệu: Hoạt động này tải thông tin dữ liệu huấn luyện, xây dựng cây quyết định và sinh tập luật.
Biểu đồ hoạt động phân loại dữ liệu: Hoạt động này tải thông tin dữ liệu dùng phân loại, sau đó áp dụng tập luật để xuất ra kết quả phân loại.
c. Biểu đồ tuần tự
Ta có các biểu đồ tuần tự sau:
- Biểu đồ tuần tự cho ca sử dụng đăng nhập. - Biểu đồ tuần tự cho ca dụng huấn luyện dữ liệu. - Biểu đồ tuần tự cho ca dụng tư vấn.
Cán bộ thẩm dịnh Form đăng nhập Điều khiển đăng nhập
Nhập ID, mật khẩu
Kiểm tra thông tin ác nhận đăng nhập Thông báo đăng nhập
Hình 3.5. Biểu đồ tuần tự cho hoạt động đăng nhập
Cán bộ thẩm dịnh Form huấn luyện Điều khiển huấn luyện
Chọn chức năng tải dử liệu
Gửi yêu cầu tải dữ liệu Trả về bảng dữ liệu Chọn chức năng
huấn luyện dư liệu
Trả về cây quyết đinh tập luật Gửi yêu cầu huấn luyện dư liệu