ĐỒ ÁN TỐT NGHIỆP :KHAI PHÁ DỮ LIỆU WEBLOG SỬ DỤNG PHÂN CỤM KMEANS VÀ LUẬT KẾT HỢP. khai phá dữ liệu weblog python. Và nội dung đề tài được bố cục gồm 3 chương sau:Chương 1. Giới thiệu về khai phá dữ liệu web. Nội dung bao gồm: Phát hiện tri thức và khai phá dữ liệu; Giới thiệu về thuật toán Apriori và Kmeans.Chương 2. Weblog và khai phá dữ liệu weblog. Nội dung chính là trình bày về weblog là gì và có bao nhiêu loại weblog được sử dụng để thu thập thông tin người dùng, các loại định dạng của weblog.Chương 3 Thử nghiệm khai phá dữ liệu weblog đại học Vinh. Nội dung là Cài đặt các chương trình cần thiết và cách thức triển khai với weblog đại học Vinh.
Trang 1Nghệ An – 2019 TRƯỜNG ĐẠI HỌC VINH VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
Trang 2LỜI CAM ĐOAN
Tôi là Phan Đăng Nhật cam kết đồ án tốt nghiệp 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 TS Phan Anh Phong
Các kết quả nêu trong đồ án tốt nghiệp là trung thực, không phải sao chếp của bất kỳ công trình nào khác
Nghệ An, ngày 05 tháng 5 năm 2019
Sinh viên
Phan Đăng Nhật
Trang 3Mục Lục
Trang 4DANH MỤC HÌNH VẼ, ĐỒ THỊ
Trang 5LỜI MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển của internet và tác động của
nó lên đời sống văn hóa, kinh tế cũng như chính trị Lĩnh vực khai phá dữ liệuWeb được sự quan tâm và đầu tư của rất nhiều nhà nghiên cứu
Việc thu thập các thói quen của người dùng để từ đó chúng ta có thể tổ chứccũng như tìm kiếm các thông tin có lợi và hiệu quả trong thương mại điện tử.Việc thu thập thông tin dữ liệu quá lớn và việc phân tích cũng quá là khó khănnếu làm việc một cách thủ công để tìm khám phá ra các hành vi người dùng khitruy cập một website nào đó
Chính vì vậy, việc khai phá tri thức từ weblog một loại nhật kí web giúp taphần nào tìm hiểu được hành vi của người dùng để từ đó có thể sử dụng chúngtrong thương mại điện tử cũng như tạo ra những trang web thân thiện với ngườidùng
Vậy nên tác giả chọn đề tài “Khai phá dữ liệu Weblog sử dụng
phân cụm K-Means và luật kết hợp” để làm đồ án tốt nghiệp của
mình
Và nội dung đề tài được bố cục gồm 3 chương sau:
Chương 1 Giới thiệu về khai phá dữ liệu web Nội dung bao gồm: Phát
hiện tri thức và khai phá dữ liệu; Giới thiệu về thuật toán Apriori và Kmeans
Chương 2 Weblog và khai phá dữ liệu weblog Nội dung chính là trình bày
về weblog là gì và có bao nhiêu loại weblog được sử dụng để thu thập thông tinngười dùng, các loại định dạng của weblog
Chương 3 Thử nghiệm khai phá dữ liệu weblog đại học Vinh Nội dung là
Cài đặt các chương trình cần thiết và cách thức triển khai với weblog đại họcVinh
Trang 6LỜI CẢM ƠN
Trong khi em thực hiện đồ án tốt nghiệp với đề tài “Khai phá dữ liệu Weblog sử dụng phân cụm K-Means và luật kết hợp”, được
sự hướng dẫn cũng như tạo mọi điều kiện của các thầy cô trong Viện Kỹ Thuật
và Công Nghệ để em hoàn thành đồ án tốt nghiệp của mình
Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới TS.Phan Anh Phong người đã
trực tiếp hướng dẫn tận tình cho em từng hướng đi, cũng như các kinh nghiệmtrong quá trình làm đồ án tốt nghiệp Để em từng bước, từng bước hoàn thiện đồ
án của mình Đó là những kinh nghiệm quý báu trong quá trình hoàn thành đồ án,cũng như sau này tìm hiểu hay nghiên cứu về một lĩnh vực nào đó trong ngànhcông nghệ thông tin
Trong khi làm đồ án tốt nghiệp, do kiến thức của mình và khả năng của mìnhcòn hạn chế nên không thể tránh khỏi sai sót Mong các thầy cô và các bạn góp ýcho em để có thể hoàn thiện hơn Em xin chân thành cảm ơn!
Sinh viên
Phan Đăng Nhật
Trang 7Chương 1 : Giới thiệu về khai phá dữ liệu web
1.1 Khai phá dữ liệu và khai phá tri thức
1.1.2 Quá trình khai phá tri thức
- Làm sạch dữ liệu : loại bỏ dữ liệu nhiễu và không nhất quán
- Tích hợp dữ liệu : kết hợp nhiều nguồn dữ liệu
- Lựa chọn dữ liệu : dữ liệu liên quan đến nhiệm vụ phân tích sẽ được lấy từ
- Đánh giá mẫu : các mẫu dữ liệu được đánh giá
- Biểu diễn tri thức : sử dụng các công cụ trực quan để biểu diễn các kết quảkhai thác được
1.1.3 Nhiệm vụ của khai phá dữ liệu :
Những nhiệm vụ cơ bản nhất của khai phá dữ liệu là:
- Phân cụm, phân loại, phân nhóm, phân lớp
- Khai phá luật kết hợp
- Lập mô hình dự báo
- Phân tích sự tiến hóa
1.1.4 Một số ứng dụng của khai phá dữ liệu :
- Thương mại: Phân tích dữ liệu bán hàng và thi trường, phân tích đầu tư,quyết định cho vay, phát hiện gian lận
- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tíchkết quả thử nghiệm
- Thông tin khoa học: dự báo thời tiết, cơ sở dữ liệu sinh học: Ngân hànggen, khoa học địa lý: dự báo động đất
- Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet…
Trang 8Hình 1.1 : Quy trình khai phá tri thức
1.2 Phân cụm K-means
Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu Có rất nhiều định
nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm làcác qui trình tìm cách nhóm các đối tượng đã cho vào các cụm, sao cho các đốitượng trong cùng 1 cụm tương tự nhau và các đối tượng khác cụm thì khôngtương tự nhau
Mục đích của phân cụm là tìm ra bản chất bên trong của các nhóm dữ liệu Không gian metric là một tập hợp trong đó có xác định các “khoảng cách”
giữa từng cặp phần tử, với những tính chất thông thường của khoảng cách hìnhhọc
Trang 9- δ(x, y)=0 nếu x =y;
- δ(x, y) = δ(y, x) với mọi x, y; (iv) δ(x, y) ≤ δ(x, z)+δ(z, y)
Hàm δ(x, y) được gọi là một metric của không gian Các phần tử của X đượcgọi là các điểm của không gian này
Sau khi chuẩn hoá, độ tương tự của hai đối tượng dữ liệu x, y được xác địnhbằng các metric như sau:
nguyên dương
biệt của khoảng cách Minskowski trong trường hợp q=2)
- Khoảng cách Manhattan: , (trường hợp đặc biệtcủa khoảng cách Minskowski trong trường hợp q=1)
hợp của khoảng cách Minskowski trong trường hợp
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật
phân cụm Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm cácđối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, Knguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đếntâm nhóm (centroid ) là nhỏ nhất
Thuật toán K-Means :
- Mô tả :
Trang 10Hình 2.2: Sơ đồ thuật toán K-Means
3 Nhóm các đối tượng vào nhóm gần nhất
4 Xác định lại tâm mới cho các nhóm
5 Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của cácđối tượng
- Ví dụ minh họa :
Trang 11Giả sử mình có 4 điểm A, B, C, D như bảng dưới đây Mỗi điểm được đặctrưng bởi 2 tọa độ X và Y Yêu cầu là nhóm 4 điểm vào 2 nhóm (K = 2) dựa vàođặc trưng của chúng.
Bước 1 : Khởi tạo tâm cho 2 nhóm Giả sử ta chọn :
- A là tâm của nhóm thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1))
- B là tâm của nhóm thứ 2 (tạo độ tâm nhóm thứ hai c2 (2,1))
Bước 2 : Tính khoảng cách từ các đối tượng đến tâm ( Khoảng cách Ơ-Clit)
1 0
2
(1,1) 1
0 1 3.61 5 =
Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâmc2(2,1) là 2.83 được tính như sau:
Trang 120 1 0 0 0 1
group G
Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫn không đổi, c1(1,1)
Tâm nhóm 2 được tính như sau:
3 3
c c
group group
Trang 139 7 ,
2 2
c c
=
= ÷
1 2
Trang 14Thuật toán K-Means có ưu điểm là đơn giản, dễ hiểu và cài đặt Tuy nhiên,một số hạn chế của K-Means là hiệu quả của thuật toán phụ thuộc vào việc chọn
số nhóm K (phải xác định trước) và chi phí cho thực hiện vòng lặp tính toánkhoảng cách lớn khi số cụm K và dữ liệu phân cụm lớn
1.3 Luật kết hợp và thuật toán Apriori
Luật kết hợp là phương tiện hữu ích để khám phá các mối liên kết trong dữ liệu Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa
các giá trị dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai phá dữ liệu
Mục đích của luật kết hợp là tìm ra sự kết hợp hay tương quan giữa các item
Một luật kết hợp được định nghĩa là một mệnh đề kéo theo có dạngX ⇒Y
,trong đóX,Y ⊆I
thõa mãn điều kiện X ∩Y =
Ø X, Y được gọi là các tập mục(itemset) Tập X gọi là nguyên nhân, tập Y gọi là hệ quả
Theo quan điểm thống kê: X được gọi là biến độc lập và Y được gọi là biến phụthuộc
Độ hỗ trợ của một tập mục X trong cơ sở dữ liệu T là tỉ lệ giữa số lượng
các bản ghi có chứa tập mục X và tổng số bản ghi trong T (hay là phần trăm củacác bản ghi trong T có chứa tập mục X) Kí hiệu sup(X) có công thức sau:
{ | } ( ) 1)
sup(
N
X n T
T X T t X
Trong đó: n(X) là số giao dịch chứa X, N là tổng số giao dịch
Trang 15{ | } ( ) 1)
sup(
N
Y X n T
T Y X T t Y X
Trong đó: n(X) là số giao dịch chứa X, N là tổng số giao dịch
Độ tin cậy của một luật kết hợp X ⇒Y
là tỉ lệ giữa số lượng các bản ghitrong T chứa tập mục X∪Y
so với số lượng các bản ghi trong T chứa tập mục
) (
) (
|
| )
n
Y X n T
X D t
T Y X T t Y X conf
Trong đó: n(X) là số giao dịch chứa X
Tập mục X được gọi là tập mục thường xuyên (frequent itemset) nếu
sup min
)
sup(X ≥
, với minsup là độ hỗ trợ tối thiểu cho trước
Ngược lại, một tập mục không thường xuyên X là tập mục mà độ hỗ trợ của
nó nhỏ hơn độ hỗ trợ tối thiểu cho trước
Lift : là một độ đo về sự tương quan giữa các tập thường xuyên với nhau Giả
sử ta có 2 tập thường xuyên X và Y Sự xuất hiện của tập thường xuyên X là độclập với sự xuất hiện của tập thường xuyên Y nếu supp(X U Y) =supp(X).supp(Y) Ngược lại thì tập thường xuyên X và Y là phụ thuộc và tươngquan lẫn nhau
Lift của luật kết hợp X=>Y là tỷ số giữa giao dịch hỗ trợ X và Y với tích củacác giao dịch hỗ trợ X và các giao dịch hỗ trợ Y
Giá trị lift(X==>Y) nằm trong đoạn [0,+∞]
Nếu lift(X==>Y) nhỏ hơn 1 thì sự xuất hiện của X là tương quan nghịch sovới sự xuất hiện của Y Ngược lại, lift(X==>Y) lớn hơn 1 thì sự xuất hiện của X
là tương quan thuận so với sự xuất hiện của Y
Nếu lift(X==>Y) bằng 1 thì sự xuất hiện của X và Y là độc lập với nhau
Trang 16Nếu X ⇒Y
và Y ⇒Z
, chúng ta không thể suy ra X ⇒Z
1.3.1 Thuật toán Apriori :
Bước 1: Duyệt toàn bộ giao dịch trong cơ sở dữ liệu để có được tập ứng cử
viên C1 (1-itemset) và độ hỗ trợ supp tương ứng So sánh sup với minsup để có
được tập mục thường xuyên F1 (1-itemset)
Bước 2: Nối Fk-1 với Fk-1 để sinh ra tập ứng viên k-itemset Ck
Bước 3: Duyệt các giao dịch trong cơ sở dữ liệu để tính độ hỗ trợ sup của mỗi
tập ứng cử viên k-itemset Ck So sánh độ hỗ trợ supp với minsup (supp ≥ minsup)
để thu được tập mục thường xuyên k-itemset (Fk)
Bước 4: Lặp bước 2 cho đến khi tập ứng cử viên Ck bằng rỗng
Bước 5: Với mỗi tập mục thường xuyên F, sinh tất cả các tập con S không
rỗng của F
Bước 6: Với mỗi tập con S, tạo ra các luật có dạng S⇒(F−S)
nếu độ tin cậycủa nó thỏa mãn ngưỡng độ tin cậy tối thiểu (minconf)
Ví dụ : Cho một ví dụ tập các giao dịch từ các hóa đơn mua hàng như sau:
TID Các món hàng được mua (Item)
Trang 177 { a, x, m }Cho Min Support = 30%, Min Confidence = 60%
Ở bước kết Từ F1 trên ta có tập C2 gồm các cặp 2-item:
{{a, x}, {a, m}, {a,t}, {x,m}, {x,t}, {m,t}}
Trang 18m → x có độ Confidence 3/3 = 100%
Ở bước lược bỏ ta có F2 = {{a, x}, {x,m}}
Ở bước kết Từ F2 ta có tập C3 gồm các cặp 3-item là {∅}
Thuật toán kết thúc
1.4 Khai phá dữ liệu Web
Khai thác web là ứng dụng các kỹ thuật khai thác dữ liệu để trích xuất kiến
thức từ dữ liệu Web, trong đó ít nhất một dữ liệu cấu trúc hoặc sử dụng (Web log)được sử dụng trong quá trình khai thác
Các loại khai phá dữ liệu Web
Hình 3.3: Các loại khai phá dữ liệu Web
- Khai thác nội dung web : quá trình khám phá thông tin hữu ích từ dữ liệu
văn bản, hình ảnh, âm thanh hoặc video trên web
- Khai thác cấu trúc web : quá trình sử dụng lý thuyết đồ thị để phân tích nút
và cấu trúc kết nối của một trang web
- Khai thác sử dụng web : ứng dụng sử dụng khai thác dữ liệu để phân tích
và khám phá sở thích của người dùng thông qua dữ liệu trên web
Trang 19Chương 2 : Weblog và khai phá dữ liệu Weblog
Web log file là các tệp chứa thông tin về hoạt động của khách truy cập trang web Web log file được tạo bởi các máy chủ web tự động Mỗi khi khách truy cập
yêu cầu bất kỳ tệp nào (trang, hình ảnh, v.v.) từ trang web, thông tin về yêu cầucủa anh ta sẽ được thêm vào tệp nhật ký(file log) hiện tại Hầu hết các tệp nhật ký
có định dạng văn bản và mỗi mục nhật ký (hit) được lưu dưới dạng một dòng vănbản Tệp nhật ký(log file) phạm vi 1KB đến 100MB
2.1 Vị trí của tệp weblog:
Web log file được đặt ở ba vị trí khác nhau
- Nhật ký máy chủ web(Web server logs): Tệp nhật ký web(web log file)
cung cấp việc sử dụng dữ liệu chính xác và đầy đủ nhất cho máy chủ web.Tệp nhật ký (log file) không ghi lại các trang được lưu trong bộ nhớ cache
Dữ liệu của các tệp nhật ký là nhạy cảm, thông tin cá nhân để máy chủ webgiữ chúng
- Máy chủ proxy web(web proxy server): Máy chủ proxy web nhận yêu cầu
HTTP từ người dùng, đưa chúng đến máy chủ web, sau đó kết quả đượcchuyển đến máy chủ web và trả về cho người dùng Khách hàng gửi yêucầu đến máy chủ web thông qua máy chủ proxy Hai nhược điểm là: Xâydựng máy chủ Proxyserver là một nhiệm vụ khó khăn Lập trình mạng nângcao, như TCP / IP, được yêu cầu cho việc xây dựng này Việc chặn yêu cầu
bị hạn chế
- Clien Brower : Tệp nhật ký có thể nằm trong cửa sổ trình duyệt của máykhách HTTP Cookie được sử dụng cho trình duyệt của khách hàng CácHTTP Cookie này là những mẩu thông tin được tạo bởi một máy chủ web
và được lưu trữ trong máy tính của người dùng, sẵn sàng cho việc truy cậptrong tương lai
2.2 Các loại Weblog
Có bốn loại tệp nhật ký máy chủ :
Trang 20- Tệp nhật ký truy cập (Access Log File) : Dữ liệu của tất cả các yêu cầu đến
và thông tin về máy khách của máy chủ Nhật ký truy cập ghi lại tất cả cácyêu cầu được xử lý bởi máy chủ
- Tệp nhật ký lỗi (Error Log File) : danh sách lỗi nội bộ Bất cứ khi nào xảy
ra lỗi, trang đang được khách hàng yêu cầu đến máy chủ web, mục nhậpđược thực hiện trong nhật ký lỗi Truy cập và nhật ký lỗi phần lớn được sửdụng, nhưng tác nhân và nhật ký tham chiếu có thể hoặc không thể kíchhoạt tại máy chủ
- Tệp nhật ký tác nhân( Agent Log File) : Thông tin về trình duyệt ngườidùng, phiên bản trình duyệt
- Tệp nhật ký tham chiếu( Referrer Log File) : Tệp này cung cấp thông tin vềliên kết và chuyển hướng khách truy cập đến trang web
Định dạng NCSA là một loại ghi nhật ký phía máy chủ có thể được bật trên
một nhóm URL Định dạng tệp nhật ký chung NCSA là định dạng dựa trên vănbản ASCII cố định không thể tùy chỉnh
Cú pháp NCSA được ghi theo thứ tự bảng sau :
Địa chỉ máy chủ từ xa(remote host
address) Địa chỉ IP của người đã thực hiện yêucầu.Tên nhật ký từ xa(remote log name) Luôn là dấu “-“
Tên người dùng (user name) Tên của người dùng được xác thực đã
Trang 21truy cập máy chủ Người dùng ẩn danhđược chỉ định bằng dấu gạch nối.
Ngày, giờ, múi giờ (date, time) Ngày, giờ và múi giờ địa phương tại nơi
người dùng gửi yêu cầuYêu cầu và phiên bản giao thức(request
and protocol version)
Phiên bản giao thức HTTP mà người yêucầu đã sử dụng
Mã trạng thái dịch vụ(Service status
Địa chỉ IP của người gửi 172.21.13.45
Tên người dùng là Microsoft \ JohnDoe
Nhật ký được ghi lại vào ngày 7 tháng 4 năm 2005 lúc 17:39:04 tại múi giờ -8Yêu cầu và phiên bản giao thức là "GET /scripts/iisadmin/ism.dll?http/servHTTP / 1.0"
Mã trạng thái là 200 OK
Số byte được gửi bởi máy khách là 3401
2.3.2 Định dạng IIS
Định dạng IIS là một loại ghi nhật ký phía máy chủ có thể được bật trên một
nhóm URL Định dạng tệp nhật ký IIS là định dạng dựa trên văn bản ASCII cốđịnh không thể tùy chỉnh
Cú pháp IIS được ghi theo thứ tự bảng sau :
Client IP address Địa chỉ IP của người thực hiện yêu cầu
User name Tên của người dùng được xác thực đã truy cập máy
Trang 22Trường Mô tả
chủ Người dùng ẩn danh được chỉ định bằng dấugạch nối
Date Ngày mà các hoạt động xảy ra
Time Giờ địa phương mà tại đó xảy ra các hoạt động
Service and
instance
Tên và số dịch vụ internet đang chạy trên máy khách
Server name Tên máy chủ
Server IP address Địa chỉ máy chủ
Time taken Khoảng thời gian mà hành động thực hiện, tính bằng
Trang 23Mục tiêu truy cập ,ví dụ Default.htm.
Parameters Các tham số được truyền cho một scrip
Ví dụ :
192.168.114.201, -, 03/20/05, 7:55:20, W3SVC2, SERVER,
172.21.13.45, 4502, 163, 3223, 200, 0, GET, /DeptLogo.gif, -,
2.3.3 Định dạng W3C
Định dạng W3C cho phép người dùng chọn thuộc tính, người dùng muốn
đăng nhập cho từng yêu cầu Thông thường tệp weblog chứa dữ liệu như trênmạng
- remotehost - tên miền hoặc địa chỉ IP
- rfc931 - tên đăng nhập từ xa của người dùng
- Authuser - nhận dạng người dùng được sử dụng trong yêu cầu SSL thànhcông
- [date] - ngày và giờ của yêu cầu (ví dụ: ngày, tháng, năm, giờ, phút,
- thứ hai, khu vực)
- "request" - dòng yêu cầu chính xác như nó đến từ máy khách
- status - mã trạng thái HTTP gồm ba chữ số được trả về cho máy khách(chẳng hạn như 404 cho Trang không tìm thấy hoặc 200 cho Yêu cầu đượcthực hiện)
Trang 24- byte - số byte được trả về trình duyệt máy khách cho đối tượng được yêucầu ECFL có hai phần tử bổ sung:
• tham chiếu(referrer) - URL của máy chủ giới thiệu và tệp được yêu cầu
2.4 Khai phá dữ liệu Weblog
2.4.1 Các ứng dụng khi phân tích dữ liệu Weblog
Cá nhân hóa nội dung web :
Cá nhân hóa trang web có thể được định nghĩa là quá trình tùy chỉnh nộidung và cấu trúc của một trang web theo nhu cầu cụ thể và riêng biệt của mỗingười dùng để tận dụng hành vi điều hướng của người dùng
Cá nhân hóa rất quan trọng trong việc tạo mối quan hệ sâu sắc hơn, để xâydựng các chiến lược tiếp thị chấp nhận được và tự động hóa việc quảng bá sảnphẩm cho khách hàng tiềm năng Ngoài ra, khai thác sử dụng web nhằm mụcđích có được thông tin hỗ trợ thiết kế trang web để cho phép truy cập dễ dànghơn và nhanh hơn từ phía khách hàng
Các bước của quy trình cá nhân hóa Web bao gồm:
a) thu thập dữ liệu Web,
b) mô hình hóa và phân loại các dữ liệu này (giai đoạn tiền xử lý),
c) phân tích dữ liệu được thu thập
d) xác định các hành động nên được thực hiện