XÂY DỰNG WEBSITE GIỚI THIỆU sản PHẨM sử DỤNG QUẢNG cáo THÔNG MINH sử DỤNG K MEANS

20 718 0
XÂY DỰNG WEBSITE GIỚI THIỆU sản PHẨM sử DỤNG QUẢNG cáo THÔNG MINH sử DỤNG K MEANS

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN HỌC: HỆ CHUYÊN GIA ĐỀ TÀI: XÂY DỰNG WEBSITE GIỚI THIỆU SẢN PHẨM SỬ DỤNG QUẢNG CÁO THÔNG MINH SỬ DỤNG K-MEANS Giáo viên hướng dẫn: Th.s Trần Thanh Hùng Lớp : KHMT1-K5-Nhóm 13 Nhóm sinh viên thực hiện: 1- Trịnh Xuân Đồng 2- Trần Văn Huân 3- Lê Văn Nam Hà Nội, ngày 01 tháng 08 năm 2013 Báo cáo BTL Hệ Chuyên Gia2 MỤC LỤC Phân công công việc .3 Lời Nói Đầu .4 CHƯƠNG I: TỔNG QUAN VỀ BÀI TOÁN PHÂN CỤM DỮ LIỆU Giới thiệu kỹ thuật phân cụm Khai phá liệu (Clustering Techniques in Data Mining) .5 Lĩnh vực áp dụng phân cụm liệu .5 CHƯƠNG II : THUẬT TOÁN KMEANS Mơ tả thuật tốn Các bước thực Nhận xét thuật toán CHƯƠNG III : XÂY DỰNG WEBSITE BÁN HÀNG THƠNG MINH SỬ DỤNG THUẬT TỐN KMEANS .9 Mục đích tốn Cấu trúc liệu toán Dữ liệu vào Dữ liệu Thiết kế CSDL Các thuật toán sử dụng 11 Các bước thực toán 14 CHƯƠNG IV: MỘT SỐ GIAO DIỆN VÀ KẾT QUẢ .16 Giao diện chương trình 16 Kết đạt 19 Hướng phát triển 19 Tài liệu tham khảo 20 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia3 Phân công công việc STT 10 11 Cơng việc Tìm hiểu thuật toán Thiết kế CSDL Sưu tập nguồn liệu Thiết kế giao diện phía người sử dụng Thiết kế giao diện phía quản trị Lập trình Web Xây dựng module ChuanHoaDuLieuSQL Xây dựng module TinhKhoangCach Xây dựng module Thêm liệu Xây dựng module đọc liệu SQL Xây dựng module phân cụm Người thực Tất thành viên Trần Văn Huân Trần Văn Huân Lê Văn Nam Lê Văn Nam Trịnh Xuân Đồng Trần Văn Huân Trần Văn Huân Lê Văn Nam Lê Văn Nam Trịnh Xuân Đồng Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia4 Lời Nói Đầu Hê chuyên gia (HCG) lĩnh vực khoa học máy tính, nghiên cứu thiết kế tác nhân thông minh Các áp dụng HCG đa dạng phong phú, có nhiều hệ thơng minh đời như: hệ thống tư vấn, hệ điều khiển tự động, hệ nhận dạng Kỹ thuật HCG sử dụng việc xây dựng hệ mềm nhằm tạo hệ mềm mang yếu tố thông minh, linh hoạt tiện dụng Một nghiên cứu áp dụng thuật toán K-mean đưa giải thuật phân cụm để gom cụm sản phẩm có thuộc tính tương tự giúp cho việc tìm kiếm tư vấn nhanh chóng xác Giải thuật phân cụm thuật toán đầu vào tập gồm N phân tử K cụm trả kết K cụm tương ứng với phần tử có thuộc tính tương tự khơng trùng lặp Trong q trình thực đề tài, có nhiều cố gắng không tránh khỏi sai sót, mong thầy hướng dẫn góp ý Chúng em xin chân thành cảm ơn thầy Trần Thanh Hùng tận tình hướng dẫn tạo điều kiện tốt trình học tập trình chúng em hồn thành đề tài Nhóm sinh viên thực Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia5 CHƯƠNG I: TỔNG QUAN VỀ BÀI TOÁN PHÂN CỤM DỮ LIỆU Giới thiệu kỹ thuật phân cụm Khai phá liệu (Clustering Techniques in Data Mining) Phân cụm kỹ thuật quan trọng khai phá liệu, thuộc lớp phương pháp Unsupervised Learning Machine Learning Có nhiều định nghĩa khác kỹ thuật này, chất ta hiểu “Phân cụm qui trình tìm cách nhóm đối tượng cho vào cụm (clusters), cho đối tượng cụm tương tự (similar) đối tượng khác cụm khơng tương tự (Dissimilar) nhau” Mục đích phân cụm tìm chất bên nhóm liệu Các thuật tốn phân cụm (Clustering Algorithms) sinh cụm (clusters) Tuy nhiên, khơng có tiêu chí xem tốt để đánh hiệu của phân tích phân cụm, điều phụ thuộc vào mục đích phân cụm như: data reduction, “natural clusters”, “useful” clusters, outlier detection Lĩnh vực áp dụng phân cụm liệu Kỹ thuật phân cụm áp dụng nhiều lĩnh vực như: Marketing: Xác định nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ công ty để giúp cơng ty có chiến lược kinh doanh hiệu hơn; Biology: Phận nhóm động vật thực vật dựa vào thuộc tính chúng; Libraries: Theo dõi độc giả, sách, dự đốn nhu cầu độc giả…; Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia6 Insurance, Finance: Phân nhóm đối tượng sử dụng bảo hiểm dịch vụ tài chính, dự đốn xu hướng (trend) khách hàng, phát gian lận tài (identifying frauds); WWW: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog);… Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia7 CHƯƠNG II : THUẬT TỐN KMEANS Mơ tả thuật tốn K-Means thuật toán quan trọng sử dụng phổ biến kỹ thuật phân cụm Tư tưởng thuật tốn K-Means tìm cách phân nhóm đối tượng (objects) cho vào K cụm (K số cụm xác đinh trước, K nguyên dương) cho tổng bình phương khoảng cách đối tượng đến tâm nhóm (centroid ) nhỏ Thuật tốn K-Means mô tả sau Các bước thực Thuật tốn K-Means thực qua bước sau:  Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster) Mỗi cụm đại diện tâm cụm  Tính khoảng cách đối tượng (objects) đến K tâm (thường dùng khoảng cách Euclidean)  Nhóm đối tượng vào nhóm gần Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia8  Xác định lại tâm cho nhóm  Thực lại bước khơng có thay đổi nhóm đối tượng Nhận xét thuật tốn  Thuật tốn K-mean có nhiều ứng dụng từ mạng Neural network, nhận dạng mẫu, trí tuệ nhân tạo, lĩnh vực sử lý ảnh tư vấn trang Web  Nó áp dụng cho toán phân loại mà liệu có nhiều trường, nhiều thuộc tính với K số loại mà toán muốn phân  Nhược điểm : - Nếu số lượng điểm đầu vào không nhiều việc gom nhóm lúc đầu kết tốn - Số lượng nhóm K phải xác định trước tay - Các thuộc tính điểm có mức đánh giá khơng phân biệt thuộc tính quan trọng thuộc tính - Đối với điểm liệu mà khoảng cách xa trọng tâm gom nhóm dẫn đến việc tính lại trọng tâm khơng cịn xác Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia9 CHƯƠNG III : XÂY DỰNG WEBSITE BÁN HÀNG THƠNG MINH SỬ DỤNG THUẬT TỐN KMEANS Mục đích tốn  Đặt vấn đề : q trình tìm kiếm mua sản phẩm mạng trang Web Người mua chưa biết lên mua mặt hàng mua sản phẩm kèm Các nhà thiết kế trang Web áp dụng thuật tốn K-mean để tư vấn giúp người mua có tư vấn giúp đỡ cách nhanh chóng xác  Thuật tốn áp dụng trực tiếp lên CSDL, phân liệu thành cụm có đặc tính tương tự Nhờ Cấu trúc liệu toán Dữ liệu vào  Danh sách đặc tính sản phẩm (VD : Chất liệu, màu sắc, đơn giá, kích thước…)  Số cụm K mà ta muốn phân cụm đỗi với danh sách Dữ liệu  Danh sách sản phẩm phân vào K cụm  Mỗi cụm chứa đặc tính tương đối gần Thiết kế CSDL  Đỗi với đề tài xây dựng website bán hàng, bên cạnh bảng liệu cần có hệ thống bán hàng, cần bổ sung thêm số bảng để lưu kết trình phân cụm liệu, phục vụ cho trình tư vấn sau  Các bảng cấu trúc liệu cho bảng : Bảng Color – Màu sắc Color ColorID int colorName Nvacrchar(Max) Mã màu Tên màu Bảng Size – Kích cỡ Size SizeID SizeName int Nvacrchar(Max) Mã kích cỡ Tên kích cỡ Bảng Material – Chất liệu Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia10 Material MaterialID MaterialName int Nvacrchar(Max) Mã chất liệu Tên chất liệu Bảng Type – Kiểu dáng Type TypeID int TypeName Nvacrchar(Max) Mã kiểu Tên kiểu Bảng Product – Sản Phẩm Product ProductID ProductName UrlSmallImage UrlLargeImage int Nvacrchar(Max) Nvacrchar(Max) Nvacrchar(Max) Visted ColorID SizeID TypeID Price Sale MaterialID CreateDate int int int int int int int Datetime Mã SP Tên SP Ảnh nhỏ Ảnh lớn Số lượng người xem Mã màu Mã kích cỡ Mã kiểu Đơn giá Khuyến mại Mã chất liệu Ngày tạo Bảng Table_ChuanHoaDuLieu – Chuẩn hóa liệu trước phân cụm ProductID Visted ColorID SizeID TypeID Price Sale MaterialID Table_ChuanHoaDuLieu int Mã SP int Số lượng người xem int Mã màu int Mã kích cỡ int Mã kiểu int Đơn giá int Khuyến mại int Mã chất liệu Bảng Cluster – Cụm sau phân cụm Cluster ProductI int Mã SP 10 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia11 D Cluster Nvacrchar(Max) MÃ cụm Hình : Thiết kế CSDL bảng SQL Server • Các thuật tốn sử dụng Thuật tốn chuẩn hóa liệu rời rạc • Khi xây dựng chương trình thực nghiệm nhóm nhận thấy đỗi với liệu rời rạc (khơng liên tục) kết thuật toán ảnh hưởng nhiều Cụ thể theo hướng xấu (Dữ liệu phân cụm chưa xác) Chính cần thuật tốn để chuẩn hóa liệu trước phân cụm -Ta sử dụng công thức sau : X[i]= (X[i]-Xmin)/(Xmax - Xmin)  X[i] : Giá trị tương ứng với đặc tính X sản phẩm thứ i  Xmax : Giá trị lớn đặc tính X  Xmin : Giá trị lớn đặc tính X • Sau áp dụng CT trên, liệu chuẩn hóa có giá trị nằm miền [0,1] 11 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia12 • Xây dựng công thức ngôn ngữ C# private float tinhMinMaxTB(int Xmin, int Xmax, int xi) { return (xi-Xmin)/(float)(Xmax-Xmin); } • Định nghĩa sản phẩm (hay vector) public class item { public float GheTham { get; set; } public float MauSac { get; set; } public float KichThuoc { get; set; } public float KieuDang { get; set; } public float ChatLieu { get; set; } public float DonGia { get; set; } public float KhuyenMai { get; set; } public string ProductID { get; set; } } • Tính khoảng cách hai sản phẩm private float tinhKhoangCachHaiDiem(item x, item y) { float GheTham = y.GheTham - x.GheTham; float MauSac = y.MauSac - x.MauSac; float KichThuoc = y.KichThuoc - x.KichThuoc; float KieuDang = y.KieuDang - x.KieuDang; float ChatLieu = y.ChatLieu - x.ChatLieu; float DonGia = y.DonGia - x.DonGia; float KhuyenMai = y.KhuyenMai - x.KhuyenMai; GheTham = GheTham * GheTham; MauSac = MauSac * MauSac; KichThuoc = KichThuoc * KichThuoc; KieuDang = KieuDang * KieuDang; ChatLieu = ChatLieu * ChatLieu; DonGia = DonGia * DonGia; KhuyenMai = KhuyenMai * KhuyenMai; float kq = (float)(Math.Sqrt(GheTham + MauSac + KichThuoc + KieuDang + ChatLieu + DonGia + KhuyenMai)); return kq; } • Tính giá trị trung bình cụm private item tinhToanDoTB(int k) { float GheTham = 0; 12 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia13 float MauSac = 0; float KichThuoc = 0; float KieuDang = 0; float ChatLieu = 0; float DonGia = 0; float KhuyenMai = 0; int counter = 0; for (int i = 0; i < tongSoVecTor; i++) { if (ProductID[1, i] == k) { GheTham += vector[i].GheTham; MauSac += vector[i].MauSac; KichThuoc += vector[i].KichThuoc; KieuDang += vector[i].KieuDang; ChatLieu += vector[i].ChatLieu; DonGia += vector[i].DonGia; KhuyenMai += vector[i].KhuyenMai; counter++; } } item kq = new item(); if (counter== 0) { kq.GheTham = 0; kq.KhuyenMai = 0; kq.KichThuoc = 0; kq.KieuDang = 0; kq.MauSac = 0; kq.ChatLieu = 0; kq.DonGia = 0; } else { kq.GheTham = GheTham / (float)counter; kq.KhuyenMai = KhuyenMai / (float)counter; kq.KichThuoc = KichThuoc / (float)counter; kq.KieuDang = KieuDang / (float)counter; kq.MauSac = MauSac / (float)counter; kq.ChatLieu = ChatLieu / (float)counter; kq.DonGia = DonGia / (float)counter; } return kq; } 13 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chun Gia14 • Tính khoảng cách từ sản phẩm đến cụm private float tinhKhoangCachDenCum(item x, int k) { //tim toa TB cua cuam item TB = tinhToanDoTB(k); //tinh khoang cach float KQ = tinhKhoangCachHaiDiem(x, TB); return KQ; } Các bước thực toán  B1 : Chuẩn hóa liệu SQL  B2 : Đọc liệu lưu vào biến  B3 : Nhập số cụm K  B4 : Chọn ngẫu nhiên K phần tử làm trọng tâm  B5 : Tính khoảng cách từ phần tử đến K cụm  B6 : Tìm khoảng cách nhỏ gán phần tử vào cụm  B7 : Kiểm tra xem phần tử cụm có thay đổi khơng, khơng có thay đổi khỏi chương trình, ngược lại quay lại B5 Mã chương trình thực public void xuly() { chuanHoaDuLieu(); docDulieu(); //phan cum ngau nhien cho cac phan tu //ProductID[1, courter] =- 1; for (int i = 0; i < socum; i++) ProductID[1, i] = i; //tien hanh phan cum du lieu while (true) { int[,] TG=new int[2,tongSoVecTor]; for (int k = 0; k < tongSoVecTor; k++) { TG[0, k] = ProductID[0, k]; TG[1, k] = ProductID[1, k]; } float[] khoangcach = new float[socum]; for (int j = 0; j < tongSoVecTor; j++) { 14 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia15 for (int i = 0; i < socum; i++) { khoangcach[i] = tinhKhoangCachDenCum(vector[j], i); } //tim gia tri nho nhat la khoang cach tu diem j den cum i float = khoangcach[0]; int chiso = 0; for (int k = 1; k < socum; k++) { if (khoangcach[k] < min) { = khoangcach[k]; chiso = k; } } ProductID[1, j] = chiso; } //so sanh xem co su khac biet hay khong int check = 0; for (int k = 0; k < tongSoVecTor; k++) { if (TG[1, k] != ProductID[1, k]) { check = 1; break; } } if (check == 0) break; } //sau phan cum xong thi insert vao CSDL xoaTatCaCacCum(); for (int i = 0; i < tongSoVecTor; i++) { string sql = "insert into Cluster values('" + ProductID[0,i] + "','" +ProductID[1,i]+ "')"; new KetNoiCSDL().excuteNonquery(sql); } } 15 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia16 CHƯƠNG IV: MỘT SỐ GIAO DIỆN VÀ KẾT QUẢ Giao diện chương trình  Sau truy cập vào trang Web bạn thực thao tác đăng nhập bạn có tài khoản tìm kiếm sản phẩm mà cụ thể mặt hàng quần áo hãng Việt Tiến Xem chi tiết cụ thể đầy đủ thông tin sản phẩm 16 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia17  Trong mục Danh Mục Sản Phẩm bạn lựa chọn thể loại mà trang web bán như: áo sơ mi ngắn tay, áo sơ mi dài tay, quần Jean, quần kaki… 17 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia18  Ở trang quản trị Admin kiểm tra hoạt động trang Web xem có cố với trang Web hay khơng Đồng thời cập nhật hàng hóa có hàng nhập sửa chửa thơng tin sản phẩm bị sai, xóa sản phẩm khơng cịn lưu thơng 18 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia19  Khi bạn chọn sản phẩm giao diện chuyển tới trang chi tiết sản phẩm trang bạn xem đầy đủ thơng tin sản phẩm sơ lượng cịn giá tiền mà bạn phải trả thông tin khuyến mại cho sản phẩm bạn có thêm sản phẩm vào giỏ hàng mua sản phẩm đồng ý Ngoài hệ thống sử dụng thuật toán K-mean để phân cụm liệt kê tư vấn sản phẩm tương ứng kèm theo sản phẩm mà khách hàng lựa chọn Kết đạt  Nghiên cứu tìm hiểu, nắm rõ thuật tốn Kmeans  Xây dựng thành cơng chương trình  Đã tư vấn cho khách hàng mua hàng  Xây dựng giao diện thân thiện  Hỗ trợ quản trị CSDL Hướng phát triển  Hệ thống nên áp dụng thêm giải thuật khác để tăng hiệu tư vấn  Sử dụng Apriori  Sử dụng Mạng Noron  Sử dụng Knn… 19 Nhóm 13 lớp KHMT1-K5 Báo cáo BTL Hệ Chuyên Gia20 4.Tài liệu tham khảo      Gi trình Lý Thuyết Nhận Dạng đại học FPT http://en.wikipedia.org/wiki/K-means_clustering http://bis.net.vn/forums/t/374.aspx http://www.mathworks.com/help/stats/kmeans.html http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html 20 Nhóm 13 lớp KHMT1-K5 ... tâm khơng cịn xác Nhóm 13 lớp KHMT1 -K5 Báo cáo BTL Hệ Chuyên Gia9 CHƯƠNG III : XÂY DỰNG WEBSITE BÁN HÀNG THƠNG MINH SỬ DỤNG THUẬT TỐN KMEANS Mục đích tốn  Đặt vấn đề : trình tìm kiếm mua sản phẩm. .. (counter== 0) { kq.GheTham = 0; kq.KhuyenMai = 0; kq.KichThuoc = 0; kq.KieuDang = 0; kq.MauSac = 0; kq.ChatLieu = 0; kq.DonGia = 0; } else { kq.GheTham = GheTham / (float)counter; kq.KhuyenMai = KhuyenMai... sửa chửa thông tin sản phẩm bị sai, xóa sản phẩm khơng cịn lưu thơng 18 Nhóm 13 lớp KHMT1 -K5 Báo cáo BTL Hệ Chuyên Gia19  Khi bạn chọn sản phẩm giao diện chuyển tới trang chi tiết sản phẩm trang

Ngày đăng: 11/06/2015, 15:29

Từ khóa liên quan

Mục lục

  • 1. Giới thiệu về kỹ thuật phân cụm trong Khai phá dữ liệu (Clustering Techniques in Data Mining)

  • 2. Lĩnh vực áp dụng phân cụm dữ liệu

  • 1. Mô tả thuật toán

  • 2. Các bước thực hiện

  • 3. Nhận xét thuật toán

  • 1. Mục đích bài toán

  • 2. Cấu trúc dữ liệu của bài toán

  • 3. Các bước thực hiện bài toán

  • 1. Giao diện chương trình

  • 2. Kết quả đạt được

  • 3. Hướng phát triển

  • 4. Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan