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 - Pdf 40

LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và 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,
chỉ bảo em trong suốt quá trình làm đồ án.
Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐH
CNTT&TT nói chung, các thầy cô trong Bộ môn Khoa Học Máy Tính nói riêng đã
dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành,
giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt
quá trình học tập.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều
kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành
khoá luận tốt nghiệp.
Thái Nguyên, ngày 06 tháng 6 năm 2016
Sinh Viên Thực Hiện

Trần Minh Hoàng

1


2


LỜI CAM ĐOAN
Tôi xin cam đoan số liệu và kết quả nghiên cứu trong đồ án này là trung
thực và chưa hề được sử dụng để bảo vệ một học vị nào. Mọi sự giúp đỡ cho việc
thực hiện đồ án này đã được cảm ơn và các thông tin trích dẫn trong đồ án đã được
chỉ rõ nguồn gốc rõ ràng và được phép công bố.
Thái Nguyên, ngày 06 tháng 6 năm 2016

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 của tập mờ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5


2.3.Số mờ và các tập con mờ lồi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1.Tập mờ lồi và số mờ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2.Các hàm thuộc của tập mờ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.Các phép toán trên tập mờ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.1.So sánh các tập mờ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.2.Các phép toán trên tập mờ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.Các kỹ thuật phân loại dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1.Giới thiệu về kỹ thuật phân cụm trong Khai phá dữ liệu (Clustering
Techniques in Data Mining). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.2.Kỹ thuật phân lớp dữ 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ả bài toán.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.Xây dựng các chức năng của chương trình.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.1.Cấu trúc cơ sở dữ liệu sử dụng trong chương trình. . . . . . . . . . . . . . . . . . 40
3.2.2.Xây dựng giao diện form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.3.Xây dựng các chức năng của 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

Hình 3.4.Bảng khách hàng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Hình 3.5.Bảng huyện. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7


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ệ giữa các bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Hình 3.9.Giao diện chính. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Hình 3.10.Giao diện thêm mới 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 cơ bản của bản đồ GMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Hình 3.14.Bản đồ GMap sau khi thiết lập. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Hình 3.15.Đánh dấu trên bản đồ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Hình 3.16.Kết quả trả về . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Hình 3.17.Bố cục một bảng Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Hình 3.18.Sơ đồ thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Hình 3.19.Kết quả sau khi phân loại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

8


MỞ ĐẦU
Chúng ta đang sống trong một thời đại mới, thời đại phát triển rực rỡ của
CNTT. CNTT đã ở một bước phát triển cao đó là số hóa tất cả các dữ liệu thông
tin, luân chuyển mạnh mẽ và kết nối tất cả chúng ta lại với nhau.
Xu thế toàn cầu hóa về internet đang diễn ra mạnh mẽ trên khắp thế giới, và
Việt Nam cũng không phải ngoại lệ. Số người dùng internet tại Việt Nam tính đến

C++, Visual Basic, Delphi và Java. C# được thiết kế chủ yếu bởi Anders Hejlsberg
kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++,
WFC.
1.1.1.Lịch sử hình thành.
Từ khi chiếc máy tính có thể lập trình đầu tiên (First freely programmable
computer) ra đời vào năm 1936 hàng nghìn ngôn ngữ lập trình đã được tạo ra. Có
những ngôn ngữ chết đi vì sự thiếu tâm huyết của người tạo ra nó, sự hạn chế của
chính ngôn ngữ hay không được cộng đồng sử dụng rộng rãi và cũng có cả những
ngôn ngữ trở nên thành công. Với sự hỗ trợ của Microsoft, tháng giêng năm 1999,
Anders Hejlsberg trở thành người phụ trách xây dựng ngôn ngữ lập trình Cool (Clike Object Oriented Language tiền thân của C#) , ngày 12/2/2002 C# ra đời cùng
với .NET Framework 1.0.
1.1.2.Đặc điểm ngôn ngữ.
- C# là ngôn ngữ đơn giản:
+ C# loại bỏ được một vài sự phức tạp và rối rắm của các ngôn ngữ C++ và
Java.
+ C# khá giống C / C++ về diện mạo, cú pháp, biểu thức, toán tử.
+ Các chức năng của C# được lấy trực tiếp từ ngôn ngữ C / C++ nhưng
được cải tiến để làm cho ngôn ngữ đơn giản hơn.
- C# có những đặc tính của ngôn ngữ hiện đại như:
+ Xử lý ngoại lệ.
+ Thu gom bộ nhớ tự động.
11


+ Có những kiểu dữ liệu mở rộng.
+ Bảo mật mã nguồn.
- C# hỗ trợ tất cả những đặc tính của ngôn ngữ hướng đối tượng là:
+ Sự đóng gói (encapsulation).
+ Sự kế thừa (inheritance).
+ Đa hình (polymorphism).

+ Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn. Hầu hết
các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ
đệm. Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối
tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu.
+ Các đối tượng không thể được giải phóng tường minh.
13


+ Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng
(abstract interfaces). Chức năng này làm đơn giản hóa sự thực thi của thời gian
thực thi.
+ Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a
[5]").
+ Kiểu thứ tự được thay thế bằng tên miền không gian (namespace).
+ C# không có tiêu bản.
+ Có thêm Properties, các phương pháp có thể gọi các Properties để truy
cập dữ liệu.
- Cú pháp C# hàm ý, nhưng nó cũng đơn giản và dễ dàng để học. Nếu có
kinh nghiệm với C, C++ hoặc Java thì có thể bắt đầu làm việc hiệu quả trong C#
với một thời gian rất ngắn vì c# có cú pháp tương tự, tuy nhiên C# đơn giản hơn so
với C++ và cung cấp các tính năng mạnh mẽ như các loại giá trị nullable,
enumerator, delegate, biểu thức lambda và việc truy cập bộ nhớ trực tiếp (unsafe
code) mà không tìm thấy trong ngôn ngữ Java.
- C# hỗ trợ kiểu dữ liệu và phương thức chung (giống Java), ứng dụng C#
nhanh bảo mật và mã nguồn có thể tái sử dụng.
- Là một ngôn ngữ hướng đối tượng, C# hỗ trợ các khái niệm về đóng gói
ncapsulation, thừa kế inheritance và đa hình polymorphism. Tất cả các biến và
phương thức, bao gồm cả phương thức override virtual methods, được đóng gói
trong Class. Một lớp có thể kế thừa trực tiếp từ một lớp cha, nhưng nó có thể có
thực hiện nhiều interfaces khác nhau…

- C# là một ngôn ngữ phân biệt chữ hoa và chữ thường. Dấu “;” được dùng
để kết thúc câu lệnh. Tất cả các khai báo và câu lệnh thực hiện đều được đặt trong
một file với phần mở rộng là cs.
- Nhằm giải quyết sự xung đột giữa việc sử dụng các thư viện khác nhau từ
các nhà cung cấp, C# cung cấp một thuộc tính là Namespace. Namespace được
xem như là tập hợp các lớp đối tượng, và cung cấp duy nhất các định danh cho các
kiểu dữ liệu và được đặt trong một cấu trúc phân cấp. Các namespace cơ bản của
C# bao gồm:
+ System: Chứa lớp toán học, chuyển đổi dữ liệu.
+ System.IO: Các lớp cho thao tác Input và Output.
+ System.Net: Các lớp liên quan đến giao thức mạng.
+ System.Collections: Chứa các lớp liên quan đến xử lý tập hợp.
17


+ System.Data: Các lớp của ADO.NET.
+ System.Drawing: Các lớp thực thi chức năng GUI.
+ System.Threading: Các lớp lập trình đa luồng xử lý (MultiThread).
+ System.Web: Các lớp liên quan đến giao thức HTTP.
+ System.XML: Các lớp liên quan đến XML.
1.1.3.Cách thức ứng dụng C# hoạt động.
- Các ngôn ngữ NET như C#, VB.NET, VJ#, VC++ .NET có cách thức hoạt
động giống nhau và là một thành phần của .NET Framework do đó không thể chạy
các ứng dụng này trên các máy không chạy cài đặt .NET Framework version thích
hợp.
- Trước hết cần có cái nhìn khái quát về NET Framework nó gồm 2 phần
chính: The common language runtime (CLR) and The .NET Framework class
library.

18

gian, C# biên dịch ra MSIL còn Java biên dịch ra bytecode. Sau đó chúng được
thực hiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo
tương ứng. C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép nhiều sự
mở rộng với kiểu dữ liệu giá trị. C# cũng bỏ tính đa kế thừa trong một lớp tương tự
như Java, tuy nhiên mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa
nhiều giao diện.
1.1.5.Kiểu dữ liệu trong C#.
C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu, một ngôn ngữ mạnh về kiểu
dữ liệu là phải khai báo kiểu của mỗi đối tượng khi tạo (kiểu số nguyên, số thực,
kiểu chuỗi, kiểu điều
khiển...) và trình biên dịch sẽ giúp cho người lập trình không bị lỗi khi chỉ
cho phép một loại
20


kiểu dữ liệu có thể được gán cho các kiểu dữ liệu khác.
Tương tự như C++ hay Java, C# chia thành hai tập hợp kiểu dữ liệu chính:
Kiểu xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho người lập trình và kiểu
được người dùng định nghĩa (user-defined) do người lập trình tạo ra.
Ngoài ra C# cũng hỗ trợ một kiểu con trỏ C++, nhưng hiếm khi được sử
dụng, và chỉ khi nào làm việc với những đoạn mã lệnh không được quản lý
(unmanaged code). Mã lệnh không được quản lý là các lệnh được viết bên ngoài
nền .MS.NET, như là các đối tượng COM.
Ngôn ngữ C# đưa ra các kiểu dữ liệu xây dựng sẵn rất hữu dụng, phù hợp với một
ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu có một sự xác nhận và kích thước
không thay đổi.

21



GMap.NET khai thác bản đồ từ nhiều nguồn khác nhau như Bing, Google,
Yahoo… Hỗ trợ xây dựng và hiển thị tọa độ địa lý (geocoding), định tuyến
(routing) và hỗ trợ tìm đường dựa trên nguồn bản đồ của nhà cung cấp.

25



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status