Tập đoàn STC là một tổ hợp giáo dục có chiến lược toàn cầu chuyên đào tạo, nghiên cứu, hỗ trợ, tư vấn và cung cấp một số dịch vụ khác cho ngành vận tải biển, cảng, dây chuyền vận tải và hậu cần, cũng như cho các khu vực hoá dầu gần cảng. Tập đoàn STC cung cấp tất cả các dịch vụ mới nhất dưới dạng “ một đầu mối”, đảm bảo cung cấp chất lượng cao nhất dựa trên kiến thức vững chắc về hoạt động vận tải biển hàng ngày.
Tập đoàn STC đã thành lập các trung tâm kiến thức tại Nam Phi, Oman, Hàn Quốc, Philipin và Việt Nam. Các trung tâm này cung cấp chương trình giáo dục và đào tạo giống như chương trình tại Rotterdam.
STC đã có mặt tại Việt Nam từ những năm 1990 thông qua việc tổ chức các khoá học về hàng hải và hậu cần, các khoá nghiên cứu cho người Việt Nam tại Rotterdam, cung cấp thiết bị mô phỏng, nâng cấp và tổ chức các khoá học vận tải và hậu cần cho một số học viện hàng hải và các học viện khác tại Việt Nam.
Do nhu cầu về nguồn nhân lực Việt Nam cho ngành công nghiệp vận tải và hàng hải ngày càng lớn, cũng như nhu cầu phải có các trường đào tạo chất lượng cao, STC đã thành lập văn phòng chi nhánh tại Hà Nội vào tháng 7 năm 2004 – có tên gọi là STC Việt Nam
Ngoài công tác hành chính trợ giúp tập đoàn STC hoạt động tại Việt Nam. STC Việt Nam còn tham gia quá trình thiết kế các dạng bài tập thực hành trợ giúp giáo viên, sinh viên ngành hàng hải có cái nhìn trực quan, thiết thực nhất trong quá trình học tập.
Không dừng lại ở đó, STC Việt Nam cũng là nơi cung cấp các dịch vụ mua bán giao nhận vận tải. Trong thời kỳ kinh tế hội nhập ngày nay, việc phát triển dịch vụ mua bán giao nhận vận tải(Logistic) là công việc không thể thiếu nhằm thúc đẩy sự phát triển kinh tế của doanh nghiệp nói riêng và đất nước nói chung.
Như vậy, STC Việt Nam vừa kết hợp được công việc kinh doanh trong ngành vận tải hàng hóa, vừa sử dụng nguồn dữ liệu đó để đưa vào hệ thống mô phỏng trợ giúp sinh viện các ngành kinh tế vận tải có cái nhìn thiết thực, thực tế trong quá trình học tập.
CHƢƠNG 3 - ỨNG DỤNG, THỬ NGHIỆM KHAI PHÁ DỮ LIỆU TÍCH HỢP HỆ THỐNG CƠ SỞ DỮ LIỆU HỢP ĐỒNG GIAO NHẬN VẬN TẢI 1. Bài toán
1.1. Phát biểu bài toán
Từ các hợp đồng mua bán giao nhận vận tải tại các công ty con trong tập đoàn STC Group. Các thông tin sung quanh quá trình giao nhận vận tải được lưu trữ vào hệ thống cơ sở dữ liệu của STC Việt nam. Từ đó, STC Việt nam dựa vào nguồn cơ sở dữ liệu đã có và hệ thống phần mềm sẽ đưa ra, thiết kế các bài thực hành, bài giảng trợ giúp Giáo viên, sinh viên ngành Kinh tế vận tải có được cái nhìn tổng quát về quá trình giao nhận vận tải cũng như các công việc cần làm của các đối tượng tham gia trong quá trình vận tải. Để trợ giúp việc đánh giá nhìn nhận từ góc độ của các Công ty hoạt động trong quá trình mua bán vận chuyển hàng hóa trong tập đoàn STC Group. Dựa vào các loại thông tin sung quanh hợp đồng giao nhận vận tải như: Thông tin về đơn hàng, chủng loại hàng hóa, khách hàng tham gia trong hợp đồng, các loại điều khoản áp dụng trong quá trình giao nhận...
Tác giả sử dụng các kỹ thuật khai phá dữ liệu đối với CSDL về các hợp đồng giao nhận vận tải tại STC Việt nam nhằm xác định, phát hiện ra các xu hướng lựa chọn các điều khoản áp dụng trong hợp đồng mua bán giao nhận vận tải theo từng khu vực địa lý cụ thể. Giúp Công ty đưa ra, đề xuất các điều khoản áp dụng trong quá trình vận tải phù hợp với từng hợp đồng nhằm tạo ra lợi nhuận cao, chi phí giảm cũng như giảm thiểu rủi ro thiệt hại trong quá trình giao nhận vẫn tải.
Việc tổng hợp, xác định, phát hiện ra các su hướng chung được thực hiện từng năm.
1.2. Đặc tả dữ liệu
Từ các mẫu các hợp đồng giao nhận vận tải trên(xem phần phụ lục) ta có các nhận xét, đặc tả dữ liệu sau:
Một đặc điểm mang tính thực tế là các items không đơn thuần chỉ được xét là “có” hay “không” trong khi đếm support mà mỗi item được kèm theo một trọng số mô tả mức quan trọng của item đó. Các item ta vẫn xem xét thường ở dạng Boolean. Chúng mang giá trị là “1” nếu item có mặt trong giao dịch và “0” nếu ngược lại. Các bài toán khai phá như trên người ta vẫn gọi là khai phá luật kết hợp kiểu Boolean (Mining Boolean Association Rules).
Như đã nói ở trên, trong thực tế các bảng số liệu thường xuất hiện các thuộc tính không đơn giản. Các thuộc tính có thể ở dạng số (quantitative) như số lượng hợp đồng
61
vận tải mặt hàng táo, áp dụng điều khoản giao nhận CIF với hình thức vận tải đường biển tại khu vực Đông Nam Á theo từng quí, từng năm.
Các bài toán khai phá luật kết hợp trên các thuộc tính như vậy gọi là khai phá luật kết hợp định lượng (Mining Quantitative Association Rules) [10]. Cũng như các bài toán khai phá luật kết hợp trước đây, mục tiêu của bài toán khai phá luật kết hợp định lượng cũng là kết xuất các luật kết hợp trên các ngưỡng support tối thiểu và các ngưỡng confidence tối thiểu.
Với các thuộc tính định lượng thì cần phải có sự phân đoạn cho các thuộc tính này vì suy cho cùng thì khi tính support cũng cần phải kiểm tra lại nó tồn tại hay không tồn tại trong giao dịch. Nói cách khác là cần phải thực hiện ánh xạ các thuộc tính định lượng sang thuộc tính Boolean. Nếu các thuộc tính phân loại hoặc số lượng chỉ có vài giá trị riêng biệt (ví dụ như số lượng giao dịch mua bán vận chuyển hàng hóa của một khách hàng nào đó trong 1 khu vực nào đó) thì có thể thực hiện ánh xạ này đơn giản như sau: Mỗi thuộc tính trong bảng dữ liệu có p giá trị riêng biệt sẽ được lập thành p thuộc tính boolean mới. Mỗi thuộc tính boolean này tương ứng với một cặp (attribute, value). Nó có giá trị “1” nếu value có mặt trong dữ liệu gốc và có giá trị “0” nếu ngược lại. Nếu số giá trị riêng biệt của một số thuộc tính khá lớn thì người ta thực hiện phân đoạn thuộc tính thành các khoảng và ánh xạ mỗi cặp (attribute, value) thành một thuộc tính. Sau khi ánh xạ, có thể thực hiện khai phá luật kết hợp trên cơ sở dữ liệu mới bằng thuật toán khai phá luật kết hợp kiểu boolean.
Tổng quát, ta có thể đưa ra một số phương pháp rời rạc hoá như sau:
Trường hợp 1 : Nếu A là thuộc tính số rời rạc hoặc là thuộc tính hạng mục có miền giá trị hữu hạn dạng {V1, V2,. . . . , Vk} và k đủ nhỏ (<100) thì ta biến đổi thuộc tính này thành k thuộc tính nhị phân A_V1, A_V2,. . . . , A_Vk. Giá trị của bản ghi tại trường A_Vi = True (hoặc 1) Nếu giá trị của bản ghi đó tại thuộc tính A ban đầu bằng vi, Ngược lại Giá trị của A_Vi = False (hoặc 0).
Trường hợp 2 : Nếu A là thuộc tính số liên tục hoặc A là thuộc tính số rời rạc hay thuộc tính hạng mục có miền giá trị hữu hạn dạng {V1, V2,. . . . , Vp} (p lớn) thì ta sẽ ánh xạ thành q thuộc tính nhị phân <A:start1. . end1>, <A : start2. . end2>, . . . . , <A : startq. . endq>. Giá trị của bản ghi tại trường <A : starti. . endi> bằng True (hoặc 1) nếu giá trị của bản ghi đó tại thuộc tính A ban đầu nằm trong khoảng [starti. . endi] , ngược lại giá trị của <A:starti. . endi> = False (hoặc 0).
STT Quốc gia
Số lượng hợp
đồng FAS FOP CFR CIF
Điều khoản khác Tổng số Gia tăng Tổng số Gia tăng Tổng số Gia tăng Tổng số Gia tăng Tổng số Gia tăng Tổng số Gia tăng 1 The Netherlands 156 40 27 2 45 21 10 1 46 14 16 2 2 Belgium 150 32 20 6 40 12 15 2 35 7 22 5 3 France 145 44 20 8 50 24 10 0 25 3 25 9 4 Germany 15 0 0 0 10 0 0 0 5 0 0 0 5 U.S.A. 60 5 10 1 25 3 0 0 20 1 5 0 6 South Africa 90 16 16 0 34 7 19 3 15 4 6 2 7 Brazil 211 69 33 4 55 15 15 4 65 21 24 15 8 China 171 36 22 3 15 6 10 2 80 13 14 12 9 Australia 202 50 29 9 43 17 30 4 47 15 30 5 …
trình giao nhận trong năm 2010 ta có thể phân chia như sau:
Thuộc tính Tổng số lượng hợp đồng gia tăng là thuộc tính có nhiều giá trị, nên ta có thể phân chia thành các miền, khoảng giá trị như từ 0..25, từ 26 ..50, >=51,... Khí đó, trong tập dữ liệu mới có các thuộc tính (Tổng gia tăng 0..25, Tổng gia tăng 26..50, …) tương ứng với các thuộc tính Tổng gia tăng. Các thuộc tính khác được phân chia tương tự nhưng các khoảng giá trị có thể khác nhau tùy vào số lượng của các thuộc tính đó cũng như khoảng giá trị người phân chia qui định.
Như vậy, với cách ánh xạ trên, từ CSDL gốc ban đầu, ta có CSDL dạng boolean sau đây: STT Quốc gia Số lượng toàn bộ hợp đồng Tổng số Gia tăng(0..25) Gia tăng(26..50) Gia tăng(51..75) Gia tăng(75 ..) 1 The Netherlands 156 0 1 0 0 2 Belgium 150 0 1 0 0 3 France 145 0 1 0 0 4 Germany 15 1 0 0 0 5 U.S.A. 60 1 0 0 0 6 South Africa 90 1 0 0 0 7 Brazil 211 0 0 1 0 8 China 171 0 1 0 0 9 Australia 202 0 1 0 0 …
Bảng 4: Dữ liệu chuyển đổi từ dạng số sang dạng Boolean
Việc ánh xạ như trên có thể xảy ra vấn đề sau:
“minsup”: Nếu số lượng khoảng cho thuộc tính số lượng (hoặc số các giá trị riêng cho thuộc tính phân loại) là lớn thì support cho các khoảng có thể là nhỏ. Do đó, việc chia một thuộc tính ra quá nhiều khoảng có thể làm cho luật chứa nó không đạt được support tối thiểu.
“minconf”: Một số thông tin có thể bị mất do việc chia khoảng. Một số luật có thể có minconf chỉ khi một item trong chúng có giá trị đơn hoặc một khoảng rất nhỏ,
do đó thông tin có thể bị mất. Sự mất mát thông tin càng tăng khi kích thước khoảng chia càng lớn.
Như vậy, nếu kích thước khoảng là quá lớn (số khoảng nhỏ) thì có nguy cơ một số luật sẽ không có confidence tối thiểu, còn nếu kích thước các khoảng quá nhỏ (số khoảng lớn) thì một số luật lại có nguy cơ không có support tối thiểu.
Để giải quyết hai vấn đề trên, người ta chú ý đến tất cả các vùng liên tục trên thuộc tính số lượng hoặc trên các khoảng đã phân đoạn. Vấn đề “minsup”sẽ được khắc phục bằng cách liên hợp các khoảng gần kề hoặc các giá trị gần kề. Vấn đề “minconf” sẽ được khắc phục bằng cách tăng số lượng khoảng mà không ảnh hưởng đến vấn đề “minsup”.
Người ta có thể thực hiện một phương pháp đơn giản để thực hiện việc chuyển các thuộc tính số lượng và phân loại về cùng một dạng với nhau. Với thuộc tính phân loại, các giá trị của nó sẽ được ánh xạ vào tập các số nguyên liên tiếp. Với các thuộc tính số lượng không cần khoảng chia (tức là có ít giá trị) thì các giá trị sẽ được ánh xạ vào tập các số nguyên liên tiếp theo thứ tự của các giá trị đó. Còn đối với các thuộc tính số lượng được phân khoảng, thì các khoảng sẽ được ánh xạ vào tập số nguyên liên tiếp, trong đó thứ tự các khoảng sẽ được bảo tồn. Các ánh xạ này sẽ làm cho mỗi bản ghi trong CSDL trở thành một tập các cặp (Attribute, Value). Bài toán khai phá luật kết hợp lúc này có thể thực hiện qua các bước sau:
Xác định số lượng mỗi phần chia cho mỗi thuộc tính số lượng.
Với các thuộc tính phân loại, ánh xạ các thuộc tính vào tập số nguyên liên tiếp. Với các thuộc tính số lượng không cần sự phân khoảng, ánh xạ các giá trị của chúng vào tập các số nguyên liên tiếp theo thứ tự giá trị thuộc tính. Với các thuộc tính số lượng đã được phân khoảng, ánh xạ các khoảng được chia vào tập các số nguyên liên tiếp và bảo tồn thứ tự các khoảng. Bằng cách này, thuật toán chỉ xem các giá trị hoặc các vùng giá trị như là các thuộc tính định lượng.
Tìm support cho mỗi giá trị của các thuộc tính phân loại lẫn thuộc tính số lượng, tiếp theo tìm tất cả các itemset mà support của nó lớn hơn support tối thiểu.
Sử dụng các tập tìm được để sinh ra các luật kết hợp. Xác định luật đáng quan tâm và kết xuất chúng.
Như vậy, khi xét trên CSDL là thực tế gia tăng các các thông số trong các hợp đồng mua bán vận chuyển hàng hóa điều khoản áp dụng theo từng vùng miền địa lý, ta có thể thực hiện phân chia các thuộc tính trong bảng thành các khoảng và được ký hiệu như sau:
65 Số lượng hợp đồng: Cột số 3 Tổng số: [0, 100] [101, 200] [201, …] Kí hiệu: A B C Cột 4 Gia tăng: [0, 25] [26, 50] [51, …] Kí hiệu: a b c FAS: Cột 5 Tổng số: [0,15] [16, 30] [31, ...] Kí hiệu: D E F Cột 6 Gia tăng: [0, 3] [4, 7] [8, ...] Kí hiệu d e f FOB: Cột 7 Tổng số: [0,2 0] [21, 40] [41, ...] Kí hiệu: G H I Cột 8 Gia tăng: [0, 10] [11, 20] [21, ....] Kí hiệu: g h i CFR: Cột 9 Tổng số: [0,10] [11,20] [21, ...] Kí hiệu: J K L Cột 10 Gia tăng: [0, 2] [3, 5] [6, ....] Kí hiệu: j k l CIF: Cột 11 Tổng số: [0,30] [31,60] [61, ...] Kí hiệu: M N O Cột 12 Gia tăng: [0, 10] [11, 20] [21, ....] Kí hiệu: m n o Các điều khoản áp dụng khác: Cột 13 Tổng số: [0,10] [11, 20] [21, ...] Kí hiệu: P Q R Cột 14 Gia tăng: [0, 5] [6, 10] [11, ...] Kí hiệu: p q r
Từ việc phân tích như trên, ta có sơ đồ quan hệ để lưu trữ dữ liệu của bài toán như sau:
67
Chương trình chạy trên một phần bộ dữ liệu tại Công ty STC Viêt nam. Kết quả nhận được là (kết quả này tùy thuộc vào minsupp và minconf, dưới đây là kết quả nhận được với minsupp =0.4, minconf =0.8 ):
Tập phổ biến Supp CFR_Giatang[0.. 2] 0.6668 CFR_Giatang[6 .. ] 0.5556 Tongsohopdong_Giatang[26 .. 50] 0.5556 FAS_Giatang[0 .. 3] 0.5556 CIF_Giatang[0 .. 10] 0.5556 Dieukhoankhac_Giatang[0 .. 10] 0.5556 Tongsohopdong_Tongso[101 ..200] 0.4444 FAS_Tongso[31 .. ] 0.4444 CFR_Tongso[1 .. 30] 0.4444 FOB_Giatang[0 .. 10] 0.4444
CFR_Giatang[0 .. 2] and Tongsohopdong_Giatang[26 .. 50] 0.4444
CFR_Giatang[0 .. 2] and FAS_Giatang[0 .. 3] 0.4444
CFR_Giatang[0 .. 2] and CIF_Giatang[0 .. 10] 0.4444
CFR_Giatang[0 .. 2] and Dieukhoankhac_Giatang[0 .. 10] 0.4444 CFR_Giatang[0 .. 2] and Tongsohopdong_Tongso[101 .. 200] 0.4444
CFR_Giatang[0 .. 2] and CFR_Tongso[0 .. 10] 0.4444
CFR_Giatang[6 ..] and Tongsohopdong_Giatang[26 .. 50] 0.4444 Tongsohopdong_Giatang[26 .. 50] and Tongsohopdong_Tongso[101 .. 200] 0.4444
FAS_Giatang[0 .. 3] and CFR_Tongso[0 .. 10] 0.4444
CIF_Giatang[0 .. 10] and CIF_Tongso[0 .. 30] 0.4444
CFR_Giatang[0 .. 2] and Tongsohopdong_Giatang[26 .. 50] and
Luật kết hợp Supp Conf Tongsohopdong_Tongso[101..200] -> CFR_Giatang[0..2] 0.4444 1 CFR_Tongso[0..10] -> CFR_Giatang[0..2] 0.4444 1 Tongsohopdong_Tongso[101..200] -> Tongsohopdong_Giatang[26..50] 0.4444 1 CFR_Tongso[0..10]->FAS_Giatang[0..3] 0.4444 1 CIF_Tongso[0..30]->CIF_Giatang[0..10] 0.4444 1
CIF_Tongso[0..30] and Tongsohopdong_Giatang[26..50]->
Tongsohopdong_Tongso[101..200] 0.4444 1
Tongsohopdong_Tongso[101..200] -> CFR_Giatang[0..2] and
Tongsohopdong_Giatang[26..50] 0.4444 1 Tongsohopdong_Tongso[101..200] and Tongsohopdong_Giatang[26..50] -> CFR_Giatang[0..2] 0.4444 1 Tongsohopdong_Giatang[26..50]->CFR_Giatang[0..2] 0.4444 0.8 FAS_Giatang[0..3]->CFR_Giatang[0..2] 0.4444 0.8 CIF_Giatang[0..10]->CFR_Giatang[0..2] 0.4444 0.8 Dieukhoankhac_Giatang[0..10]->CFR_Giatang[0..2] 0.4444 0.8 CFR_Giatang[6…]->Tongsohopdong_Giatang[26..50] 0.4444 0.8 Tongsohopdong_Giatang[26..50]->CFR_Giatang[6…] 0.4444 0.8 Tongsohopdong_Giatang[26..50]->Tongsohopdong_Soluong[101..200] 0.4444 0.8 FAS_Giatang[0..3]->CFR_Tongso[0..10] 0.4444 0.8 CIF_Giatang[0..10]->CIF_Tongso[0..30] 0.4444 0.8
Dựa vào bảng kết quả trên ta nhận thấy rằng:
- Nhìn chung ở hầu hết các quốc gia số lượng hợp đồng ký được đồng đều trong năm trong khoảng từ 100 đến 200 hợp đồng và số lượng gia tăng so với năm trước đó là không nhiều chỉ trong khoảng từ 25 đến 50 hợp đồng.
- Điều khoản áp dụng trong giao nhận vận CFR gia tăng không đáng kể ở hầu hết các quốc gia tuy rằng đây chủ yếu là các quốc gia có thế mạnh về hàng hải cũng như kinh doanh dịch vụ giao nhận vận tải.
- Các quốc gia có xu hương sử dụng điều khoản CIF nhiều hơn tuy rằng số lượng hợp đồng sử dụng CIF không quá nhiều nhưng nó lại tăng đáng kể so với năm
69
trước đó cụ thể mặc dù tổng số hợp đồng sử dụng điều khoản CIF chỉ dưới 30 hợp đồng nhưng mức tăng so với năm trước đó cũng trong khoảng gần 30% số hợp đồng.
- Một số quốc gia có xu hướng sử dụng điều khoản CIF trong việc ký kết hợp đồng tăng lên như Brazil, Belgium, Nam phi.
1.3. Minh họa chƣơng trình
Chương trình được tác giả phát triển dựa trên ngôn ngữ lập trình VB.Net và sử dụng hệ quản trị cơ sở dữ liệu SQL Server. Có thể chạy được trên hầu hết các cấu hình máy tính