Khoảng cách và ý nghĩa

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp lan truyền độ tương tự trong phân cụm dữ liệu và ứng dụng (Trang 39)

Dựa vào hàm chi phí của Huang, Ahmad và Dey phát triển một khung làm việc để tính toán khoảng cách và ý nghĩa của nó, không chỉ xem xét các khoảng cách giữa các cặp giá trị khác nhau của thuộc tính, mà còn tính đến cả occurrence của chúng so với các thuộc tính khác. Cả hai bộ phận này sẽ được đưa vào tính ma trận khoảng cách của một bộ dữ liệu hỗn hợp.

Bước đầu tiên

Tính toán khoảng cách giữa mỗi cặp giá trị thuộc tính phân loại. là một thuộc tính phân loại; x, y và là hai giá trị phân loại.

Gọi là một thuộc tính phân loại khác; là một tập hợp con các giá trị của .  là phần bù của

Xác suất có điều kiện p( /x) là xác suất mà điểm dữ liệu có thuộc tính nhận giá trị x sẽ có thuộc tính nhận giá trị thuộc

Tương tự, p( /y) là xác suất có điều kiện mà điểm dữ liệu có thuộc tính nhận giá trị y sẽ có thuộc tính nhận giá trị thuộc 

Khoảng cách giữa cặp giá trị x, y của thuộc tính, khi xét tương quan (as regard) với thuộc tính và một tập hợp con cụ thể sẽ là

(x,y)= ( | + ( | (5)

Khoảng cách giữa cặp giá trị x, y của thuộc tính, khi xét tương quan với thuộc tính , kí hiệu là (x, y)

(x,y)= ( | + ( | (6)

Ở đây là tập con của các giá trị của sao cho làm cực đại ( | + ( |

(x, y)= ( | + ( | - 1.0 (7)

Với tập dữ liệu có m thuộc tính, gồm cả thuộc tính kiểu phân loại và kiểu số đã được rời rạc hóa, khoảng cách giữa hai giá trị xy của một thuộc tính phân loại được tính bằng :

(8)

Sử dụng các công thức (5) đến (8), có thể tính toán khoảng cách giữa hai giá trị khác nhau của thuộc tính phân loại và thuộc tính số rời rạc hóa.

Bước hai: xác định ý nghĩa hay tầm quan trọng của mỗi thuộc tính số. Để tính toán ý nghĩa (tầm quan trọng) của một thuộc tính số, đầu tiên phải rời rạc hóa thành S khoảng. Mỗi khoảng được gán một giá trị phân loại c[1], c[2],…c[S]

Sau đó, sử dụng các công thức (5) đến (8), giống như cho thuôc tính kiểu phân loại có thể tính toán khoảng cách (c[i], c[j] của mỗi cặp.

Cuối cùng, ý nghĩa (tầm quan trọng) của một thuộc tính kiểu số r, được tính là trung bình của (c[i],c[j]) với mọi cặp c[i]  [j]:

= ∑ ∑

(9)

2.3.2 Phƣơng pháp

Ý tưởng chính của thuật toán là phân cụm AP và sử dụng độ đo tương tự đối với dữ liệu hỗn hợp kiểu số và kiểu phân loại.

Thuật toán 1: Mã giả tính có trọng số.

2.3.3 Cải thiện độ đo tƣơng tự

- Với một bộ dữ liệu hỗn hợp đã cho, gọi , i = 1,…, r là một thuộc tính số, nhận các giá trị là { , , …. } n là số lượng điểm dữ liệu.

- Độ tương tự giữa được định nghĩa là:

s( )= - ( (10)

Ở đây S có thể được xem như là một ma trận n x n và độ tương tự s( ) là bình phương sai số ( ) lấy dấu âm. Phương pháp mới để tính tầm quan trọng của thuộc tính số được liệt kê trong thuật toán 1.

Set 𝑖 = 0;

For each thuộc tính số 𝐴𝑖 trong bộ dữ liệu 𝐴do

Tính ma trận tương tự dựa trên (10) là đầu vào; Tính trung vị của các độ tương tự làm độ ưu tiên p;

Thực hiện thuật toán AP, bước (1) - (4), kết quả phân cụm 𝑆𝑖; Rời rạc hóa thuộc tính 𝐴𝑖 vào các khoảng 𝑆𝑖;

𝑖 = 𝑖 + 1;

end for

Lập bộ dữ liệu 𝐵 mới, gồm dữ liệu thuần phân loại và các thuộc tính số đã rời rạc và các thuộc tính phân loại ban đầu;

For eachs thuộc tính 𝐵𝑗 trong bộ dữ liệu 𝐵 do

Tính khoảng cách giữa hai giá trị của mọi thuộc tính phân loại sử dụng (5) - (8);

Tính trọng số của mỗi thuộc tính số sử dụng (9), trong đó khoảng 𝑆 được thay thế bởi 𝑆𝑖.

Hình 2.2: Minh họa hiệu năng của ba kỹ thuật rời rạc hóa khác nhau

Dữ liệu thô, chiều rộng bằng nhau, tần số bằng nhau, và phương pháp AP được liệt kê trong hình. Nó cho thấy rằng phương pháp AP thực sự phản ánh tốt nhất quy luật phân bố đều đặn của các điểm dữ liệu.

Gọi S là ma trận độ tương tự nxn , ta định nghĩa độ giống nhau giữa hai giá trị như sau:

S( ) = - - (11)

Ở đây à khoảng cách chỉ với các thuộc tính

kiểu số, là tầm quan trọng của thuộc tính i, kiểu số, và l là khoảng cách chỉ với các thuộc tính kiểu phân loại.

Độ tương tự tính bằng bình phương sai số, lấy dấu âm, để làm đầu vào cho thuật toán AP.

2.3.4 Thích nghi thuật toán lan truyền

Để tìm giá trị p tối ưu, ta đề xuất một chiến lược thích ứng như sau: = + (12)

Ở đây t là thời gian chạy của thuật toán AP,  > 1 là một hàm của số lượng cụm trong kết quả lần chạy thứ t, và  là độ dài bước tìm kiếm. và

là những giá trị âm.  là hệ số điều chỉnh thô,  là hệ số tinh chỉnh.

Khi giá trị của là lớn hơn nhiều so với giá trị mục tiêu K, nên sử dụng một giá trị  tương ứng lớn hơn, để p có thể giảm nhanh.

Ngược lại, khi gần mục tiêu K, cần xác định giá trị  nhỏ hơn. Đặt hệ số điều chỉnh thô  = ( - K)+0,5.

Trong trường hợp này, thuật toán có thể điều chỉnh động giá trị của , theo số lượng cụm hiện có

Chiến lược điều chỉnh thô làm cho thuật toán tìm được đúng số lượng các cụm, các bước tinh chỉnh nhằm thực hiện phân cụm tốt hơn.

Trong giai đoạn lặp của K,  được đặt = 0. Khi bước vào giai đoạn = K,  được gán = 1. Giá trị của  là quan trọng đối với việc quét khu vực địa phương để làm cực đại hàm năng lượng.

 được đặt là  = 0.01 , ở đây là giá trị ban đầu của p. Giai đoạn quét có thể được chấm dứt khi hàm năng lượng giảm hoặc sau một số cố định lần lặp tinh chỉnh.

Mặt khác, nhân tố giảm xóc λ là một tham số khác điều khiển hội tụ và tốc độ thuật toán. Mục đích của chúng tôi là, trong trường hợp không có dao động, thuật toán có thể có được một tốc độ hội tụ nhanh hơn.

Một cơ chế thích nghi của λ được áp dụng để cân bằng mâu thuẫn giữa dao động và hội tụ. Mặc dù duy trì một λ lớn hơn, gần bằng 1, có thể dễ dàng tránh dao động số, nhưng việc giảm tương ứng của tốc độ cập nhật “availability” và “responsibility” là không tránh khỏi. Với λ nhỏ hơn cần nhiều lần lặp hơn để có được một kết quả tương ứng. Vì vậy, thay đổi λ cùng với việc lặp của thuật toán là một lựa chọn tốt hơn. Theo quan niệm này, chúng tôi đã thiết kế một cơ chế thích ứng λ như sau:

= - - ) + (13)

Ở đây K là số lần lặp còn iteration là số max lần lặp. and là max, min. Hệ số a để chỉnh tốc độ giảm của . Khi giá trị a > 1,  giảm nhanh.

Thuật toán 2: Mã giả của thuật toán được đề xuất.

Tính ma trận độ tương tự và độ ưu tiên làm đầu vào của thuật toán AP.

For each thuộc tính số 𝐴𝑖 trong bộ dữ liệu 𝐴 do

Tính độ quan trọng của thuộc tính 𝐴𝑖 sử dụng phương pháp tại mục 3.1;

end for

For each thuộc tính số 𝐴𝑖 trong bộ dữ liệu 𝐴 do

Tính khoảng cách của mọi cặp giá trị trong 𝐴𝑗 dựa trên (5) - (8);

end for

Sinh ma trận độ tương tự (đầu vào) của tập dữ liệu hỗn hợp sử dụng (11); Đặt độ ưu tiên 𝑝𝑚 bằng trung vị của các độ tương tự;

Nhập số lượng cụm 𝐾;

While các điều kiện chấm dứt chưa thỏa do for each lần chạy thuật toán AP do

if 𝐾𝑡 ≠ 𝐾then

Chiến lược thích ứng giá trị 𝑝 là 𝑝𝑡+1= 𝛼𝑝𝑡, với 𝛼 = √(𝐾𝑡− 𝐾) + 0.5;

else if 𝐾𝑡 = 𝐾then

Chiến lược thích ứng giá trị 𝑝 là 𝑝𝑡+1= 𝑝𝑡+𝛽, Với 𝛽 = 0.01𝑝𝑚;

end if

Chiến lược thích ứng 𝜆 theo (13);

end for end while

CHƢƠNG 3

XÂY DỰNG ỨNG DỤNG PHÂN CỤM DỮ LIỆU ĐỊA LÝ 3.1 Bài toán thực tế và cách tiếp cận phân cụm dữ liệu

3.1.1 Bài toán khai thác các dữ liệu quan trắc khí tƣợng

Ở các địa phương nước ta đều có các trạm quan trắc khí tượng, thu thập dữ liệu định kỳ về môi trường khí hậu. Những dữ liệu này trước hết phục vụ cho dự báo thời tiết; theo dõi biến động của môi trường khí hậu; chất lượng không khí,v… Về lâu dài, đây là kho dữ liệu lớn cần nghiên cứu đưa vào khai thác, sử dụng để phát hiện những thông tin tiềm ẩn về môi trường thiên nhiên, điều kiện khí hậu có thể hữu ích cho các nhà quản lý, quy hoạch phát triển kinh tế, xã hội.

Các dữ liệu do các trạm quan trắc cung cấp phản ánh những thuộc tính khí tượng của tiểu vùng xung quanh như nhiệt độ, độ ẩm, lượng mưa, sức gió, mức khói bụi hay ô nhiễm không khí nói chung v.v… Một cách tiếp cận nghiên cứu khai thác kho dữ liệu này là phân cụm dữ liệu. Phân cụm dữ liệu cho phép phát hiện những đặc trưng, quy luật tiềm ẩn, không yêu cầu đặt ra trước các giả định.

Các bước giải quyết bài toán thực tế gồm:

- Xây dựng các tầng bản đồ chuyên đề chứa vị trí địa lý của các trạm quan trắc khí tượng trên nền bản đồ thực địa, bản đồ hành chính của địa bàn nghiên cứu.

- Thông qua bảng thuộc tính tầng bản đồ, gắn các thuộc tính phi không gian (các cột) là các dữ liệu chuyên đề nhiệt độ, độ ẩm, lượng mưa, sức gió, mức khói bụi, ô nhiễm không khí v.v…

- Thực hiện phân cụm các dữ liệu chuyên đề, riêng biệt hay gộp nhóm một vài thuộc tính có liên quan với nhau. Hiển thị kết quả phân cụm một cách trực quan trên bản đồ. Có thể phân cụm bằng vài phương pháp khác nhau để có sự so sánh, phát hiện những quy luật chung nhất, sau đó rút ra các kết luận thích hợp.

3.1.2 Lựa chọn giải pháp kỹ thuật công nghệ

Hệ thông tin địa lý (GIS) là công cụ thích hợp nhất để thu thập, lưu trữ, chỉnh sửa, truy cập, phân tích và cập nhật các thông tin địa lý cho một mục đích chuyên biệt. Với bài toán đặt ra ở đây, GIS sẽ là công cụ nền tảng để lưu trữ, truy cập, phân tích các dữ liệu chuyên đề bằng phương pháp phân cụm dữ liệu và hiển thị trực quan các kết quả nhận được lên bản đồ.

Các thuật toán phân cụm dữ liệu nhận đầu vào là tệp dữ liệu dạng văn bản thuần (text) và xuất ra kết quả cũng dưới dạng văn bản thuần, cho biết có bao nhiêu cụm và gán nhãn cụm cho từng điểm dữ liệu.

Cần có giải pháp tích hợp hai công cụ tách biệt này với nhau để tạo thuận lợi cho người dùng, không đòi hỏi hỏ phải xử lý thủ công việc trích xuất dữ liệu đầu vào cho thuật toán phân cụm cũng như gán nhãn cụm cho các trạm quan trắc khí tượng và hiển thị trực quan.

Thật may mắn là các phần mềm GIS đều cho phép mở rộng thêm chức năng bằng cách viết các trình cắm thêm plug-in. Các trình cắm thêm plug-in có thể truy cập bảng dữ liệu thuộc tính của tầng bản đồ để đọc hay viết dữ liệu vào các ô trong bảng.

Luận văn sẽ áp dụng giải pháp viết một trình cắm thêm plug-in vào GIS lựa chọn, triên khai chức năng phân cụm dữ liệu địa lý, chạy bên trong ứng dụng nền GIS.

Dưới đây sẽ trình bày về lựa chọn phần mềm GIS mã nguồn mở MapWindow và kỹ thuật viết trình cắm thêm vào MapWindow sử dụng môi trường phát triển Visual Studio quen thuộc với nhiều người.

3.2 Các phần mềm GIS

rất nhiều phần mềm GIS được xây dựng cả trên nền desktop và nền web. Một số phần mềm GIS gồm có:

 Phần mềm viết trên nền Desktop:

- GRASS GIS – Do U.S. Army Corps of Engineers phát triển. gvSIG – Viết bằng ngôn ngữ JAVA, có thể chạy trên HĐH Linux, Mac,Window

- ILWIS (Integrated Land and Water Information System) – Tích hợp hình ảnh, vector và dữ liệu chuyên đề.

- JUMP GIS / OpenJUMP ((Open) Java Unified Mapping Platform)

- MapWindow GIS – Ứng dụng desktop mã nguồn mở

- QGIS (previously known as Quantum GIS) – Chạy trên hệ điều hành Linux, Unix, Mac OS X và Windows.

- SAGA GIS (System for Automated Geoscientific Analysis)

- uDig – API.

 Ngoài ra có một số tool GIS mã nguồn mở khác:

- Capaware – A C++ 3D GIS Framework: Có cấu trúc đa plugin để phân tích một cách trực quan biểu đồ địa lý.

- FalconView – Hệ thống bản đồ do viện nghiên cứu kỹ thuật Georgia tạo ra.

- Kalypso – Uses Java and GML3.

- TerraView – Handles.

- Whitebox GAT – Cross-platform.  Phần mềm GIS viết trên nền web:

- GeoServer – Written in Java and relies on GeoTools. Allows users to share and edit geospatial data.

- MapGuide Open Source – Runs on Linux or Windows, supports Apache and IIS web servers, and has APIs (PHP, .NET, Java, and JavaScript) for application development.

- Mapnik – C++/Python library for rendering – used by OpenStreetMap.

- MapServer – Written in C. Developed by the University of Minnesota.

- Spatial database management systems[edit]

- Post GIS – Spatial extensions for the open source PostgreSQL database, allowing geospatial queries.

- SpatiaLite – Spatial extensions for the open source SQLite database, allowing geospatial queries

- TerraLib – Provides advanced functions for GIS analysis.

Để có một phần mềm có bản quyền đối với một cá nhân là rất khó khăn do chi phí bản quyền lớn. Đáp ứng nhu cầu sử dụng, nhiều phần mềm mã nguồn mở đã ra đời. Trong luận văn này, tôi sẽ sử dụng phần mềm mã nguồn mở MapWindow GIS, kết hợp với phần mềm Visual studio để xây dựng ứng dụng cho bài toán. Ngoài ra, ứng dụng sử dụng hệ quản trị cơ sở dữ liệu SQL server 2008 để lưu trữ và quản trị dữ liệu.

3.3 Tìm hiểu về phần mềm mã nguồn mở MapWindow

MapWindow GIS là một ứng dụng GIS mã nguồn mở tập hợp các thành phần lập trình lập bản đồ, do nhóm phát triển MapWindow OSS Team xây

dạng shapefile, thao tác với bảng dữ liệu thuộc tính, truy vấn lọc thông tin đối tượng…Ngoài ra, MapWindow còn có một số các chức năng khác như: xử lý hình học (đo khoảng cách, tính diện tích …), phân tích không gian (union, intersect, clipping, …), hỗ trợ tích hợp công cụ đo GPS…

Hình 3.1: Phần mềm mã nguồn mở mapwindow

Các đặc điểm của MapWindow:

 Hỗ trợ xử lý, phân tích và hiển thị dữ liệu GIS: shapefiles (.shp), ASCII grid files (.asc)

 Cho phép tạo các plug-ins mở rộng  Là công cụ vẽ bản đồ

 Là một hệ thống mô đun hóa (module)

 MapWinGIS ActiveX cung cấp các giao diện lập trình (API - Application Programming Interface) cho Shapefile và Grid data

 Ngôn ngữ: Visual C++, C#, Visual Basic, Visual Basic .NET and Delphi.

3.4 Thiết kế một plug-in trên phần mềm mã nguồn mở Mapwindown 3.4.1 Thêm một plug-ins từ Visual Studio vào MapWindow 3.4.1 Thêm một plug-ins từ Visual Studio vào MapWindow

 Bước 1: Tạo một project trên VS, chọn ngôn ngữ C#.NET, loại Class Library, framework .Net 3.5

 Bước 2: add reference cho project bằng cách:

o Bấm Chuột phải vào tên project, chọn properties

o Trên form properties, chọn tab reference, click button Add. Tại form Reference Manager, chọn Menu Browse, click button Browse đến thư mục C:\Program Files MapWindow, check chọn 2 thư mục: MapWinGIS.ocx và MapWininterfaces.dll Click OK để add

reference, sau đó set thuộc tính Copy Local trên mỗi file reference là False.

 Bước 3: Quay trở lại form Reference Manager, chọn Menu

Assemblies\Framework, check chọn System.Drawing, bấm OK để add vào Reference.

 Bước 4: Quay trở lại màn hình Code, thêm dòng

using MapWindow.Interfaces;Trên đầu trang của các mã dưới khác using ... bên cạnh dòng “Public Class Class1” thêm “: Iplugin” rồi nhấn

Implement Interface để VS tự gen ra các đoạn code.

 Bước 5: Tìm đến thuộc tính Author, Description, Name và Version tại màn hình code, bỏ dòng get{throw new NotImplementedException();}

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp lan truyền độ tương tự trong phân cụm dữ liệu và ứng dụng (Trang 39)