1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VÀ ỨNG DỤNG LÝ THUYẾT TẬP THÔ TRONG KHAI THÁC DỮ LIỆU GIAO THÔNG VẬN TẢI

26 879 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 343,42 KB

Nội dung

Xác định bài toánThu thập và tiền xử lý dữ liệu KHAI PHÁ DỮ LIỆU Chiết xuất tri thức Phát biểu kết quả và đánh giá Chiết xuất tri thức Sử dụng tri thức đã phát hiện Chiết xuất tri thức

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

-BÀI THU HOẠCH MÔN CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG

TÌM HIỂU VÀ ỨNG DỤNG LÝ THUYẾT TẬP THÔ

TRONG KHAI THÁC DỮ LIỆU GIAO THÔNG VẬN TẢI

GIẢNG VIÊN HƯỚNG DẪN

Trang 2

MỤC LỤC

Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2

1.1 Khai phá dữ liệu 2

1.2 Các bước của quá trình khai phá dữ liệu 2

1.2.1 Xác định bài toán 2

1.2.2 Thu thập và tiền xử lý dữ liệu 2

1.2.3 Khai phá dữ liệu, chiết xuất tri thức 5

1.2.4 Phát biểu kết quả và đánh giá tri thức 6

1.2.5 Sử dụng tri thức đã phát hiện 6

1.3 Luật kết hợp 6

1.3.1 Khái niệm 6

1.3.2 Một số vấn đề liên quan đến luật kết hợp 6

1.3.2.1 Độ hỗ trợ(Support) 7

1.3.2.2 Độ tin cậy(Confidence) 7

1.3.2.3 Ví dụ về độ hỗ trợ và độ tin cậy 7

Chương 2 TÌM HIỂU LÝ THUYẾT VỀ TẬP THÔ 8

2.1 Nội dung 8

2.2 Bảng quyết định 9

2.3 Quan hệ tương đương 9

2.4 Quan hệ không tương đương 10

2.5 Luật quyết định 11

Chương 3 ỨNG DỤNG KHAI THÁC DỮ LIỆU GIAO THÔNG VẬN TẢI 14

3.1 Thông tin về dự án quản lý hổ sơ ISO tại Sở GTVT TPHCM 14

3.2 Mô hình cơ sở dữ liệu quan hệ(trích từ hệ thống) 14

3.3 Các bước khai phá dữ liệu 17

3.3.1 Thu thập và tiền xử lý dữ liệu 17

3.3.2 Ứng dụng lý thuyết tập thô, cài đặt và thử nghiệm 17

3.3.3 Một số source code minh họa 21

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỀN 24

THÔNG TIN LIÊN HỆ HỖ TRỢ DỮ LIỆU TEST 24

TÀI LIỆU THAM KHẢO 24

Trang 4

Xác định bài toán

Thu thập và tiền xử lý dữ liệu

KHAI PHÁ DỮ LIỆU

Chiết xuất tri thức Phát biểu kết quả và đánh giá

Chiết xuất tri thức

Sử dụng tri thức đã phát hiện Chiết xuất tri thức

Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1.1 Khai phá dữ liệu

Khai phá dữ liệu, phát hiện tri thức(data mining) trong cơ sở dữ liệu là quá trình tìmkiếm và rút trích những thông tin tiềm ẩn có giá trị và hữu ích từ các tập cơ sở dữ liệulớn Việc rút trích các tri thức này sẽ giúp cho các doanh nghiệp, công ty…, có thểđánh giá, dự báo được một số kết quả có thể xảy ra trong tương lai, từ đó có thể đưa ramột số giải pháp, chính sách… nhằm nâng cao hiệu quả kinh doanh cũng như công tác

tổ chức, quản lý của doanh nghiệp và công ty…

1.2 Các bước của quá trình khai phá dữ liệu

Qui trình khai phá tri thức bao gồm các bước như sau:

Hình 1.1 Quá trình phát hiện tri thức từ cơ sở dữ liệu

1.2.1 Xác định bài toán

Quá trình xác định lĩnh vực cần khai phá tri thức như: kinh doanh, tài chính, ngânhàng, nhân sự, …Mỗi lĩnh vực khác nhau sẽ có các tri thức và các kỹ thuật khaiphá khác nhau

1.2.2 Thu thập và tiền xử lý dữ liệu

Đây là một trong những bước quan trọng và tốn nhiều thời gian của quá trìnhkhai phá tri thức, các dữ liệu thu được thường chứa rất nhiều thông tin, thuộc tínhnhưng lại không đầy đủ, không thống nhất, có nhiều lỗi và các giá trị đặt biệt

Trang 5

Ví dụ: tuổi nhân viên= ”0”, lương= -2.000.000

Dữ liệu có tính chất mâu thuẩn với nhau: VD Tuổi =50, ngày sinh=”12/09/2000’Giai đoạn này bao gồm các bước như sau:

Knowledge

Pattern Discovery Transforme

d Data

Cleansed Preprocessed Preparated Data

Target Data

Gom DL

Mã hoá DL

Chọn lọc DL

Làm giàu DL Làm sạch DL

Đánh giá & trình diễn

Internet,

Quá trình xử lý dữ liệu thô(gốc) nhằm cải thiện chất lượng dữ liệu, dữ liệu thô(có cấutrúc, bán cấu trúc, phi cấu trúc) thường được đưa vào các hệ thống xử lý để tạo thànhcác dữ liệu chất lượng(tính chính xác, tính hiện hành, tính toàn vẹn và tính nhấtquán)

- Tính chính xác(accuracy): giá trị được ghi nhận đúng với giá trị thực

- Tính hiện hành(currency/timeliness): giá trị được ghi nhận không bị lỗi thời

- Tính toàn vẹn(completeness): tất cả các giá trị dành cho 1 biến/ thuộc tính điềuđược ghi nhận

- Tính nhất quán(consistency): tất cả giá trị dữ liệu điều được biểu diễn nhưnhau trong tất cả các trường hợp

Các kỹ thuật tiền xử lý dữ liệu:

- Làm sạch dữ liệu (data cleaning/cleansing): làm sạch dữ liệu là vấn đề bậcnhất của nhà kho dữ liệu, quá trình làm sạch bao gồm các bước như sau:

o Điền các giá trị còn thiếu tự động: việc điền các giá trị bằng tay là vô vị

và không thể thực hiện, vì vậy các giá trị còn thiếu có thể được điền 1cách tự động, giá trị thiếu có thể thay bằng :

Trang 6

 Hằng số chung, ví dụ: “không biết”, 0

Bayesian, cây quyết định hoặc thuật giải

o Các phương pháp cơ bản khử nhiễu:

giỏ cùng độ sâu, khử nhiễu bằng giá trị trung bình, trung tuyến,biên giỏ…

người(computer/human inspection): Phát hiện giá trị nghi ngờ vàkiểm tra bởi con người

- Chọn lọc, tích hợp dữ liệu (data integration): trộn dữ liệu (merge data) từnhiều nguồn, tập tin khác nhau vào một kho dữ liệu, chọn lọc những dữ liệuthật sự cần thiết cho tiến trình khai thác dữ liệu Quá trình chọn lọc bao gồmcác bước sau:

o Sơ đồ tập hợp dữ liệu:

tương xứng, ví dụ: US=USA, MSNV=MaNhanVien,…

o Loại bỏ dữ liệu dư thừa, trùng lắp:

 Một thuộc tính là thừa nếu có thể suy ra từ các thuộc tính khác

R=0: X và Y không tương quanR>0: tương quan thuận XY

R<0: tương quan nghịch XY

Trang 7

- Thu giảm dữ liệu (data reduction): thu giảm kích thước dữ liệu (nghĩa là giảm

số phần tử) bằng kết hợp dữ liệu (data aggregation), loại bỏ các đặc điểm dưthừa (redundant features) (nghĩa là giảm số chiều/thuộc tính dữ liệu), gom cụm

ngược lại khi dữ liệu rãi rác

tập dữ liệu lớn

- Biến đổi dữ liệu (data transformation): mã hoá dữ liệu (data normalization)

o Rời rạc hóa: biến đổi miền giá trị thuộc tính(liên tục) bằng cách chiamiền giá trị thành từng khoảng Lưu nhãn của khoảng thay cho các giátrị thực

o Phân cấp các khái niệm: tập hợp vả thay thế các khái niệm cấp thấpbằng khái niệm cấp cao hơn

1.2.3 Khai phá dữ liệu, chiết xuất tri thức

Giai đoạn khai thác dữ liệu được bắt đầu sau khi dữ liệu đã được thu thập và tiếnhành xử lý Trong giai đoạn này, công việc chủ yếu là xác định được bài toán

Trang 8

khai phá dữ liệu, tiến hành lựa chọn các phương pháp khai thác phù hợp với dữliệu có được và tách ra các tri thức cần thiết.

1.2.4 Phát biểu kết quả và đánh giá tri thức

Do nhiều phương pháp khai thác có thể được áp dụng nên các kết quả có mức độ tốt,xấu khác nhau Việc đánh giá các kết quả thu được là cần thiêt, Các tri thức pháthiện từ cơ sở dữ liệu cần được tổng hợp dưới dạng các báo cáo phục vụ cho các mụcđích hỗ trợ các quyết định khác nhau

1.2.5 Sử dụng tri thức đã phát hiện

Củng cố, tinh chế các tri thức đã được phát hiện Kết hợp các tri thức thành hệthống Giải quyết các xung đột tiềm tàng trong tri thức khai thác được Sau đó trithức được chuẩn bị sẵn sàng cho ứng dụng

Các kết quả của quá trình phát hiện tri thức có thể được đưa vào ứng dụng trongnhững lĩnh vực khác nhau Do các kết quả có thể là các dự báo hoặc các mô tảnên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự độnghoá quá trình này

1.3 Luật kết hợp

1.3.1 Khái niệm

Luật kết hợp là một trong những lĩnh vực quan trọng trong khai phá dữ liệu, làmột trong những kỹ thuật mới và là chủ đề hấp dẫn Khám phá và phát hiện racác luật kết hợp nhằm tìm ra các mối liên quan giữa các thành phần(item) trong

dữ liệu Chẳng hạn như khi phân tích cơ sở dữ liệu giao thông, ta có thể phát hiện

ra một qui luật như: “các xe có số ghế lớn hơn 45 chổ thường chạy tuyến cốđịnh” hay “ các xe chạy tuyến Nha Trang thì chạy tuyến Phan Thiết”…

1.3.2 Một số vấn đề liên quan đến luật kết hợp.

Chúng ta sẽ không quan tâm đến tất cả các kết hợp giữa các item có thể có trong

cơ sở dữ liệu, mà chúng ta chỉ quan tâm đến những luật kết hợp có ý nghĩa và xácthực

Để hạn chế việc phát sinh quá nhiều các luật không có ý nghĩa, người ta đề nghị

sử dụng các thước đo tiêu chuẩn cho 1 luật kết hợp đó là độ hỗ trợ(support) và độtin cậy(confidence) của luật, cả hai độ đo này điều được tính toán từ độ hỗ trợcủa tập items

Trang 9

Các định nghĩa liên quan:

Gọi I = {I1, I2, I3,…In} là tập các items, D = {T1, T2, T3,…Tn} là tập các giao tác

Ta gọi một giao tác T chứa X nếu XÍT với X là tập 1 vài item trong I

Ta có luật kết hợp: X Þ Y, nếu X Ì I , Y Ì I và XÇY = Æ

Trang 10

Chương 2 TÌM HIỂU LÝ THUYẾT VỀ TẬP THÔ

2.1 Nội dung

Lý thuyết tập thô được Zdzislaw Pawlak phát triển vào năm 1980-1992 và được ápdụng trên mô hình cơ sở dữ liệu quan hệ Hiện nay lý thuyết tập thô được nhiều nhà khoahọc nghiên cứu và áp dụng và nhiều lĩnh vực khác nhau như: khai thác dữ liệu, hệ chuyêngia, hệ hỗ trợ ra quyết định, máy học, nhận dạng…

Trong thực tế, dữ liệu lưu trữ thường không đầy đủ, dư thừa hoặc không chính xác,gây ảnh hưởng nhiều đến kết quả khai thác dữ liệu Lý thuyết tập thô được sử dụng chophép loại bỏ những thông tin dư thừa mà vẫn giữ được đầy đủ ý nghĩa của tập dữ liệuđang xét Ý tưởng chính là lựa chọn những thuộc tính quan trọng và cần thiết nhất trong

cơ sở dữ liệu, từ đó phát hiện và rút ra những tập luật có ý nghĩa và đạt hiệu quả cao

V = ÈqÎQ Vq : trong đó Vq là giá trị của q

f:U ´ Q ® V là hàm quyết định hay hàm biểu diễn thông tin, sao cho f(x, q) Î

Vq với mỗi qÎQ , xÎU

Ví dụ về hệ thống thông tin:

Cho tập dữ liệu về MEDICAL như sau:

Trang 11

0000111011

2.2 Bảng quyết định

Hệ thống thông tin S được biểu diễn như một bảng quyết định nếu Q được tách thành

C và D, CÈD=Q và CÇD=Æ

C là tập điều kiện và D là tập quyết định

Ví dụ xét tập dữ liệu về MEDICAL như sau:

Đối tượn

00011112

LHHLLHHL

00001110

U = {x 1 , x 2 , , x 10 }

Q = {q 1 , q 2 , q 3 } = {c 1 , c 2 , d}

Vc 1 ={0,1,2}

Vc 2 ={L,H}

V d = {0,1}

f(x 1 ,c 1 ) = 0

Trang 12

22

LH

11

2.3 Quan hệ tương đương

Ta có các quan hệ tương đương như sau:

2.4 Quan hệ không tương đương

Trang 13

Tập quyết định D* xác định từ tập U: D*={Y1,Y2,…Yl}

Mỗi lớp Yi(i=1,2, l) xác định luật quyết định, luật quyết định thứ i được biểu diễn

DesC( Xi)⇒ DesD( Yj) , XiC¿, YjD¿

Phát biểu dưới dạng logic như sau:

Nếu (tập điều kiện) thì (tập quyết định)

Tập luật quyết định trên các lớp Y j ÎD * với (j=1,2,…,l), ký hiệu:

{ τ ij } = ¿ { Des C ( X i )⇒ Des D ( Y j ):X iY jφ, ¿ } ¿ {}

A={Age, LEMS}

Trang 14

Tập thuộc tính điều kiện A={Động cơ}

Phân vùng U trên quan hệ tương đương IND(A) là:

A * =U/IND(A)={{x 1 },{x 2 , x 3 , x 4 },{x 5 , x 6 , x 7 , x 8 }}

Des A (X 1 )= (Động cơ = propane)

Des A (X 2 )= (Động cơ = diesel)

Trang 15

Des A (X 3 )= (Động cơ = gasoline)

Luật quyết định dựa trên lớp Y 1 với quyết định của chuyên gia là Tốt:

Nếu (Động cơ= propane) thì (d=Tốt)

Nếu (Động cơ= propane) thì (d=Tốt)

Luật quyết định dựa trên lớp Y 2 với quyết định của chuyên gia là Xấu:

Nếu (Động cơ= diesel) thì (d=Xấu)

Nếu (Động cơ= gasoline) thì (d=Xấu)

Nếu Tập thuộc tính quyết định:

Trang 16

L4: Nếu (ĐC=diesel) và (KT=trung) thì (d=Xấu)

L5: Nếu (ĐC=diesel) và (KT=lớn) thì (d=Xấu)

L6: Nếu (ĐC=gasoline) và (KT=nhỏ) thì (d=Xấu)

L7: Nếu (ĐC=gasoline) và (KT=lớn) thì (d=Xấu)

Chương 3 ỨNG DỤNG KHAI THÁC DỮ LIỆU GIAO THÔNG VẬN TẢI

.1 Thông tin về dự án quản lý hổ sơ ISO tại Sở GTVT TPHCM

Nhằm nâng cao hiệu quả công tác quản lý, rút ngắn thời gian giải quyết các hồ

sơ, và minh bạch hơn trong việc xây dựng và giải quyết các thủ tục hành chính,UBND TPHCM đã đầu tư và xây dựng 1 phần mềm dùng chung, và ứng dụngtại các sở ban ngành như: Sở giao thông vận tải, Sở xây dựng, Sở tài nguyên vàmôi trường… Trong đó dự án đã được triển khai tại sở GTVT TPHCM baogồm 2 giai đoạn, giai đoạn 1 từ năm 2008- 2010, giai đoạn 2 từ năm 2011-

2012 Phần mềm tập trung vào việc quản lý các thủ tục hành chính như: vận tảicông nghiệp, giao thông thủy, khai thác hạ tầng, công viên cây xanh, hồ sơ dựán…

Vấn đề đặt ra là hiện nay tại phòng vận tải công nghiệp thuộc sở GTVT, sốlương hồ sơ xin phép về các thủ tục như: thẩm định tuyến, cấp sổ nhật trình,phù hiệu, cấp phép kinh doanh vận tải,…Số lương xe ô tô đăng ký hoạt động

đã lên tới 39285(số lương thống kê tính đến ngày 06/05/2012) Mỗi một xe ô tô

sẽ đăng ký một loại hình kinh doanh như: xe bus, xe taxi, xe hợp đồng, xe chạytuyến cố định, xe du lịch và xe công ten nơ

Yêu cầu đặt ra là các doanh nghiệp vận tải muốn khai thác cơ sở dữ liệu này để

tìm được mối quan hệ giữa các “hiệu xe” ,”số ghế” và “loại hình kinh

doanh” nhằm hỗ trợ và nâng cao hiệu quả kinh doanh của doanh nghiệp.

Ví dụ như hiệu xe “MERCEDES” thì loại hình kinh doanh là xe “du lịch” hay

xe chạy tuyến cố định…

Hiệu xe “TRANSINCO” và có số ghế 45 chổ thì thì loại hình kinh doanh là

“xe bus” hay “xe chạy tuyến cố định”…

Trang 17

3.2 Mô hình cơ sở dữ liệu quan hệ(trích từ hệ thống)

VTDB_DM_HIEUXE: Lưu trữ thông tin về danh mục các loại hiệu xe như:

MERCEDES, TOYOTA, THACO, FORD…

Danh sách các cột

ST

T

)

Thông tin mô tả hiệu xe

hay không?

VTDB_DM_LOAIHINHXE: Lưu thông tin về các loại hình kinh doanh như:

xe bus, xe du lịch, xe taxi, xe chạy tuyến cố định,…

Danh sách các cột

ST

T

Trang 18

3 TenLoaiHinhXe nvarchar(200) Tên loại hình xe

)

Thông tin mô tả loại hình

dụng hay không?

D

loại hình kinh doanh gì?

VTDB_XE: Lưu trữ thông tin về các xe đã đăng ký với sở, các thông tin bao

gồm: biển số xe, hiệu xe, số ghế, năm sản xuất, tên đăng ký, tên đơn vị, loạihình kinh doanh,…

ST

T

VTDB_DM_HIEUXE

h

không?

3.3 Các bước khai phá dữ liệu

3.3.1 Thu thập và tiền xử lý dữ liệu

Trang 19

Hiện tại thông tin lưu trữ danh mục hiệu xe không thống nhất với nhau,

có nhiều tên bị trùng, ta cần chuẩn hóa và loại bỏ các tên bị trùng, ví dụCùng một hiệu xe “Sài Gòn Bus” nhưng có rất nhiều tên gần giống vớinhau như: “SAI GON BUS”, “SÀI GÒN BUS”, “SÀI GÒN-BUS”,

Mã hóa dữ liệu: xét dữ liệu danh mục các xe ô tô ta thấy số chổ của xe

có các giá trị từ 2 đến 80 Giả sử ta chỉ quan tâm đến các xe có số ghếnhư sau:

where SoGhe is not null and SoGhe > 0 and SoGhe <=4

Làm tương tự các giá trị mã hóa còn lại: 2,3,4,5

3.3.2 Ứng dụng lý thuyết tập thô, cài đặt và thử nghiệm

Giao diện trang chính của chương trình demo

Danh mục hiệu xe

Trang 20

Sau khi chuẩn hóa dữ liệu danh mục hiệu xe thì cơ sở dữ liệu có tổng

cộng 177 hiệu xe

Danh mục loại hình xe

Cơ sở dữ liệu có tổng cộng 6 loại hình xe

Danh mục xe

Trang 21

Cơ sở dữ liệu có tổng cộng 39285 xe ô tô các loại

Phân vùng tập thuộc tính quyết định{Loại hình xe}

Có tổng cộng: có tổng cộng 6 phân vùng tương ứng với 6 loại hình xe

Phân vùng tập điều kiện 1{hiệu xe}

Trang 22

Có tổng cộng: 177 phân vùng tương ứng với 177 hiệu xe.

Phân vùng tập điều kiện 2{hiệu xe, số ghế}

Có tổng công 802 phân vùng tương ứng với từng hiệu xe và từng số ghế

Khai thác và chiết xuất tập luật thỏa độ tin cậy và độ hỗ trợ.

Trang 23

Kết quả đối với tập thuộc tính điều kiện {Hiệu xe} và tập thuộc tính quyếtđịnh{Loại hình xe}

Kết quả đối với tập thuộc tính điều kiện {Hiệu xe},{Số ghế} và tập thuộc tínhquyết định{Loại hình xe}

3.3.3 Một số source code minh họa

Để nâng cao hiệu quả của việc truy xuất cơ sở dữ liệu, với một sốlượng record tương đối lớn, ta cài đặt các hàm truy xuất dữ liệu bằngcác script ngôn ngữ SQL như sau:

Procedure dùng để phân vùng tập thuộc tính quyết định{Loại hình xe}

Trang 24

create PROCEDURE [dbo] [CaoHoc_TapQuyeDinh]

where x HieuXeID is not null and X LoaiHinhXeID is not null and

x SoGhe > and TenLoaiHinhXe is not null

declare @LoaiHinhXeID varchar ( 50 )

declare @TenLoaiHinhXe nvarchar ( 100 )

DECLARE pCurD CURSOR LOCAL

FOR select distinct TenLoaiHinhXe , LoaiHinhXeID

from VTDB_XE x

left join VTDB_DM_LOAIHINHXE lhx on

lhx LoaiHinhXeID = LoaiHinhXeID

where x HieuXeID is not null and X LoaiHinhXeID is not null and

x SoGhe > 0 and TenLoaiHinhXe is not null

phân vùng tập vũ trụ U thành các tập Y1,Y2 tương ứng với tập D

where x LoaiHinhXeID = @LoaiHinhXeID

FETCH NEXT FROM pCurD INTO @TenLoaiHinhXe , @LoaiHinhXeID

END

CLOSE pCurD

DEALLOCATE pCurD

Procedure dùng để phân vùng tập thuộc tính điều kiện{Hiệu xe}

create PROCEDURE [dbo] [CaoHoc_TapDieuKien1]

AS

select distinct TenHieuXe , x HieuXeId

from VTDB_XE x

left join VTDB_DM_HIEUXE hx on hx HieuXeID = HieuXeID

where x HieuXeID is not null and X LoaiHinhXeID is not null and

x SoGhe > 0 and TenHieuXe is not null

declare @HieuXeID varchar ( 50 )

declare @TenHieuXe nvarchar ( 100 )

DECLARE pCurHX CURSOR LOCAL

FOR select distinct TenHieuXe , x HieuXeId

from VTDB_XE x

left join VTDB_DM_HIEUXE hx on hx HieuXeID = HieuXeID

where x HieuXeID is not null and X LoaiHinhXeID is not null and

x SoGhe > 0 and TenHieuXe is not null

left join VTDB_DM_HIEUXE hx on hx HieuXeID = HieuXeID

where x HieuXeID = @HieuXeID

FETCH NEXT FROM pCurHX INTO @TenHieuXe , @HieuXeID

END

CLOSE pCurHX

DEALLOCATE pCurHX

Ngày đăng: 10/04/2015, 16:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w