Mục đích nội dung của ĐATN Nghiên cứu luật kết hợp ứng dụng để khai phá dữ liệu trong mạng xã hội chia sẻ đồ vật MiGi 3.. Các nhiệm vụ cụ thể của ĐATN - Nghiên cứu nắm vững lý thuyết và
Trang 1Phiếu Giao Nhiệm Vụ Đồ Án Tốt Nghiệp
1 Thông tin về sinh viên
Họ và tên sinh viên: Lê Minh Nghĩa
Điện thoại liên lạc: 0936 073 986 Email: nghia.fit@gmail.com
Lớp: Công Nghệ Phần Mềm K51 Hệ đào tạo: Đại học
Đồ án tốt nghiệp được thực hiện tại bộ môn CNPM, viện Công Nghệ Thông Tin và Truyền Thông, Đại Học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 1/ 1 /2011 đến 28 / 5 /2011
2 Mục đích nội dung của ĐATN
Nghiên cứu luật kết hợp ứng dụng để khai phá dữ liệu trong mạng xã hội chia sẻ đồ vật MiGi
3 Các nhiệm vụ cụ thể của ĐATN
- Nghiên cứu nắm vững lý thuyết và các thuật toán cơ bản về luật kết hợp
- Xây dựng mạng xã hội chia sẻ đồ vật MiGi
- Xây dựng mô hình khai phá dữ liệu cho mạng xã hội chia sẻ đồ vật MiGi
4 Lời cam đoan của sinh viên:
Tôi – Lê Minh Nghĩa - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của kĩ sư Hoàng Anh Việt.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ côngtrình nào khác
Hà Nội, ngà 28 tháng 5 năm 2011
Tác giả ĐATN
Lê Minh Nghĩa
5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ
Hà Nội, ngày 28 tháng 5 năm 2011
Giáo viên hướng dẫn
Thạc Sỹ Hoàng Anh Việt
Trang 2Đặc biệt, em xin gửi lời cảm ơn tới thạc sĩ Hoàng Anh Việt- giáo viên trực tiếphướng dẫn của em Thầy đã luôn giành sự quan tâm chỉ bảo tận tình, luôn động viên
khích lệ em vươn lên trong học tập và trong cuộc sống “Mọi ước mơ đều có thể trở
thành hiện thực”, đó là lời nói của thầy, và đó cũng điều em luôn khắc ghi để không
ngừng nỗ lực vươn tới những ước mơ, những khát khao xa hơn, lớn hơn trong cuộc sống!Tinh cảm yêu mến của gia đình và bạn bè luôn là một nguồn động lực tinh thần tolớn giúp em vững vàng trong cuộc sống Có thể lúc nào đó, trên chặng đường em đi sẽkhông bằng phẳng, sẽ đầy gian nan thử thách và tranh đấu Nhưng em biết trong trái timnhững người yêu thương, sẽ luôn cho em những bình yên để nghỉ ngơi và để rồi tiếp tụctiến về phía trước
Hà Nội ngày 28 tháng 5 năm 2011
Sinh viên
Lê Minh Nghĩa
Trang 3Tóm Tắt Nội Dung Đồ Án Tốt Nghiệp
Mạng xã hội đang dần trở thành một phần không thể thiếu trong cuộc sống
hiện đại Nó mang đến cho con người cơ hội được kết nối một cách dễ
dàng, để chia sẻ sở thích, thói quen và suy nghĩ Mạng xã hội đã trở thành
một kho dữ liệu số ghi lại nhiều khía cạnh khác nhau của cuộc sống của
mỗi người Và đó cũng là cơ hội to lớn để các công cụ phân tích dữ liệu
phân tích tìm ra những thông tin hữu ích từ người dùng Nhờ đó giúp cho
các website trở nên thông minh hơn, mang lại cho người dùng nhiều trải
nghiệm tốt hơn, cũng như những thông kê và phân tích hữu ích cho quản lý
và kinh doanh Trong đồ án tốt nghiệp này, người viết luận văn tập trung
nghiên cứu luât kết hợp- một trong những lĩnh vực được ứng dụng rộng rãi
nhất của Data Mining Đề từ đó góp phần tìm ra các thói quen chia sẻ đồ
vật của người dùng trong mạng chia sẻ đồ vật-MiGi Nhằm làm cho hệ
thống có thể gợi ý thông minh hơn, giúp người chia sẻ dễ dàng tìm được
người thực sự cần những đồ vật mình cho đi
Trang 4Abtract Thesis
Social Network becomes gradually the indispensable thing in the modern
life It brings the opportunity for people to connect easily, to share their
interests, habits, and thoughts… Social Network has become a huge digital
database to record many different aspects of each users s’ life It is also the
great chance for data analytic tools to discover useful information of users
It makes website more intelligent, give better experience for users, and also
useful analytic and statistic for business and management In this thesis,
author concentrates on Association Rules- one of the most important areas
in Data Mining With purpose is to find sharing habits in the object sharing
network-MiGi It makes system more intelligent in suggestion functions,
supports offering people find easily the person that really need the object
they shared
Trang 5Mục Lục
Phiếu Giao Nhiệm Vụ Đồ Án Tốt Nghiệp 1
Tóm Tắt Nội Dung Đồ Án Tốt Nghiệp 3
Abtract Thesis 4
Mục Lục 5
Danh mục các kí hiệu và chữ viết tắt 7
Danh mục các bảng 8
Danh mục các hình vẽ và đồ thị 9
Mở đầu 10
Chương 1: Bài toán khai phá dữ liệu từ mạng xã hội 12
1.1 Mạng xã hội 12
1.1.1 Mạng xã hội Facebook 12
1.1.2 Mạng xã hội Twitter 13
1.1.3 Mạng xã hội Zing Me 13
1.2 Các lợi ích từ việc khai thác dữ liệu mạng chia sẻ đồ vật MiGi 15
1.3 Tổng quan về khai phá dữ liệu 15
1.3.1 Các khái niệm cơ bản 16
1.3.2 Bài toán phát hiện luật kết hợp 17
1.3.3 Khó khăn trong phát hiện luật kết hợp 18
Kết chương một: 19
Chương 2: Luật kết hợp và các kĩ thuật xử lý 21
2.1 Thuật toán Apriori 21
2.2 Thuật toán PHP- Perfect Hashing and Prunning 24
2.3 Thuật toán FP Tree 25
Kết chương hai: 27
Chương 3: Mô hình mạng chia sẻ đồ vật và khai thác thông tin 28
3.1 Tổng quan về hệ thống 28
3.2 Phân tích yêu cầu 29
Trang 63.2.1 Sơ đồ use case 29
3.2.2 Đặt tả use case 30
3.3 Thiết kế kiến trúc hệ thống 39
3.3.1 Thiết kế kiến trúc tổng thể 39
3.3.2 Sơ đồ Package 41
3.3.3 Sơ đồ lớp 42
3.3.4 Biểu đồ diễn tiến 43
3.4 Thiết kê cơ sở dữ liệu 46
3.5.1 Thiết kế cơ sở dữ liệu cho quá trình phân tích 51
3.5.2 Quy trình tiền xử lý dữ liệu 52
3.5.3 Thiết kế module tìm các tập mục thường xuyên bằng thuật toán Aprirori 53
3.5.4 Thiết kế module tìm các tập mục thường xuyên bằng thuật toán PHP 54
3.5.5 Thiết kế module tìm các tập mục thường xuyên bằng thuật toán FP Tree 55
3.5 Bộ dữ liệu để chạy thử và nền tảng công nghệ sử dụng 56
3.5.1 Dữ liệu chạy thử 56
3.5.2 Nền tảng công nghệ sử dụng 56
Kết chương ba: 57
Chương 4: Các kết quả đạt được 58
4.1 Các tính năng cơ bản của hệ thống 58
4.1.1 Tính năng offer đồ vật 58
4.1.2 Tính năng xem thông tin Offer, vị trí địa lý 58
4.1.3 Tính năng tạo request- yêu cầu xin đồ vật 60
4.1.4 Tính năng gợi ý đồ vật 60
4.1.5 Tính năng hiển thị danh sách các sự kiện từ thiện 62
4.1.6 Tính năng đóng góp đồ vật cho các sự kiện từ thiện 62
4.2 Các kết quả đạt được khi phân tích bộ dữ liệu mẫu 63
Kết chương bốn: 65
Kết luận và hướng phát triển 66
Danh mục tài liệu tham khảo 67
Trang 8Danh mục các kí hiệu và chữ viết tắt.
1 NVLV Người viết luận văn
2 CSDL Cơ sở dữ liệu
4 DHP Direct Hashsing and Pruning
5 PHP Perfect Hashing and Pruning
6 FP Tree Frequent Pattern Tree
7 Association Rules Luật kết hợp
9 ItemSet Tập mục
10 K Item Set Tập K mục
11 Support Count Độ hộ trợ
12 Min Sup Độ hộ trợ tối thiểu
13 Confidence Độ tin cậy
14 Min Conf Độ tin cậy tối thiểu
15 Frequent Itemset Tập mục thường xuyên
16 Transaction Giao dịch
Trang 9Danh mục các bảng.
Trang 10Danh mục các hình vẽ và đồ thị.
Hình 2.1 Bảng dữ liệu mẫu cho ví dụ
Hình 5.19:Sơ đồ lớp của module phân tích luật FP Tree
Mở đầu
Quản lý hiệu quả các dữ liệu đã là mục tiêu khởi nguồn quan trọng cho sự ra đời vàphát triển của các hệ thống thông tin quản lý Các hệ thống thông tin quản lý ngày mộtđược sử dụng rộng rãi hơn trong mọi hoạt động của cuộc sống Từ các hệ thống lớn chocác ngân hàng, siêu thị, cho tới các hệ thống quản lý cho các nhà hàng, cửa hiệu… Và dữliệu cũng bùng nổ cùng với sự phát triển và phổ biến của các hệ thống thông tin quản lý.Giờ đây quản lý hiệu quả dữ liệu không còn là mục tiêu duy nhất mà hơn thế cần phảibiết khai thác hiệu quả dữ liệu lưu trữ Đó chính là nguyên nhân cho sự phát triển mạnh
mẽ của lĩnh vực nghiên cứu data mining trong các thập niên gần đây
Luật kết hợp là một trong những lĩnh vực data mining được áp dụng rộng rãi trongrất nhiều lĩnh vực khác nhau Nó được phát triển xuất phát từ yêu cầu thực tế khi người tacần tìm các quy luật về mối quan hệ giữa các sản phẩm được mua bán cùng nhau trongcác siêu thị Các quy luật đó rất có ý nghĩa đối việc marketing giới thiệu sản phẩm chokhách hàng, hay đơn giản là bố trị vị trí các gian hàng gần nhau sao cho hợp lý nhất Mộtngười mua máy tính thường mua kèm phần mềm diệt virus, vậy thì thay vì để cách xanhau, họ có thể xếp hai gian hàng ở gần nhau Như vậy cơ hội cho khách mua đồng thờihai sản phẩm sẽ cao hơn rất nhiều
Trong đồ án tốt nghiệp này, NVLV áp dụng các thuật toán luật kết hợp vào hệ thốngmạng chia sẻ đồ vật do người viết luật văn xây dưng với mong muốn tìm ra các quy luậtcho trong hoạt động chia sẻ đồ vật Từ đó sẽ có những gợi ý thông minh cho người dùng,giúp quá trình tìm kiếm đồ vật được dễ dàng
Mạng chia sẻ đồ vật là một web site cho phép người dùng đưa các thông tin về các
đồ vật mà người dùng không còn cần dùng nữa Và những người đang cần tới chúng cóthể sử dụng mạng chia sẻ để dễ dàng liên lạc với người cho Đó là dự án do người viết
Trang 11luật văn xây dựng để tham gia cuộc thi Imagine Cup 2011 do Microsoft tổ chức Với mụctiêu tạo ra một cộng đồng giúp đỡ lẫn nhau phục vụ cho các mục tiêu thiên niên kỉ là xóađói giảm nghèo và bảo vệ môi trường.
Bố cục đề tài tốt nghiệp của NVLV gồm các phần chính sau:
Chương 1: Trình bày về vai trò của các mạng xã hội với bài toán khai phá dữ liệu.Lợi ích từ việc khai thác dữ liệu mạng chia sẻ đồ vật MiGi Đồng thời trình bàycác lý thuyết cơ bản về luật kết hợp
Chương 2: Trình bày về các giải thuật cơ bản của luật kết hợp, cùng một kỹ thuậtcài đặt và xử lý
Chương 3: Thiết kế và cài đặt mạng chia sẻ đồ vật phục vụ việc phân tích dữ liệu
Chương 4: Các kết quả đạt được
Trang 12Chương 1: Bài toán khai phá
dữ liệu từ mạng xã hội
Trong chương này sẽ trình bày về:
Sự phát triển của các mạng xã hội
Mạng xã hội và bài toán data mining
Mạng xã hội chia sẻ đồ vật
Mạng xã hội đáng phát triển một cách bùng nổ Nó trở thành một trào lưu mạnh mẽ,thu hút hàng triệu người tham gia Nó mang tới cơ hội cho người dùng có thể dễ dàng kếtnối với nhau, chia sẻ thông tin Các mạng xã hội trở thành những kho lưu trữ số thông tincủa người dùng
1.1 Mạng xã hội
Ngày nay, các mạng xã hội đang có sự phát triển bùng nổ, với số lượng người dùnglên đến hàng trăm triệu Các mạng xã hội đang dần trở thành một môi trường mạngkhông thể thiếu với hàng triệu người dùng Nơi mang lại cho người dùng một cơ hội tolớn để kết nối và chia sẻ thông tin dễ dàng Nó cũng phản ánh nhu cầu tâm lý tất yếu củacon người là chia sẻ và trao đổi thông tin Khi mà xã hội càng hiện đại thì áp lực cuộcsống, sự thiếu thốn về thời gian càng tăng… Điều đó làm cho các mạng xã hội trở thànhmột môi trường tiện dụng để người dùng có thể chia sẻ nhanh chóng những thông tinmình có với bạn bè
1.1.1 Mạng xã hội Facebook
Facebook là mạng xã hội lớn nhất thế giới, được thành lập vào tháng 2 năm 2004,Facebook ban đầu có tên là Facemash Đây là một phiên bản Hot or Not của trường đạihọc Harvard Sau đó, MarkZuckerberg thành lập “The Facebook” đặt trên domainthefacebook.com Dịch vụ mạng xã hội này ban đầu chỉ dành riêng cho các sinh viên củaĐại học Harvard Chỉ sau một tháng, hơn nửa số sinh viên Đại học Harvard đã đăng ký sửdụng dịch vụ này
Tháng 9 năm 2004, Mark Zuckerberg đã chuyển trụ sở của thefacebbook.com vềPalo, Alto, California và bỏ chữ “the” trong tên miền thefacebook.com, chuyển thànhfacebook.com
Trang 13Facebook nhanh chóng trở thành cái tên quen thuộc đối với người sử dụng các dịch
vụ mạng xã hội Đến tháng 12 năm 2004, tức chỉ 10 tháng sau khi thành lập, Facebook đãgần chạm mốc 1 triệu người dùng
Một năm sau đó, số người dùng đã tăng vọt lên tới 5.5 triệu người Facebook dầndần mở rộng hoạt động ra phạm vi bên ngoài các trường đại học Các trường trung học tạiHoa Kỳ bắt đầu được thêm vào hệ thống
Tháng 4 năm 2008, Facebook chính thức có mặt trên nhiều quốc gia và vùng lãnh thổvới 21 ngôn ngữ khác nhau Số thành viên của mạng xã hội này đã lên tới 100 triệungười
Thành công đến với Facebook nhanh hơn mong đợi khi số lượng thành viên củamạng xã hội này lần lượt chạm mốc 200 triệu vào tháng 4, 300 triệu vào tháng 9 năm
2009, 400 triệu vào tháng 2 năm 2010 Mới đây nhất, Facebook đã vượt mốc 500 triệungười dùng
và giữ một vai trò quan trọng trong xã hội, chính trị, truyền thông, thể thao và nhiều lĩnhvực khác
Người dùng Twitter hiện nay gửi đi 140 triệu đoạn tweet mỗi ngày Trước đây,Twitter đã mất 3 năm, 2 tháng và 1 ngày để đạt được 1 tỷ tweet đầu tiên, nhưng giờ đây,
cứ 8 ngày thì có 1 tỷ tweet được gửi đi
Tương tự, Twitter đã mất 18 tháng để có 500 ngàn người dùng, nhưng giờ đây, mỗingày lại có thêm 500 ngàn tài khoản mới được đăng ký
1.1.3 Mạng xã hội Zing Me
Đáp ứng xu thế mạng xã hội, tại Việt Nam đã có hàng loạt mạng xã hội ra đời Tiêubiểu trong số đố là mạng xã hội Zing Me do tập VNG làm chủ Đây có thể nói là mạng xã
Trang 14hội lớn nhất Việt Nam Chỉ sau hơn một năm phát triển Zing Me đã có hơn 5 triệu ngườidùng.
Với giao diện được việt hóa thân thiện, cùng sự tích hợp nhiều ứng dụng và dịch vụkhác nhau, Zing Me đã nhanh chóng thu hút được một lượng lớn người dùng Đặc biệt lànhóm những người dùng trẻ tuổi Zing Me cung cấp một môi trường chia sẻ và kết nối dễdàng Đồng thời Zing Me cũng cung cấp nhiều công cụ khác nhau để các doanh nghiệp tổchức các sự kiện, thực hiện các điều tra thăm dò Zing Me cũng mở các API để các bênthứ ba phát triển các ứng dụng dựa trên nền tảng Zing Me Zing Me ngày càng chiếmđược cảm tình của người dùng, đặc biệt là nhóm người dùng trẻ tuổi Đó là cơ sở cho sựphát triển bền vững tại thị trường Việt Nam sau này
Trên đây là một số mạng xã hội phổ biến ở trên thế giới và ở Việt Nam Nó cho thấymạng xã hội đã trở thành một xu hướng chi phối đời sống xã hội, nó chiếm được cảm tính
và sự quan tâm của tất cả mọi lứa tuổi, tầng lớp và trên phạm vi toàn cầu rộng lớn Xuhướng đó tạo ra sự phát triển bùng nổ của mạng xã hội Đồng thời nó cũng biến mạng xãhội trở thành một kho chứa thông tin khổng lồ Bởi mạng xã hội gần như trở thành mộtmôi trường xã hội ảo Nó ghi nhận một cách đa dạng các hoạt động khác nhau của ngườidùng Nó nắm giữ từ các thông tin cá nhân, cho tới các thông tin về các mối quan hệ, về
sở thích, về thói quen của người dùng Mạng xã hội trở thành một kho dữ liệu khổng lồ
mà nếu khai thác hiệu quả người ta có thể tìm được rất nhiều thông tin hữu ích Có thểđoán nhận được sở thích của một người, phân tích các xu hướng về nhu cầu của ngườidùng, hay mối quan hệ giữa những người dùng
Nhưng chính sự đa dạng về dữ liệu lại chính là một trong những rào cản để phục vụcác bài toán phân tích và khai thác dữ liệu Chính vì thế mà không có một mô hình phântích thống kê chung nhất cho tất cả các mạng xã hội, mà nó thay đổi tùy theo từng mụcđích khác nhau của bài toán Đối với một mạng như Amazon thì thông tin về sở thíchngười dùng luôn được quan tâm hàng đầu Từ đó có thể biết được mối quan tâm giữanhững loại sách mà người dùng tìm kiếm
MiGi là một mạng chia sẻ đồ vật Trong hoạt động chia sẻ đồ vật, luôn xuất hiệnyêu cầu đồ vật được chia sẻ tìm được đến đúng người có nhu cầu phù hợp với loại đồ vậtđược chia sẻ Điều đó giúp quá trình chia sẻ hiệu quả hơn, và cũng giúp người dụng thuậttiện hơn trong quá trình tìm kiếm và sử dụng
Xuất phát từ yêu cầu đó, hệ thống cần phải xác định được các quy luật xem ngườidùng thường chia sẻ những đồ vật gì cùng nhau, cũng như thường có nhu cầu về những
Trang 15loại đồ vật nào Ví dụ người X cho vật B thì thường sẽ cho thêm vật C, hoặc người lạingười Y khi xin một đồ vật D thì thường sẽ có nhu cầu đối với vật E Những luật đó gọi
là các luật kết hợp
Để tìm được các luật kết hợp đó, đòi hỏi phải tìm được tập các đồ vật mà ngườidùng thường chia sẻ cùng nhau, hoặc tập các đồ vật mà người dùng thường yêu cầu Đó
là trọng tâm của tất cả các thuật toán tìm luật kết hợp
1.2 Các lợi ích từ việc khai thác dữ liệu mạng chia sẻ đồ vật MiGi
Việc khai thác dữ liều từ mạng chia sẻ đồ vật mang lại nhiều thông tin hữu ích chonhiều lính vực khác nhau Có thể kể ra một số hướng có thể khai thác được từ dữ liệungười dùng của mạng MiGi là:
Xác định được thói quen chia sẻ đồ vật của người dùng: biết được những món
đồ mà người dùng thường cho đi, các nhu cầu thường đi cùng với nhau Để từ
đó xây dựng các hệ gợi ý thông minh Ví dụ: người A cho một cái điện thoại cũ,người B cần chiếc đoạn thoại đó, thì có thể sẽ cần một chiếc xác điện thoại củamột người X nào đó cũng cho đi
Phân tích sở thích của người dùng để phục vụ mục đích quảng cáo Qua các
đồ vật người đó cho đi có thể biết phần nào là sở thích người dùng là gì Ví dụnhãn hiệu quần áo mà người ta quan tâm Đó là cơ sở để quảng cáo các sảnphẩm phù hợp
Điều tra thị trường: Qua những đồ vật mà cộng đồng cho đi có thể xác định
nhu cầu tiêu thụ của một khu vực nào đó Thông thường, nếu mặt hàng nào đó càng bán chạy thì càng có nhiều đồ được “thải” ra Dựa trên MiGi cũng có thể lập được một bản đồ số phân bố theo nhu cầu
1.3 Tổng quan về khai phá dữ liệu
Data Mining là một lĩnh vực rộng lớn, nó được chia thành nhiều lĩnh vực nhỏ để giảiquyết nhiều bài toán khác nhau Trong phạm vi đề tài, người viết luận văn chỉ cố gắngtìm hiểu để nắm bắt những ý tưởng chính để phục vụ cho bài toán đề xuất Chính vì thế,
để tập trung cho phần trình bày, trong chường này chỉ xin trình bày về những lý thuyết cơbản về luật kết hợp Lĩnh vực luật kết hợp là một trong những lĩnh vực được quan tâmnhiều nhất trong data mining Bởi nó được ứng dụng một cách rộng rãi nhằm phân tíchcác mối quan hệ, tìm ra các quy luật giữa các thuộc tính khác nhau… Ví dụ như trong cácsiêu thị khi tìm kiếm quy luật về các mặt hàng mà người dùng cùng mua với nhau, haytrong y học khi tìm mối quan hệ giữa các triệu chứng dẫn đến một loại bệnh nào đó…
Trang 161.3.1 Các khái niệm cơ bản.
a Tập mục.
I1,I2,…In là các mục-mặt hàng (items) I={I1,I2,…In} là tập tất cả các mục
Một tập con X ⊆ I được gọi là tập mục (itemset) Một k-tập mục (k-itemset) làmôt tập mục chứa k mục (item)
b Độ hỗ trợ tập mục.
Cho một cơ sở dữ liệu D ={T1,T2,…Tn} là một tập giao dịch, trong đó mỗi giaodịch Ti,i∈{1,…n} là một tập mục Một giao dịch T chứa một tập mục X nếu X⊆T.Một giao dịch Ti được đi kèm với một chỉ số TID
Chỉ số hỗ trợ đối với tập mục X (support count σ) được định nghĩa là số giao dịchtrong cơ sở dữ liệu D chứa tập mục X:
Chỉ số support count còn được gọi là độ hộ trợ tuyệt đối (absolute support) Chỉ
số hỗ trợ còn được gọi là độ hỗ trợ tương đối (relative support)
c Luật kết hợp.
Một luật kết hợp (association rule) là một luật có dạng X ⟹ Y, trong đó
X ⊂ I , Y ⊂I và X ∩Y =⊘ X được gọi là tiền nghiệm, X được gọi là kết quả suy ra
Luật X ⟹ Y có độ tin cậy c (confidency) trong tập giao dịch D nếu c% các giaodịch trong D khi đã chứa X thì cũng chứa Y:
d Tập mục thường xuyên.
Trang 17Các tập mục với độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu được gọi là các tập mụcthường xuyên (frequent itemset) hay các tập mục lớn (large itemsets) Tập các k-itemsetthường được ký hiệu là Lk.
Ví dụ: Cơ sở dữ liệu giao dịch
1 Bread, Milk
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke
Tập {Milk, Bread, Diaper} là tập 3-items, có:
Luật kết hợp {Milk, Diaper}=> {Beer}
c= σ (Milk , Diaper , Beer)
σ (Milk , Diaper ) =
2
3=0.67
e Tập mục đóng, tập mục thường xuyên cực đại
Tập mục X được gọi là đóng (closed itemset) nếu không tồn tại tập mục Y, saocho X ⊂Y và s ( X )=s( y ) Một tập mục thường xuyên và đóng được gọi là tập mụcthường xuyên đóng (closed frequent itemset)
Một tập mục X được gọi là tập mục thường xuyên cực đại (maximal frequentitemset) nếu X thường xuyên và không tồn tại tập mục Y, X ⊂Y và Y là thườngxuyên
1.3.2 Bài toán phát hiện luật kết hợp.
Cho một tập mục I, một cơ sở dữ liệu các tập mục D, một ngưỡng hỗ trợ smin và mộtngưỡng tin cậy cmin, cần phải tìm ra các luật kết hợp X ⟹ Y trong D với độ hỗ trợ s ≥ s min
và độ tin cậy c ≥ c min
Một cách tổng quát, phát hiện luật kết hợp được chia làm hai bước:
Trang 18 Bước 1: Tìm tất cả các tập mục thường xuyên.
Bước 2: Sinh ra các luật tin cậy từ các tập mục thường xuyên.
Từ công thức (4), độ tin cậy của X ⟹ Y có thể được tính thông qua độ hỗ trợ của X
và X ∪Y Điều này có nghĩa là khi đã tính được độ hỗ trợ của X, Y và X ∪Y thì có thểtrực tiếp sinh ra các luật dạng X ⟹ Y và Y ⟹Y và kiểm tra xem chúng có phải là cácluật tin cậy hay không Vì chi phí tính toán của bước hai là nhỏ hơn rất nhiều so với bước, hiệu năng của toàn quá trình phát hiện luật kết hợp phụ thuộc vào hiệu năng của bước 1,
từ đó bài toán phát hiện luật kết hợp được đơn giản thành bài toán phát hiện các tập mụcthường xuyên
1.3.3 Khó khăn trong phát hiện luật kết hợp.
Mặc dù có những độ đo khác nhau được đề xuất trong phát hiện luật kết hợp, nhưng
2 độ đo chính vẫn được sử dụng phổ biến là độ đo hỗ trợ (support) và độ đo tin cậy(confidency) Khi giống nhau về giá trị ngưỡng của độ đo hỗ trợ và tin cậy, các cách tiếpcận khác nhau phải cho cùng một tập luật kết hợp Khi đó, để so sánh các phương phápvới nhau, người ta sẽ so sánh về hiệu năng của thuật toán (chi phí tính toán, chi phí bộnhớ), các cấu trúc dữ liệu được sử dụng, chiến lược tìm kiếm và cách cắt giảm tập mụckhông thường xuyên…
a Khó khăn trong giảm độ phức tạp của thuật toán.
Khó khăn đặt ra chủ yếu trong phát hiện luật kết hợp đối với CSDL kích thước lớn
là thường sinh ra rất nhiều tập mục thường xuyên, đặc biệt trong trường hợp ngưỡngminsup nhỏ Điều này là bởi vì một tập mục là thường xuyên thì các tập mục bộ phận của
nó (subitemset) cũng là thường xuyên Chẳng hạn như một tập mục thường xuyên có kích thước 100 {a0, a1, …, a100} sẽ chứa C1001 =100 tập 1-mục, C1002 tập 2-mục thườngxuyên… Điều này dẫn đến số tập mục thường xuyên được chứa trong tập mục thườngxuyên kích thước 100 là:
C1001 +C1002 +…+C100100=2100−1
Là quá lớn cho máy tính tính toán và lưu trữ
Zaki[2] đã chứng minh bài toán phát hiện tất cả các tập mục thường xuyên là bài toán NP-khó Bởi vì với CSDL có d tập mục, số ứng viên phải là c d là hàm mũ.
Đã có nhiều thuật toán và kĩ thuật khác nhau được đề xuất để làm tăng hiệu năng của hệ thống, trong đó tập trung vào việc cắt tỉa các transaction không phục vụ quá trình
Trang 19tìm luật kết hợp, cắt bỏ các mục không có ý nghĩa, sử dụng các cấu trúc dữ liệu bảng băm
để lưu trữ nhằm giảm số lần duyệt cơ sở dữ liệu
b Khó khăn trong phát hiện luật kết hợp có giá trị
Bên cạnh vấn đề về việc phải tính toán trên quá trình tập mục thường xuyên, mộtvấn đề khác trong phát hiện luật kết hợp là có thể bỏ sót những luật có ý nghĩa Lấy ví dụnhư với cách tiếp cận thông thường, các tập mục có cùng một ngưỡng hỗ trợ Khi đó, nếuđặt ngưỡng này đủ lớn để loại đi được nhiều tập mục không thường xuyên, thì có nhữngtập mục có bản chất ít xuất hiện trong giao dịch sẽ không được phát hiện trong luật Tuynhiên, nhiều khi những luật liên quan tới các mặt hàng ít xuất hiện này lại có giá trị Cụthể như trong CSDL giao dịch, những tập mục liên quan tới các mặt hàng tiêu dùng nhưbánh mỳ, sữa… có lợi nhuận thấp, tính phổ biến hơn rất nhiều so với những tập mục liênquan đến các mặt hàng như tivi, tủ lạnh, điều hòa… vốn là những mắt hàng ít mua nhưnglại có lợi nhuận cao Nếu ngưỡng hỗ trợ cao, thì chỉ phát hiện được các luật liên quan đếnmặt hàng tiêu dùng, mà bỏ đi một mảng liên quan đến các mặt hàng cho lợi nhuận cao.Cách tiếp cận ở đây là đưa ra với mỗi một mục khác nhau một giá trị ngưỡng hỗ trợ khácnhau Giá trị ngưỡng hỗ trợ cho tập mục sẽ được xác định dựa trên giá trị hỗ trợ của cácmục thành viên Ngoài ra, với các mục khác nhau người ta có thể đưa vào trọng số chỉmức độ quan trọng khác nhau
Hơn nữa, trong trường hợp các tập mục ở các mức khác nhau, một cách đươngnhiên, các mục ở mức trừu tượng cao hơn sẽ có giá trị hỗ trợ cao hơn các mục ở mức trừutượng thấp Nếu đặt ngưỡng hỗ trợ quá thấp, thì sinh ra quá nhiều luật, ngược lại vớingưỡng hỗ trợ cao thì chỉ sinh ra được các luật ở mức trừu tượng cao, mà bỏ xót các luậtquan trọng ở mức trừu tượng thấp Cách tiếp cận ở đây là đưa ra cơ chế điều chỉnh giá trịngưỡng hỗ trợ cho phù hợp với từng mức khác nhau
Kết chương một:
Qua trường này NVLV đã trình bày tổng quan về các mạng xã hội, và tiềm năng choviệc khai thác dữ liệu từ các mạng xã hội Đồng thời NVLV trình bày các kiến thức cơbản khai phá dữ liệu trong lĩnh vực luật kết hợp Qua đây NVLV định ra các mục tiêu của
Trang 20 Cài đặt và so sánh đánh giá các thuật toán trên bộ dữ liệu thực
Định hướng phát triển mở rộng
Trang 21Chương 2: Luật kết hợp
và các kĩ thuật xử lý
Trong chương này sẽ trình bày:
Thuật toán Apriori
Thuật toán PHP
Thuật toán FP Tree
Như đã trình bày ở trên, khó khăn của bài toán tìm luật kết hợp nằm ở việc tìm được các tập mục thường xuyên Nó là bước chiếm nhiều hiệu năng nhất của hệ thống Tất cả các thuật toán tìm luật kết hợp đều xoay quanh viên tìm kiếm các tập mục thường xuyên sao cho nhanh nhất và hiệu quả nhất có thể
Trong phân tích luật kết hợp, có hai loại cơ sở dữ liệu là cơ sở dữ liệu đơn chiều và
cơ sở dữ liệu đa chiều CSDL đơn chiều chỉ có một chiều Ví dú như cơ sở dữ liệu giaodịch, chỉ có chiều “mặt hàng”, trong đó mỗi bản ghi là một giao dịch, ghi nhận các mặthàng được mua bởi người dùng trong giao dịch đó CSDL đa chiều có nhiều chiều, nhưbên cạnh chiều mặt hàng thì còn có thêm các chiều thuộc tính khác của mặt hàng Ví dụ:màu sắc, nhãn hiệu, giá cả… Dưới là trình bày vắn tắt các giải thuật cơ bản để tìm các tậpmục thường xuyên trong cơ sở dữ liệu đơn chiều
2.1 Thuật toán Apriori
Giải thuật Apriori là một giải thuật được R.Agrawal và R.Srikant được ra vào năm
1994 Đên nay nó vẫn được coi là một giải thuật nổi tiếng nhất trong việc tìm luật kếthợp Tên của giải thuật dựa trên thực tế giải thuật sử dụng kiến thức tiên nghiệm các tậpmục thường xuyên để xác định các tập mục thường xuyên có kích cỡ lớn hơn Apriori sửdụng phương pháp search mở rộng theo mức, trong đó tập k-muc (k-itemset) được sửdụng để tìm các tập mục k+1 Đầu tiên các tập 1 mục (1-itemsets) được tìm thấy bằngviệc quét toàn bộ database, đồng thời xác định độ hỗ trợ tương ứng Kết quá ta được tậpL1 L1 được sử dụng để tìm tập L2 là các tập 2 mục (2-itemsets), rồi từ L2 tìm đượcL3… Quá trình tiếp diễn cho tới khi không tìm được thêm tập mục nào nữa
Trang 22Để tăng tính hiệu quả của quá trình search theo cấp độ (wise level search) giải thuậtPriori sử dụng thuộc tính tiên nghiệm, nhằm loại bỏ các tập sinh ra, giúp giảm không giansearch Thuộc tính tiên nghiệm được định nghĩa như sau:
Thuộc tính tiên nghiệm(Apriori):Tất cả các tập con không rỗng của một tập mục
thường xuyên phải là một tập mục thường xuyên
Dựa trên thuộc tính này, thì tại bước sinh các tập Lk+1 từ Lk nếu bất kỳ một tập mụcnào thuộc Lk+1 mà không thuộc Lk nghĩa là không phải tập mục thường xuyên, thì sẽ loại
bỏ Lk+1 tương ứng Giải thuật Apriori gồm hai bước chính:
Bước Join: để tìm lập mục thường xuyên K, một tập các ứng viên k mục sẽ
được sinh ra bằng cách join các tập Lk-1 với chính nó Tập hợp sinh ra gọi làtập Ck Từ tập này chúng ta sẽ sử dụng để tìm Lk
Bước tỉa: Sau khi join tập Lk-1 với chính nó ta được tập Ck là tập lớn chứa tập
Lk Trong đó chứa các các tập k-mục thường xuyên, và cả các tập không phảithường xuyên Để xác định, thì phải tiến hành quét database Nhưng số lượngtập mục thuộc Ck là rất lớn Chi phí quét cho toàn bộ là rất tốn kém Để giảmkhông gian search thì lúc này thuộc tính tiên nghiệm được sử dụng Bất cứtập hợp nào thuộc Ck mà có tập con k-1 không phải tập mục thường xuyênđều bị loại bỏ Từ đó mà không gian search sẽ giảm xuống
Ví dụ:
Cơ sở dữ liệu gốc:
Hình 2.1 Bảng dữ liệu mẫu cho ví dụ
Quá trình tìm kiếm các tập mục thường xuyên với ngưỡng độ hỗ trợ là 2
Trang 23Hình 2.2 Ví dụ về tìm tập mục thường xuyên
Dưới đây là code mô tả thuật toán:
Trang 24Hình 2.3: Code mẫu thuật toán Apriori
2.2 Thuật toán PHP- Perfect Hashing and Prunning
Giải thuật PHP(Perfect Hashing and Prunning) là giải thuật được phát triển lên từgiải thuật Apriori nhằm cải thiện hiệu năng Giải thuật PHP sử dụng các kĩ thuật bảngbăm, tận dụng nhiều tri thức tiền nghiệm để loại giảm số lượt quét database và giảm kích
cỡ của cơ sở dữ liệu giao dịch Giải thuật PHP gồm ba phần:
Phần 1: Quét toàn bộ Database, đếm số lần xuất hiện của các mục (item), đồng thời xây
dựng bảng băm cho các tập 2 mục, chọn lựa các item thỏa mãn độ hỗ trợ tối thiểu để đưavào L1
Trang 25Phần 2: Từ bảng băm chúng ta sẽ xác định được tập các ứng viên Các ứng viên đó sẽ
được kiểm tra để tạo ra Lk Khi chúng ta kết thúc Lk, database sẽ được cắt giảm, loại bỏcác mục không cần thiệt, các giao dịch không có ý nghĩa
Phần 3: Tương tự như phần hai nhưng trừ việc phải xây dựng lại bảng băm.
Cắt tỉa Trong giải thuật PHP một phần quan trọng là thao tác cắt tỉa database Thao tác
cắt tỉa database dựa trên hai nhận xét sau:
Một giao dịch có thể chứa k+1 tập mục (itemsets) khi nó có ít nhất k+1 tập mục (k+1 itemsets) Điều đó có nghĩa là chúng ta có thể loại bỏ các giao dịch màkhông có đủ k+1 tập k-mục
k- Nếu một item thuộc một k+1 tập mục thường xuyên, thì nó phải nằm ít nhất k lầntrong k tập mục Do đó chúng ta sẽ loại bỏ những mục nào có số lần xuất hiệntrong tập Lk nhỏ hơn k lần
Thực chất còn tồn tại một giải thuật khác trước giải thuật PHP là DHP (Direct Hashingand Prunning) PHP cơ bản là giống DHP, chỉ khác nhau ở hàm băm Hàm băm của PHP
là hàm băm hoàn chỉnh đảm bảo không có sự trùng lặp key
2.3 Thuật toán FP Tree
Như đã trình bày ở trên, việc phát hiện các tập mục thường xuyên có ý nghĩa quyếtđịnh đối với việc sinh ra các tập luật kết hợp Đối với giải thuật Apriori thì việc tìm cáctập mục thường xuyên đòi hỏi phải sinh ra các tập ứng viên Nhưng ngay cả khi đã ápdụng các kĩ thuật cải tiến thì số tập ứng viên sinh ra vẫn quá lớn Đó chính là nguyênnhân chính ảnh hưởng tới hiệu năng của thuật toán
Nhóm nghiên cứu của Han đã đề xuất sử dụng cấu trúc cây trên ba khía canh sau:
Thứ nhất: Sử dụng cấu trúc dữ liệu nén truyền thống được gọi là cây mẫu
thường xuyên FP-Tree (Frequent pattern tree) được xây dưng Nó là sự mởrộng của cây tiền tố để lưu trữ các thông tin chủ yếu về cây mẫu thườngxuyên Chỉ những mục thường xuyên mới có các nút trong cây, và nút củacây được sắp xếp theo ý tưởng nút nào xuất hiện thường xuyên hơn sẽ có
cơ hội hơn để chia sẻ nút đó
Thứ hai: Quá trnnh phát hiện tập mục thường xuyên dựa trên FP-Tree
được phát triển bắt đầu từ mẫu thường xuyên kích thước 1 (như một mẫuhậu tổ khởi đầu), chỉ kiểm tra cơ sở mẫu điều kiện(một cơ sở dữ liệu conchứa tập các mục thường xuyên cùng xuất hiện với mẫu hậu tổ), xây dựngFP-Tree điều kiện và thực hiện khai phá đệ quy với cây Tăng trưởng mẫuđạt được thông qua thao tác kết nối mẫu hậu tố với mẫu hậu tố mới được
Trang 26sinh ra từ cây FP-Tree điều kiện Thao tác chính ở đây là đếm bộ tích lũy vàđiều chính bộ đếm tiền tố, do đó sẽ ít tốn kém hơn so với việc sinh ra cácứng viên và so khớp mẫu được thực hiện trong thuật toán Apriori.
Thứ ba: Kỹ thuật tìm kiếm thực hiện dựa trên phân đoạn, chia và trị chứ
không phải là kết hợp sinh ra các tập mục thường xuyên từ dưới lên theokiểu Apriori, do đó giảm kích thước cơ sở mẫu điều kiện sinh ra ở mức tiếpsau của việc tìm kiếm
2.3.1 Cây mẫu thường xuyên
Định nghĩa: FP-Tree là một cây mẫu thường xuyên có cấu trúc như sau:
Cây mẫu bao gồm một nút gốc gán nhãn “null”, một tập các cây con tiền tố như làcác con của nút gốc và một bảng header mục thường xuyên
Mỗi nút trong cây con tiền tố bao gồm có ba trường: tên mục(item name), bộđếm(count) và con trỏ nút (nút -link) Tên mục cho biết mục mà nút biểu diễn, bộđếm cho biết số giao dịch được biểu diễn một phần tử nút gốc cho tới nút này vàcon trỏ nút chỉ tới nút tiếp theo trong cây mà nó có cùng tên hoặc con trỏ nút sẽ là
“null” nếu không có nút cùng tên nào khác
Mỗi giá trị entry trong bảng header mục thường xuyên có hai trường: tên mục vàcon trỏ head trỏ tới một nút trên FP-Tree
2.3.2 Thuật toán xây dựng FP Tree
B1: Duyệt cơ sở dữ liệu lần đầu, tìm tất cả các mục thường xuyên chỉ có một mục và sắp
xếp chúng vào một danh sách L theo thứ tự giảm dần của tần xuất
B2: Duyệt cơ sở dữ liệu lần hai, với mỗi giao dịch, sắp xếp các mục thường xuyên của nó
theo thứ tự trong L và đưa nó vào cây FP-Tree
Trang 27Hình 2.4 Ví dụ minh hoạt xây dựng cây FP Tree
Kết chương hai:
Chương này NVLV đã trình bày và làm rõ các được các vấn đề sau:
Thuật toán Apriori và các nhược điểm của thuật toán
Thuật toán PHP và các kĩ thuật cải tiến so với thuật toán Apriori
Thuật toán Apriori và các ưu điểm so với các thuật toán cổ điển như AprioriĐây là các cơ sở để thiết kế cài đặt hệ thống để phân tích dữ liệu Chương tiếp theo,NVLV sẽ trình bày về thiết kế cài đặt của mạng xã hội chia sẻ đồ vật – MiGi
Trang 28Chương 3: Mô hình mạng chia sẻ đồ
vật và khai thác thông tin.
Chương này sẽ trình bày về:
- Biểu đồ diễn tiến
Thiết kế cơ sở dữ liệu
Thiết kế mô-dul gợi ý
MiGi là một hệ thống website được xây dựng nhằm mục đích tạo ra một cộng độngchia sẻ đồ vật Từ đó giúp đỡ hỗ trợ các gia đình khó khăn, tạo điều kiện để bảo vệ môitrường, xây dựng thói quen tích kiệm trong xã hội MiGi được thiết kế xây dựng với cácmục tiêu sau:
Có tính liên kết lỏng lẻo cao, dễ bóc tách nâng cấp và tái sử dụng
Có khả năng tích hợp với nhiều hệ thống khác nhau, trên nhiều nền tảng
Có khả năng phân tích và xử lý dữ liệu hiệu quả
3.1 Tổng quan về hệ thống.
Hệ thống MiGi được thiết kế để đáp ứng ba nhóm người dùng chủ yếu là:
Nhóm người dùng thông thường
- Cung cấp một môi trường chia sẻ dễ dàng thân thiết, trực quan
- Giúp người dùng dễ dàng giao tiếp và kết nối với nhau
- Có thể tiếp cận hệ thống từ nhiều hệ thống và ứng dụng: ứng dụng mạng xã hội,
Trang 29- Có khả năng phân quyền linh hoạt theo khu vực
3.2 Phân tích yêu cầu.
3.2.1 Sơ đồ use case
a Sơ đồ use case cho người dùng thông thường
Hình 3.1 Sơ đồ Use Case cho người dùng thông thường
b Sơ đồ use case cho người dùng tổ chức từ thiện
Trang 30Hình 3.2 Sơ đồ use case cho nhóm người tổ chức từ thiện
c Sơ đồ use case cho người dùng admin
Hình 3.3 Sơ đồ use case cho nhóm người dùng admin
3.2.2 Đặt tả use case
a Tính năng đăng ký.
Mã use case Migi_UC_01
Trang 31Tên use case Đăng ký
Tác nhân (actor) Tất cả người dùng (User)
Mô tả Use case này cho phép bất kỳ người sử dụng nào cũng có thể
đăng ký để truy nhập hệ thống Người sử dụng muốn tham giathì cần đăng ký để có được tên truy cập và mật khẩu để vàođược hệ thống mạng chia sẻ Migi
Điều kiện đầu vào Người dùng nhập đầy đủ các trường bắt buộc và dữ liệu hợp
lệ
Kết quả đầu ra Người sử dụng đăng ký thành công và có được tên truy cập và
mật khẩu để vào được hệ thống
4 Người sử
dụng
Nhấn vào nút “Đăng ký”
5 Hệ thống Kiểm tra các thông tin cần thiết đã được
điền chưa, tất cả các thông tin đã đúng
5b Hệ thống Nếu các thông tin đăng ký chưa đủ hoặc
Trang 32Bảng3.1 Mô tả tính năng đăng ký
Thông tin đăng ký.
1 Email Address Text
2 Password Test (tối thiểu 6 ký tự)
3 Birthday Ngày tháng năm sinh
4 Location Địa điểm của bản thân
5 Sex Giới tính
Bảng3.2.Thông tin đăng ký
b Tính năng đăng nhập.
Mã use case Migi_UC_02
Tên use case Đăng nhập
Tác nhân (actors) Tất cả người dùng (User)
Mô tả Use case này cho phép xác thực người dùng để họ có thể truy
cập được vào hệ thống nhằm sử dụng một số chức năng tươngứng
Điều kiện đầu vào 1 Người sử dụng có tên truy cập hợp lệ
2 Người sử dụng có mật khẩu hợp lệ
Kết quả đầu ra Người dùng được xác thực và tên truy cập sẽ được hiển thị
Trang 33Vào trang chủ của hệ thống
2 Hệ thống Trang chủ có hiển thị lên màn hình đăng
1 Hệ thống Nếu tên truy cập và mật khẩu không
đúng, đưa ra thông báo và yêu cầu người
Bảng3.3 Mô tả tính năng đăng nhập
Thông tin đăng nhập :
1 Email Address Text