nghiên cứu về GIS và logic mờ áp dụng cho bài toán phân lớp khách hàng tại VNPT thái nguyên

88 412 0
nghiên cứu về GIS và logic mờ áp dụng cho bài toán phân lớp khách hàng tại VNPT thái nguyên

Đ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

LỜI CẢM ƠN Trong thời gian làm đồ án tốt nghiệp, em nhận nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình thầy cô, gia đình bạn bè Em xin gửi lời cảm ơn chân thành đến thầy Trần Hải Thanh, giảng viên Bộ môn Khoa Học Máy Tính - trường ĐH CNTT&TT, người tận tình hướng dẫn, bảo em suốt trình làm đồ án Em xin chân thành cảm ơn thầy cô giáo trường ĐH CNTT&TT nói chung, thầy cô Bộ môn Khoa Học Máy Tính nói riêng dạy dỗ cho em kiến thức môn đại cương môn chuyên ngành, giúp em có sở lý thuyết vững vàng tạo điều kiện giúp đỡ em suốt trình học tập Cuối cùng, em xin chân thành cảm ơn gia đình bạn bè, tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt trình học tập hoàn thành khoá luận tốt nghiệp Thái Nguyên, ngày 06 tháng năm 2016 Sinh Viên Thực Hiện Trần Minh Hoàng LỜI CAM ĐOAN Tôi xin cam đoan số liệu kết nghiên cứu đồ án trung thực chưa sử dụng để bảo vệ học vị Mọi giúp đỡ cho việc thực đồ án cảm ơn thông tin trích dẫn đồ án rõ nguồn gốc rõ ràng phép công bố Thái Nguyên, ngày 06 tháng năm 2016 Sinh Viên Thực Hiện Trần Minh Hoàng MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii MỞ ĐẦU CHƯƠNG 1: CÔNG CỤ THỰC HIỆN 1.1.Ngôn ngữ lập trình C# 1.1.1.Lịch sử hình thành 1.1.2.Đặc điểm ngôn ngữ 1.1.3.Cách thức ứng dụng C# hoạt động 1.1.4.Ngôn ngữ C# ngôn ngữ khác 1.1.5.Kiểu liệu C# 1.1.6.Toán tử C# 10 1.1.7.GMap.NET cho ngôn ngữ C# 11 1.2.Công cụ quản lý liệu SQL 13 1.2.1.Lịch sử phát triển 13 1.2.2.Đặc điểm SQL Server đối tượng làm việc 13 1.2.3.Các định nghĩa SQL 15 1.2.4.Những cú pháp 16 1.2.5.Các chế độ bảo mật 18 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 19 2.1.Tập mờ 19 2.1.1.Khái niệm tập rõ 19 2.1.2.Khái niệm tập mờ 19 2.1.3.Tập mờ trực cảm 20 2.2.Các đặc trưng tập mờ 21 2.3.Số mờ tập mờ lồi 23 2.3.1.Tập mờ lồi số mờ 23 2.3.2.Các hàm thuộc tập mờ 23 2.4.Các phép toán tập mờ 27 2.4.1.So sánh tập mờ 27 2.4.2.Các phép toán tập mờ 27 2.5.Các kỹ thuật phân loại liệu 31 2.5.1.Giới thiệu kỹ thuật phân cụm Khai phá liệu (Clustering Techniques in Data Mining) 31 2.5.2.Kỹ thuật phân lớp liệu 31 2.5.3.Các phương pháp tính khoảng cách 33 2.5.4.Thuật toán K-Means 34 2.6.Hệ thống thông tin địa lý 38 CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 40 3.1.Mô tả toán 40 3.2.Xây dựng chức chương trình 40 3.2.1.Cấu trúc sở liệu sử dụng chương trình 40 3.2.2.Xây dựng giao diện form 43 3.2.3.Xây dựng chức chương trình 45 3.3.Ứng dụng thuật toán K-Means vào việc phân loại khách hàng 53 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 60 NHẬN XÉT CỦA GIÁO VIÊN 61 TÀI LIỆU THAM KHẢO 62 DANH MỤC HÌNH ẢNH Hình 1.1.Các từ khóa thông dụng Hình 1.2.Giao diện ứng dụng console application Hình 1.3.Giao diện ứng dụng window application Hình 1.4.Giao diện ứng dụng web application Hình 1.5.Khái quát NET Framework Hình 1.6.GMap.NET 12 Hình 1.7.Các nguồn cung cấp liệu đồ 12 Hình 2.1.Các tập mờ tam giác 24 Hình 2.2.Tập mờ hình thang 24 Hình 2.3.Tập mờ L 25 Hình 2.4.Tập mờ Gamma tuyến tính 26 Hình 2.5.Tập mờ Singleton 26 Hình 2.6.Hợp hai tập mờ A B 28 Hình 2.7.Giao hai tập mờ A B 28 Hình 2.8.Phần bù tập mờ A 30 Hình 2.9.Sơ đồ thuật toán K-Means 34 Hình 2.10.Khởi tạo trọng tâm 35 Hình 2.11.Trọng tâm 36 Hình 2.12.Trọng tâm 37 Hình 3.1.Bảng chi tiết dịch vụ 41 Hình 3.2.Bảng dịch vụ 41 Hình 3.3.Bảng danh mục khách hàng 41 Hình 3.4.Bảng khách hàng 41 Hình 3.5.Bảng huyện 42 Hình 3.6.Bảng phường 42 Hình 3.7.Bảng tỉnh 42 Hình 3.8.Mối quan hệ bảng 43 Hình 3.9.Giao diện 43 Hình 3.10.Giao diện thêm thuê bao 44 Hình 3.11.Giao diện tra cứu thông tin 44 Hình 3.12.Giao diện phân loại khách hàng 45 Hình 3.13.Đặc tính đồ GMap 45 Hình 3.14.Bản đồ GMap sau thiết lập 46 Hình 3.15.Đánh dấu đồ 48 Hình 3.16.Kết trả 49 Hình 3.17.Bố cục bảng Excel 51 Hình 3.18.Sơ đồ thuật toán 54 Hình 3.19.Kết sau phân loại 59 MỞ ĐẦU Chúng ta sống thời đại mới, thời đại phát triển rực rỡ CNTT CNTT bước phát triển cao số hóa tất liệu thông tin, luân chuyển mạnh mẽ kết nối tất lại với Xu toàn cầu hóa internet diễn mạnh mẽ khắp giới, Việt Nam ngoại lệ Số người dùng internet Việt Nam tính đến cuối tháng 6/2015 vượt 45 triệu người, chiếm 48% dân số Việt Nam Internet bùng nổ đặt nhiều hội thách thức cho phát triển kinh tế – xã hội nước ta Song song với đó, dịch vụ giá trị gia tăng (VAS – Value added service), dịch vụ Internet phát triển mạnh Như vậy, với tình hình tại, số lượng hộ dân sử dụng dịch vụ Internet, MyTV, điện thoại… ngày tăng Việc thống kê báo cáo số tiền cước, số tài khoản hoạt động… gặp nhiều khó khăn thông tin ngày nhiều Do đó, phần mềm quản lý phân loại khách hàng cần thiết Để thực điều này, với trợ giúp công nghệ thông tin, hàng loạt công cụ hỗ trợ phát triển phần mềm, lưu trữ liệu sử dụng để giải toán Điển công cụ lập trình C#, hệ quản trị sở liệu SQL Do vậy, trình thực tập quan, em chọn đề tài nghiên cứu GIS Logic mờ áp dụng cho toán phân lớp khách hàng VNPT Thái Nguyên Việc hoàn thành đề tài giúp giảm bớt khối lượng công việc cho nhân viên quan 10 - Microsoft.Office.Interop.Excel namespace cho phép truy cập tập tin từ phần mềm Microsoft Excel Về bản, tập tin excel giống với cấu trúc mảng hai chiều Tập tin excel chia thành ô (cell) nằm bảng gồm nhiều hàng (Row) nhiều cột (Column) Hình 3.17.Bố cục bảng Excel - Khai báo thành phần: using Excel = Microsoft.Office.Interop.Excel; 74 Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(đường dẫn tập tin); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); - Sau khai báo, ta truy xuất cell tập tin sau: var cellValue = (string)(xlWorkSheet.Cells[i, 19] as Excel.Range).Value; - Sau sử dụng, ta cần giải phóng thành phần khai báo giảm giải phóng nhớ Việc thực thông qua hàm sau: private void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; MessageBox.Show("Exception Occured while releasing object " + ex.ToString()); } finally { GC.Collect(); } } 75 - Sau khai báo, ta cần đóng thành phần sử dụng gọi hàm để giải phóng nhớ: xlWorkBook.Close(false, misValue, misValue); xlApp.Visible = false; xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); 3.2.3.6.Đưa thông tin lên sở liệu SQL - Ta sử dụng câu truy vấn Insert into để đưa liệu lên CSDL thông qua thành phần SQLCommand: //Khởi tạo câu lệnh truy vấn string command = "INSERT INTO KhachHang (MaPhuong) VALUES (@MaPhuong)"; SqlCommand cmd = new SqlCommand(command, this.con); //Thêm giá trị cmd.Parameters.Add("@MaPhuong", SqlDbType.Int).Value = cbbPhuong.SelectedValue; //Thực hiên truy vấn cmd.ExecuteNonQuery(); 3.2.3.7.Tra cứu thông tin từ sở liệu SQL - Cũng giống việc đưa thông tin lên CSDL, ta sử dụng SQLCommand với câu truy vấn Select - Nếu giá trị trả bao gồm phần tử, ta làm sau: string query = "SELECT MAX(MaKH) FROM KhachHang"; SqlCommand comSelect = new SqlCommand(query, this.con); int value = comSelect.ExecuteScalar(); - Nếu giá trị trả gồm bảng nhiều phần tử, ta sử dụng SqlDataAdapter 76 DataSet để lưu trữ liệu: SqlDataAdapter da = new SqlDataAdapter("select * from Tinh", this.con); DataSet ds = new DataSet(); da.Fill(ds); string makh = ds.Tables[0].Rows[0]["MaTinh"].ToString() 3.3.Ứng dụng thuật toán K-Means vào việc phân loại khách hàng Tư tưởng thuật toá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 cụm (centroid ) nhỏ Như vậy, đối tượng tương ứng với khách hàng, đối tượng khách hàng bao gồm thông tin vị trí khách hàng, tâm cụm nhiều đối tượng có cấu trúc tương đồng với đối tượng khách hàng, nhiên tâm cụm đối tượng khách hàng mà đối tượng nhân viên, đối tượng nhân viên bao gồm thông tin vị trí nhân viên Việc phân cụm dựa khoảng cách đối tượng đến tâm cụm Từ phân loại nhóm khách hàng nhân viên đảm nhiệm 77 Sơ đồ thuật toán: 78 Hình 3.18.Sơ đồ thuật toán Ta khai báo class ClsToaDo để lưu hai giá trị kinh độ vĩ độ đối tượng: public class ClsToaDo { public double Lat { get; set; } public double Lng { get; set; } } Sau đó, tiến hành chọn ngẫu nhiên trọng tâm lấy trọng tâm từ danh sách nhân viên tùy theo nhu cầu người sử dụng: if (trongtamtuchon[0, 0] == 0) { //Random trọng tâm Random rd = new Random(); for (int i = 0; i < socum; i++) { trongtam[i] = new double[2]; trongtam[i][0] = rd.Next(0, sophantu); for (int j = 0; j < i; j++) { if (trongtam[j][0] == trongtam[i][0]) i ; } } for (int i = 0; i < socum; i++) { int vitri = Convert.ToInt32(trongtam[i][0]); 79 trongtam[i][0] = toado[vitri].Lat; trongtam[i][1] = toado[vitri].Lng; } } else { for (int i = 0; i < socum; i++) { trongtam[i] = new double[2]; trongtam[i][0] = trongtamtuchon[i, 0]; trongtam[i][1] = trongtamtuchon[i, 1]; } } Thực tính khoảng cách phần tử đến tâm theo Euclideaneanean: for (int i = 0; i < socum; i++) { for (int j = 0; j < sophantu; j++) { khoangcach[i][j] = Math.Sqrt(Math.Pow(toado[j].Lat trongtam[i][0], 2) + Math.Pow(toado[j].Lng - trongtam[i][1], 2)); } } Nhóm đối tượng dựa khoảng cách vừa tính: for (int i = 0; i < sophantu; i++) { double = 1000; int vitri = 0; for (int j = 0; j < socum; j++) { if (khoangcach[j][i] < min) { = khoangcach[j][i]; 80 vitri = j; } } phancum[vitri][i] = 1; } 81 Kiểm tra điều kiện dừng thuật toán: if (step == 0) { for (int i = 0; i < socum; i++) { for (int j = 0; j < sophantu; j++) { phancumcu[i][j] = phancum[i][j]; } } } else { for (int i = 0; i < socum; i++) { for (int j = 0; j < sophantu; j++) { if (phancumcu[i][j] != phancum[i][j]) { check++; break; } } } if (check > 0) { for (int i = 0; i < socum; i++) { 82 for (int j = 0; j < sophantu; j++) { phancumcu[i][j] = phancum[i][j]; } } } if (check == 0) { richTextBox1.AppendText("Thuật toán dừng lại!"); richTextBox1.ScrollToCaret(); return; } } Cuối cùng, thị kết lên đồ gmap.Overlays.Clear(); for (int i = 0; i < socum; i++) { for (int j = 0; j < sophantu; j++) { if (phancum[i][j] != 0) { GMapOverlay markersOverlay = new GMapOverlay("marker"); GMarkerGoogle marker = new GMarkerGoogle (new PointLatLng(toado[j].Lat, toado[j].Lng), mau[i]); markersOverlay.Markers.Add(marker); gmap.Overlays.Add(markersOverlay); 83 gmap.UpdateMarkerLocalPosition(marker); } } } if (trongtamtuchon[0, 0] != 0) { for (int i = 0; i < socum; i++) { GMapOverlay markersOverlay = new GMapOverlay ("marker"); GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(trongtamtuchon[i,0], trongtamtuchon[i, 1]), GMarkerGoogleType.arrow); markersOverlay.Markers.Add(marker); marker.ToolTip = new GMapRoundedToolTip (marker); marker.ToolTipText = tennhanvien[i]; gmap.Overlays.Add(markersOverlay); gmap.UpdateMarkerLocalPosition(marker); } } 84 Hình 3.19.Kết sau phân loại 85 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN Sau gần tháng nghiên cứu xây dựng, cuối em hoàn thành báo cáo nghiên cứu lý thuyết chương trình demo Về báo cáo lý thuyết, em trình bày kiến thức lập trình ngôn ngữ lập trình C# hệ quản trị sở liệu SQL, chưa đầy đủ kiến thức, em nghĩ em trình bày kiến thức tảng quan trọng để người tiếp tục tìm hiểu kiến thức sâu Về chương trình demo, chương trình chưa đáp ứng hết nhu cầu thực tế, chức đơn giản Mặc dù cố gắng thời gian có hạn nên đề tài nhiều hạn chế Em mong nhận thông cảm góp ý thầy cô để chương trình ngày hoàn thiện Phương hướng hoàn thiện đề tài: Cải thiện phần mềm, áp dụng logic mờ để giải toán phân lớp khách hàng nhằm xây dựng hoàn chỉnh hệ thống phân lớp khách hàng với nhiều chức nâng cao Từng bước cải tiến hệ thống cho phù hợp với nhu cầu sử dụng người sử dụng Em xin chân thành cảm ơn! Sinh viên Trần Minh Hoàng 86 NHẬN XÉT CỦA GIÁO VIÊN Thái Nguyên, ngày tháng năm 2016 GIÁO VIÊN 87 TÀI LIỆU THAM KHẢO [1] Joseph Albahari, Ben Albahari, C# 5.0 in a Nutshell: The Definitive Reference [2] Jennifer Greene, Andrew Stellman, Head First C# [3] Andrew Troelsen, Pro C# 5.0 and the NET 4.5 Framework 88 ... thực tập quan, em chọn đề tài nghiên cứu GIS Logic mờ áp dụng cho toán phân lớp khách hàng VNPT Thái Nguyên Việc hoàn thành đề tài giúp giảm bớt khối lượng công việc cho nhân viên quan 10 CHƯƠNG... chức chương trình 45 3.3.Ứng dụng thuật toán K-Means vào việc phân loại khách hàng 53 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 60 NHẬN... đoan số liệu kết nghiên cứu đồ án trung thực chưa sử dụng để bảo vệ học vị Mọi giúp đỡ cho việc thực đồ án cảm ơn thông tin trích dẫn đồ án rõ nguồn gốc rõ ràng phép công bố Thái Nguyên, ngày 06

Ngày đăng: 08/12/2016, 17:13

Từ khóa liên quan

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

Tài liệu liên quan