1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cài đặt một số thuật toán phân lớp dữ liệu

50 608 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 393,4 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC CÁC THUẬT NGỮ Số TT Thuật ngữ Giải nghĩa 1 Basket data Dữ liệu các mặt hàng mua bán trong giao dịch 2 Count Distribution phân phối số đếm 3 Data Distribution Phân phối dữ liệu

Trang 1

LỜI CẢM ƠN

Em xin chân thành cảm ơn Thầy, Tiến sĩ Nguyễn Đình Thuân đã tận tình hướng dẫn và giúp đỡ, cung cấp cho em những ý kiến đóng góp, nhận xét quý báu trong quá trình thực hiện đồ án này

Em xin chân thành cảm ơn các giảng viên trong khoa Công nghệ thông tin cũng như các giảng viên giảng dạy trong trường Đại học Đại học Nha trang những người đã truyền thụ cho em những kiến thức quí báu trong suốt thời gian học tập và nghiên cứu tại trường Đại học Nha trang, giúp em

có được những điều kiện cần thiết để hoàn thành tốt đồ án tốt nghiệp này

Sự quan tâm và giúp đỡ của Bố mẹ, cùng toàn thể gia đình là một nguồn động viên rất lớn, tạo cho con sự yên tâm về vật chất và tinh thần để con hoàn thành nhiệm vụ của mình

Cuối cùng xin cảm ơn sự quan tâm và đóng góp ý kiến của tất cả các bạn

Nha Trang, ngày 10 tháng 12 năm 2007

Sinh viên thực hiện

Hứa Văn Lắm

Trang 2

6 DHP Direct Hashing and Puning

8 KDD Knowledge Discovery from Data

10 TID Transaction identifier

14 ILA Inductive Learning Algorithm

16 PLDL Phân lớp dữ liệu

18 OOP Lập trình hướng đối tượng

19 IDE Môi trường thiết kế tích hợp

Trang 3

DANH MỤC CÁC THUẬT NGỮ

Số TT Thuật ngữ Giải nghĩa

1 Basket data Dữ liệu các mặt hàng mua bán trong

giao dịch

2 Count Distribution phân phối số đếm

3 Data Distribution Phân phối dữ liệu

5 k-itemset Itemset có k phần tử

6 k-subset Một tập con của một giao dịch có chứa

k item

7 Transaction Một giao dịch trong cơ sở dữ liệu

8 Transaction identifier Định danh duy nhất của một giao dịch

9 Tập học Tập hợp những bộ được dùng để xây

dựng mô hình

10 Information gain

Độ lợi thông tin là đại lượng được dùng

để chọn thuộc tính nhằm phân chia tập học

11 Java Là ngôn ngữ lập trình hướng đối tượng

Trang 4

MỤC LỤC

LỜI CẢM ƠN 1

DANH MỤC TỪ VIẾT TẮT Error! Bookmark not defined DANH MỤC CÁC THUẬT NGỮ 3

MỤC LỤC 4

LỜI MỞ ĐẦU 6

Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 8

1.1 Các bước của quá trình khai phá dữ liệu: 8

1.2 Nhiệm vụ chính của khai phá dữ liệu 10

1.3 Khai phá dữ liệu mô tả 11

1.4 Khai phá dữ liệu dự đoán 12

1.5 Khái quát các kỹ thuật KTDL 1Error! Bookmark not defined. 1.6 Những thách thức trong KTDL 12

Chương 2:PHÂN LỚP DỮ LIỆU-CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU 13

2.1 Mở đầu 13

2.1.1 Xây dựng mô hình 13

2.1.2 Vận hành mô hình 13

2.2 Phân lớp quy nạp trên cây quyết định 14

2.3 Phân lớp bằng thuật giải Bayes 18

2.4 Phân lớp bằng thuật giải ILA 20

2.5 Các phương pháp phân lớp khác 22

Chương 3: SƠ LƯỢC VỀ JAVA 23

3.1 Lịch sử java 23

3.2 Thiết kế và ưu điểm của Java 23

3.3 Đặc điểm của Java 23

3.4 Quy cách ngôn ngữ Java 26

3.5 Công cụ thiết kế và Jbuilde 26

3.6 Các lớp sử dụng trong chương trình 28

Chương 4: XÂY DỰNG GIẢI PHÁP VÀ THỬ NGHIỆM KẾT QUẢ 29

4.1 Tổng quan về hệ thống 29

4.1.1 Mô hình chung của hệ thống 32

4.1.2 Sơ đồ chức năng chương trình 29

4.1.3 Module hóa chức năng chương trình 30

4.1.4 Kiến trúc hệ thống 30

4.1.5 Mô tả chức năng 31

4.1.6 Cấu trúc dữ liệu 31

4.2 Giải pháp, cài đặt 31

4.2.1 Môi trường, công cụ, ngôn ngữ sử dụng 31

4.2.2 Lựa chọn thuật toán 32

4.2.3 Thiết kế môđun 32

4.3 Kết quả thử nghiệm và đánh giá 33

4.3.1 Giao diện chương trình: 33

4.3.2 Cơ sở dữ liệu thử 33

4.3.3 Đánh giá kết quả 34

Trang 5

4.4 Thông tin rút ra từ dữ liệu thử 48 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49 TÀI LIỆU THAM KHẢO 50

Trang 6

Những tiến bộ gần đây trong việc thu thập và lưu trữ dữ liệu đã được áp dụng trong các công ty (kỹ thuật mã vạch), các cơ quan hành chính (dữ liệu điều tra) hay các phòng thí nghiệm khoa học (CSDL phân tử trong hoá học hay sinh học) để lưu giữ được một lượng lớn các dữ liệu liên quan đến hoạt động của các tổ chức này Cùng thời gian này, khả năng dùng nguồn năng lượng tính toán rẻ để trích rút tự động tri thức có cấu trúc từ dữ liệu đã tập hợp được này một cách dễ dàng Những hoạt động như vậy đều được coi như khai phá dữ liệu Khai phá dữ liệu bao gồm những lĩnh vực như phân loại, chia nhóm, phân tích sự tương đồng, tóm tắt nội dung, khai phá luật kết hợp và khai phá các mẫu tuần tự… Vấn đề phân loại dữ liệu được đưa ra giới thiệu vào năm 1993 nhưng

đã nhanh chóng phát triển mạnh mẽ

Phân lớp dữ liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hướng quy luật phát triển Áp dụng vào tiến trình phân lớp dữ liệu khách hàng trong CSDL có thể xây dựng các luật phân lớp khách hàng Một luật phân lớp

có dạng tiêu biểu sau:

Nếu khách hàng ở khu vực 1 và có doanh số năm trước > 200 triệu và

có cửa hàng ở khu thị tứ thì thuộc loại khách hàng có thể giao hàng trước trả tiền sau

Chính vì những ý nghĩa thiết thực đó, em đã quyết định chọn đề tài tốt

nghiệp của mình là “Nghiên cứu các thuật toán phân lớp dữ liệu và ứng dụng cho bài toán phân tích ảnh hưởng các môn học”

Đồ án này sẽ tập trung vào tìm hiểu và nghiên cứu về các thuật toán phân lớp dữ liệu

Nội dung chính của đồ án được trình bày trong 5 chương :

Chương 1: Tìm hiểu tổng quan chung về các kỹ thuật khai phá dữ liệu Chương 2: Phân lớp dữ liệu – Các thuật toán phân lớp dữ liệu

Chương 3: Sơ lược về Ngôn ngữ lập trình Java

Trang 7

Chương 4: Xây dựng giải pháp và thử nghiệm kết quả với các thuật toán phân lớp dữ liệu đã cài đặt

Kết luận: Nêu ra các nhận xét, kết quả đạt được và một số phương hướng phát triển tiếp theo của đề tài

Trang 8

Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

Phần đầu của chương sẽ đề cập tới các bước thực hiện của quá trình khai phá dữ liệu và tổng quan các kỹ thuật khai phá Phần sau sẽ đi sâu vào một khía cạnh ứng dụng của khai phá dữ liệu là phân lớp dữ liệu và một số kỹ thuật phân lớp được sử dụng phổ biến hiện nay cũng như những vấn đề mà các kỹ thuật này còn chưa giải quyết được

Khi điện tử và sóng điện từ đã trở thành vấn đề cốt lõi của công nghệ điển

tử cổ điển thì ta thấy rằng dữ liệu, thông tin, tri thức đang là lĩnh vực tập trung nhiều nghiên cứu và ứng dụng – phát hiện tri thức và khai phá dữ liệu (knowledge discovery and data mining: KDD)

Nói chung, ta thường biết dữ liệu là một chuỗi các bit, số hay ký tự hoặc đối tượng cần quan tâm Ta sử dụng các bít để đánh giá thông tin Tri thức được xem như là thông tin tổ hợp, bao gồm các sự thật và mối liên quan giữa chúng, có thể thu nhận, khám phá và học được Nói cách khác, tri thức là dữ liệu ở mức cao của sự trừu tượng và tổng quát hoá

KDD là lĩnh vực phát triển nhanh chóng, kết hợp với hệ quản trị CSDL, các lĩnh vực thống kê, học máy và các lĩnh vực liên quan khác Phát hiện tri thức là một quá trình chỉ ra được các mô hình/mẫu hiểu được có giá trị và đáng quan tâm Data mining là một bước trong quá trình phát hiện tri thức, bao gồm các thuật toán khai phá dữ liệu cụ thể với hiệu năng tính toán chấp nhận được

để tìm ra các mẫu hay mô hình của dữ liệu

Nói cách khác, mục đích của khai phá và phát hiện tri thức là tìm ra các mẫu hay mô hình đáng quan tâm có trong CSDL nhưng đang ẩn dấu trong một lượng lớn dữ liệu

1.1 Các bước của quá trình khai phá dữ liệu

Các giải thuật khai phá dữ liệu thường được miêu tả như những chương trình hoạt động trực tiếp trên tệp dữ liệu Với các phương pháp máy học và thống kê trước đây, thường thì bước đầu tiên là các giải thuật nạp toàn bộ tệp

dữ liệu vào trong bộ nhớ Khi chuyển sang các ứng dụng công nghiệp liên quan đến việc khai phá các kho dữ liệu lớn, mô hình này không thể đáp ứng được Không chỉ bởi vì nó không thể nạp hết dữ liệu vào trong bộ nhớ mà còn vì khó

có thể chiết suất dữ liệu ra các tệp đơn giản để phân tích được

Quá trình xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn

đề cần giải quyết Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải pháp Bước tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho các giải thuật khai phá dữ liệu có thể hiểu được Về lý

Trang 9

thuyết thì có vẻ rất đơn giản nhưng khi thực hiện thì đây thực sự là một quá trình rất khó khăn, gặp phải nhiều vướng mắc như : các dữ liệu phải được sao

ra nhiều bản (nếu được chiết suất vào các tệp), quản lý tập các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi),

Sẽ là quá cồng kềnh với một giải thuật khai phá dữ liệu nếu phải truy nhập vào toàn bộ nội dung của CSDL và làm những việc như trên Vả lại, điều này cũng không cần thiết Có rất nhiều giải thuật khai phá dữ liệu thực hiện trên những thống kê tóm tắt khá đơn giản của CSDL, khi mà toàn bộ thông tin trong CSDL là quá dư thừa đối với mục đích của việc khai phá dữ liệu

Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá để tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó (thường được biểu diễn dưới dạng luật kết hợp, cây quyết định, luật sản xuất, biểu thức hồi quy, )

Đặc điểm của các mẫu là phải mới (ít nhất là đối với hệ thống đó) Độ mới có thể được đo tương ứng với độ thay đổi trong dữ liệu (bằng cách so sánh các giá trị hiện tại với các giá trị trước đó hoặc các giá trị mong muốn), hoặc bằng tri thức (mối liên hệ giữa các phương pháp tìm mới và phương pháp cũ như thế nào) Thường thì độ mới của mẫu được đánh giá bằng các hàm logic hoặc hàm đo độ mới, độ bất ngờ của mẫu Ngoài ra, mẫu phải có khả năng sử dụng tiềm tàng Các mẫu này sau khi được xử lý và diễn giải phải dẫn đến những hành động có ích nào đó được đánh giá bởi một hàm lợi ích Ví dụ như trong dữ liệu các khoản vay, hàm lợi ích đánh giá khả năng tăng lợi nhuận từ các khoản vay Mẫu khai thác được phải có giá trị đối với các dữ liệu mới với

độ chính xác nào đó

Hình 1: Quá trình khai phá dữ liệu

Với các giải thuật và các nhiệm vụ của khai phá dữ liệu rất khác nhau, dạng của các mẫu chiết xuất được cũng rất đa dạng Theo cách đơn giản nhất,

sự phân tích cho ra kết quả chiết xuất là một báo cáo về một số loại (có thể bao gồm các phép đo mang tính thống kê về độ phù hợp của mô hình, các dữ liệu lạ ) Trong thực tế đầu ra phức tạp hơn nhiều Mẫu chiết suất được có thể là

Thu thập

và tiền

xử lý dữ

Dữ liệu trực tiếp

Thống

thuật khai phá

Mẫu

Trang 10

một mô tả xu hướng, có thể dưới dạng văn bản, một đồ thị mô tả các mối quan

hệ trong mô hình, cũng có thể là một hành động, ví dụ như yêu cầu của người dùng đối với những gì khai thác được trong CSDL

Kỹ thuật khai phá dữ liệu thực chất không có gì mới Nó là sự kế thừa, kết hợp và mở rộng của các kỹ thuật cơ bản đã được nghiên cứu từ trước như máy học, nhận dạng, thống kê (hồi quy, xếp loại, phân nhóm), các mô hình đồ thị, mạng Bayes, trí tuệ nhân tạo, thu thập tri thức hệ chuyên gia Tuy nhiên, với

sự kết hợp tài tình của khai phá dữ liệu, kỹ thuật này có ưu thế hơn hẳn các phương pháp trước đó, đem lại nhiều triển vọng trong việc ứng dụng phát triển nghiên cứu khoa học cũng như làm tăng mức lợi nhuận trong các hoạt động kinh doanh

1.2 Nhiệm vụ chính của khai phá dữ liệu

Rõ ràng mục đích của khai phá dữ liệu là các tri thức chiết xuất được sẽ được sử dụng cho lợi ích cạnh tranh trên thương trường và các lợi ích trong nghiên cứu khoa học

Do đó, có thể coi mục đích của khai phá dữ liệu [4] sẽ là mô tả

(description) và phân lớp, dự đoán (classification/prediction) Các mẫu mà khai phá dữ liệu phát hiện được nhằm vào các mục đích này Phân lớp/dự đoán liên quan đến việc sử dụng các biến hoặc các trường trong CSDL để chiết xuất ra các mẫu là các dự đoán những giá trị chưa biết hoặc những giá trị trong tương lai của các biến đáng quan tâm, gồm các bài toán nhỏ như: bài toán cây quyết định, mạng noron, luật quy nạp, máy hỗ trợ vector, mô hình Markov ẩn… Mô

tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể hiểu được Mô tả gồm có phân tích luật, phân nhóm, tóm tắt…

Để đạt được hai mục đích này, nhiệm vụ chính của khai phá dữ liệu bao gồm như sau:

• Phân lớp (Classification) : Phân lớp là việc học một hàm ánh xạ (hay phân loại) một mẫu dữ liệu vào một trong số các lớp đã xác định

• Hồi quy (Regression) : Hồi quy là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực

• Phân nhóm (Clustering): Là việc mô tả chung để tìm ra các tập xác định, các nhóm hay các loại để mô tả dữ liệu Các nhóm có thể tách riêng nhau hoặc phân cấp hoặc gối lên nhau Có nghĩa là một

dữ liệu có thể vừa thuộc nhóm này, vừa thuộc nhóm kia

• Khai phá luật kết hợp (Association Rule): tìm ra các large itemset, các mối liên quan, kết hợp và cấu trúc nhân quả trong tập

Trang 11

các khoản mục hay đối tượng trong CSDL giao dịch, CSDL quan hệ hay từ các kho lưu trữ thông tin khác

• Tóm tắt (Summarization) : Liên quan đến các phương pháp tìm kiếm một mô tả tóm tắt cho một tập con dữ liệu

• Mô hình hoá phụ thuộc (Dependency Modeling): Bao gồm việc tìm kiếm một mô hình mô tả sự phụ thuộc đáng kể giữa các biến Các mô hình phụ thuộc tồn tại dưới hai mức : mức cấu trúc của mô hình xác định (thường ở dạng đồ hoạ) các biến nào là phụ thuộc cục

bộ với nhau, mức định lượng của một mô hình xác định độ mạnh của sự phụ thuộc theo một thước đo nào đó

• Phát hiện sự thay đổi và lạc hướng (Change and Deviation Detection): Tập trung vào khai thác những thay đổi đáng kể nhất trong dữ liệu từ các giá trị chuẩn hoặc được đo trước đó

Những nhiệm vụ khác nhau này yêu cầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn giải thuật khai phá dữ liệu khác nhau

1.3 Khai phá dữ liệu mô tả

1.3.1 Phân nhóm

Cân nhắc việc nhóm tập các đối tượng dựa trên độ tương đồng của chúng với các thuộc tính và/ hoặc trạng thái gần kề của chúng trong một không gian

véctơ Phân nhóm dữ liệu Error! Reference source not found., [4] được gọi

là học không giám sát Một ứng dụng của lập nhóm các khách hàng của ngân

hàng sao cho việc cung cấp dịch vụ cho khách hàng là có hiệu quả nhất Ngân hàng có thể nhóm các nhóm khách hàng như sau:

+ đầu tư linh hoạt

+ đầu tư duy trì

+ đầu tư cân bằng

Lợi tức

Nợ

Đầu tư cân bằng

Đầu tư duy trì Đầu tư linh hoạt

Trang 12

Bài toán có ứng dụng rất nhiều trong phân nhóm tài liệu, phân nhóm thuật ngữ

Các thuật toán chính của bài toán phân nhóm là K-means, thuật toán phân nhóm bậc tích luỹ

Không nên nhầm lẫn phân nhóm với phân đoạn Phân đoạn liên quan tới bài toán chỉ ra các nhóm có đặc điểm chung Phân nhóm là cách phân dữ liệu vào các nhóm chưa được định nghĩa trước, còn phân loại sẽ phân dữ liệu vào thành các nhóm đã định nghĩa trước

1.4 Khai phá dữ liệu dự đoán

Trước khi xây dựng được mô hình dự đoán hiệu quả, ta cần phải hiểu dữ liệu Mục tiêu của khai phá dữ liệu là tìm ra những tri thức ẩn chứa bên trong

dữ liệu Nhờ xây dựng một mô hình thức tế dựa trên tập hợp dữ liệu từ nhiều nguồn khác nhau gồm cả dữ liệu kinh doanh, thị hiếu khách hàng, thông tin nhân khẩu, điều khiển dữ liệu và các cơ sở dữ liệu mở rộng có liên quan như thông tin thời tiết, thông tin văn phòng Kết quả của việc xây dựng mô hình là một bản mô tả các mẫu và mối quan hệ dữ liệu có thể hỗ trợ cho việc dự đoán

Để tránh khó hiểu trong các khía cạnh khác nhau của khai phá dữ liệu, cần đưa

ra cấu trúc công việc cần thực hiện cho quá trình dự đoán

• Mục tiêu công việc

mô hình tuyến tính Có nhiều thuật toán đã được công bố hiện nay, với cây quyết định ta có CART, C5.0 Quest hay CHAID

Mô hình dự đoán [4] được xây dựng hay huấn luyện sử dụng dữ liệu, trong đó giá trị các biến tương ứng là đã biết Kiểu huấn luyện này đôi khi được

gọi là học có giám sát

1.5 Khái quát các kỹ thuật KTDL

1.5.1 Khai thác tập phổ biến và luật kết hợp: là tiến trình khám phá các tập

giá trị thuộc tính xuất hiện phổ biến trong các đối tượng dữ liệu Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị thuộc tính nhằm phản ánh

Trang 13

khả năng xuất hiện đồng thời các giá trị thuộc tính trong tập các đối tượng Một luật kết hợp X->Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất hiện đồng thời tập Y Trong CSDL bán hàng, một luật kết hợp tiêu biểu như sau:

Có 67% khách hàng mua bia 333, rượu Nàng Hương thì mua bánh tôm Cầu tre

Luật kết hợp giúp các nhà hoạch định hiểu rõ xu thế bán hàng, tâm lý khách hàng…từ đó đưa ra các chiến lược bố trí mặt hàng, kinh doanh, tiếp thị, tồn kho…

1.5.2 Khai thác mẫu tuần tự: là tiến trình khám phá các mẫu tuần tự phổ

biến phản ánh mối quan hệ giữa các biến cố trong các CSDL hướng thời gian Một luật mô tả mẫu tuần tự có dạng tiêu biểu X-> Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Một luật thể hiện mẫu tuần tự tiêu biểu:

Có 80% khách hàng mua Ao thun Việt Tiến, mua bóng Động lực thì sau

3 ngày mua quần Việt Tiến

Nhờ mẫu tuần tự, có thể khám phá các xu thế phát triển hành vi của đối tượng

1.5.3 Phân lớp dữ liệu: là tiến trình khám phá các luật phân loại hay đặc

trưng cho các tập dữ liệu đã được xếp lớp Tập dữ liệu học bao gồm tập đối tượng đã được xác định lớp sẽ được dùng để tạo mô hình phân lớp dựa trên đặc trưng của đối tượng trong tập dữ liệu học Các luật phân lớp được sử dụng để xây dựng các bộ phân lớp dữ liệu Phân lớp dữ liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hướng quy luật phát triển Áp dụng vào tiến trình phân lớp dữ liệu khách hàng trong CSDL có thể xây dựng các luật phân lớp khách hàng Một luật phân lớp có dạng tiêu biểu sau:

Nếu khách hàng ở khu vực 1 và có doanh số năm trước > 200 triệu và

có cửa hàng ở khu thị tứ thì thuộc loại khách hàng có thể giao hàng trước trả tiền sau

1.5.4 Khai thác cụm: là tiến trình nhận diện các cụm tiềm ẩn trong tập các

đối tượng chưa được xếp lớp Tiến trình khai thác cụm dựa trên mức độ tương

tự giữa các đối tượng Các đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm là cực đại và mức độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là cực tiểu Các cụm được đặc trưng bằng các tính chất chung của tất cả các đối tượng trong cụm Do vậy, khảo sát

các cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ liệu lớn 1.6 Những thách thức trong KTDL

KTDL phải làm việc với khối lượng dữ liệu lớn và do từ nhiều nguồn khác nhau(CSDL, Internet, các loại thiết bị thu nhận tín hiệu, các loại thiết bị nhận dạng, các loại thiết bị lưu trữ như băng từ, CD…) nên vấn đề tốc độ xử lý là vấn đề quan tâm trước nhất Có hai phương hướng để giải quyết vấn đề này là nâng cao năng lực của phần cứng và cải tiến phần mềm, trong đó việc nghiên cứu đề xuất các thuật toán hiệu quả có khả năng làm việc trên khối lượng dữ liệu lớn, và có độ phức tạp tính toán thấp là một hướng nghiên cứu đầy tiềm năng Từ nhu cầu thực tế trên, gần đây đã xuất hiện nhiều ngành khoa học công nghệ hỗ trợ KTDL như tính toán song song, máy tính lượng tử, công nghệ nano, phát triển thuật toán…

Trang 14

Chương 2: PHÂN LỚP DỮ LIỆU – CÁC THUẬT TOÁN

PHÂN LỚP

Chương này, sẽ đi sâu về một ứng dụng của khai phá dữ liệu là phân lớp

dữ liệu và là nội dung chính của thực tập tốt nghiệp lần này Bên cạnh, đưa ra những khái niệm về phân lớp dữ liệu, về các thuật ngữ của các thuật toán Còn

đi sâu vào một số thuật toán về phân lớp dữ liệu và có minh họa trực quan về từng thuật toán Chương sau, tác giả sẽ nói sơ lược về ngôn ngữ lập trình dùng để thử nghiệm các thuật toán

2.1 Mở đầu:

Phân lớp dữ liệu (data classification) là xếp đối tượng dữ liệu vào một trong các lớp đã được xác định trước Phân lớp dữ liệu gồm hai bước là xây dựng mô hình và vận hành mô hình

2.1.1 Xây dựng mô hình: nhằm mục tiêu mô tả một tập những lớp đã

được định nghĩa trước trong đó mỗi bộ hoặc mẫu sẽ được gán về một lớp đã xác định trước bởi thuộc tính nhãn lớp Tập hợp những bộ được dùng để xây dựng mô hình được gọi là tập dữ liệu học (dưới đây sẽ gọi tắt là tập học) Mô hình được biểu diễn dưới dạng luật phân lớp, cây quyết định hoặc công thức toán học…

Ý nghĩa: Xây dựng mô hình là xây dựng luật phân lớp, xây dựng cây quyết định hoặc là công thức toán học

2.1.2 Vận hành mô hình: nhằm mục đích xác định lớp của dữ liệu trong

tương lai hoặc phân lớp những đối tượng chưa biết Trước khi vận hành mô hình cần đánh giá độ chính xác của mô hình trong đó các mẫu kiểm tra (đã biết được lớp) được đem so sánh với kết quả phân lớp của mô hình Độ chính xác là phần trăm của số mẫu kiểm tra được phân lớp đúng Lưu ý tập kiểm tra và tập học là hai tập độc lập với nhau

Dữ liệu huấn luyện

Bộ phân lớp (Mô hình)

Các thuật toán phân lớp

IF Trời= Trong AND Áp Suất=Cao Then Kết Quả=Không mưa

Hình 2.1 Xây dựng mô hình

Trời Áp Suất Gió Kết Quả

Trong Cao Bắc Không mưa

Mây Trung Bình Bắc Mưa

Trong Thấp Bắc Mưa

Mây Thấp Nam Không mưa

Trong Cao Nam Không mưa

Trang 15

2.2 Phân lớp quy nạp trên cây quyết định:

Cây quyết định gồm các nút trong biểu diễn giá trị thuộc tính, các nhánh biểu diễn đầu ra của kiểm tra, nút là biểu diễn nhãn lớp Cây quyết định được tạo theo hai giai đoạn là tạo cây và tỉa nhánh

Trong giai đoạn tạo cây, lúc bắt đầu tất cả các mẫu học đều nằm ở nút gốc, sau đó các mẫu học được phân chia một cách đệ quy dựa trên thuộc tính được chọn Bước tỉa nhánh nhằm tìm và xóa những nhánh có phần tử không thể xếp vào lớp nào cả

Bước vận hành nhằm kiểm tra những giá trị thuộc tính của mẫu đối với các giá trị trên nhánh của cây quyết định

Thuật toán tạo cây quyết định bao gồm các bước sau:

Bước 1: Cây được xây dựng đệ quy từ trên xuống và theo cách chia để trị

Bước 2: Ban đầu tất cả mẫu học đều nằm ở gốc

Bước 3: Thuộc tính được phân loại(nếu là giá trị liên tục được rời rạc hóa) Bước 4: Các mẫu học được phân chia đệ quy dựa trên thuộc tính chọn lựa Bước 5: Kiểm tra những thuộc tính được chọn dựa trên heristic hoặc của một

tiêu chuẩn thống kê

Điều kiện để dừng phân chia tập học:

1 Tất cả những mẫu học đối với một nút cho trước đều cùng lớp

2 Không còn thuộc tính nào để phân chia tiếp:

3 Không còn mẫu học

Độ lợi thông tin (ìnormation gain) là đại lượng được dùng để chọn thuộc tính nhằm phân chia tập học Thuộc tính được chọn là thuộc tính có độ lợi thông tin lớn nhất

p

+ log2

n p

n

+

Dữ liệu kiểm tra

Bộ phân lớp

Dữ liệu chưa phân lớp

(Trong, Cao, Nam, ?)

Không mưa Kết quả

Hình 2.2 Vận hành mô hình

TRỜI ÁP SUẤT GIÓ KẾT QUẢ

Trong Cao Nam Không mưa

Mây Thấp Nam Không mưa

Mây Trung bình Bắc Mưa

Trong Cao Bắc Không mưa

Trang 16

Giả sử thuộc tính A được chọn để phân hoạch S thành các tập hợp { S1 ,S2 …

Sv, } Nếu Si chứa pi mẫu của lớp P và ni mẫu của lớp N thì entropy cần để phân loại các đối tượng trong cây Si là:

Thuật toán ID3(S, D, A)

Vào: Tập học S: thuộc tính quyết định D, tập thuộc tính A

Ra: Nút gốc của cây_quyết định

Begin

- Tạo “Nút_gốc” cho cây quyết định

- If tất cả mẫu học của S đều có giá trị của D là P, trả về cây có một nút duy nhất là nút_gốc với nhãn “P”

- If tất cả mẫu học của S đều có giá trị của D là N, trả về cây có một nút duy nhất là nút_gốc với nhãn “N”

- If A là rỗng, trả về cây có nút duy nhất là nút_gốc với nhãn là trị phổ biến nhất của D trong tập mẫu

- Else Begin

• Gọi X là thuộc tính của A phân lớp S tốt nhất// tính độ lợi

• Gán X vào thuộc tính quyết định D của nút_gốc

• For each trị v của X + Thêm một nhánh cây mới dưới nút_gốc ứng với X=v + Gọi Sv là tập con của v trị của X là v

+ If Sv là rỗng _ Thêm dưới nhánh mới này, một nút là có nhãn là trị phổ biến nhất của thuộc tính quyết định trong S Else

_ Thêm cây con vào dưới nhánh mới này _ ID3(Sv, D, A-{X})

End Return nút_gốc

End

Ví dụ 2.1: Để minh họa thuật toán ID3, ta sử dụng dữ liệu “chơi tennis” trong

bảng 2.1 sau:

Các thuộc tính và miền giá trị tương ứng bao gồm:

Thuộc tính Thờitiết có miền giá trị {Nắng, U_ám, Mưa}

Trang 17

Thuộc tính Nhiệtđộ có miền giá trị {Nóng, Mát, Ấm_áp}

Thuộc tính Độẩm có miền giá trị {Cao, Vừa}

Thuộc tính Lớp có miền giá trị {P, N}

Tính entropy cho thuộc tính Thờitiết:

Thời tiết pi ni I(pi ,ni)

Bảng 2.1: Tập dữ liệu học “Chơi tennis”

Thời tiết Nhiệt độ Độ ẩm Gió Lớp

3 Chọn thuộc tính có độ lợi thông tin lớn nhất đó là thuộc tính “Thờitiết”

4 Áp dụng ID3 cho mỗi nút con của nút gốc này cho đến khi đạt đến nút lá hoặc nút có entropy =0

Cây quyết định do thuật toán ID3 tạo ra trong hình 4.3

Hình 2.3 Cây quyết định

Trang 18

Rút luật từ cây quyết định:

- Mỗi một đường dẫn từ gốc đến là trong cây tạo thành một luật

- Mỗi cặp giá trị thuộc tính trên một đường dẫn tạo nên một sự liên kết

- Nút lá giữ quyết định phân lớp dự đoán

- Các luật tạo được dễ hiểu hơn các cây

If Thờitiết = Nóng AND Độẩm= Vừa THEN Chơi tennis

Thuật toán ID3 có các khuyết điểm sau đây:

a> Thiếu sót thứ nhất: Một thiếu sót quan trọng của ID3 là hết khả năng phân chia tại một nút

b> Thiếu sót thứ hai: ID3 đòi hỏi số mẫu học lớn Khả năng khắc phục nhiễu của tập học là vô cùng quan trọng khi ứng dụng thuật giải ID3 Nếu có nhiễu và tập học không lớn thì ID3 có thể dẫn đến kết quả sai

Có nhiều dạng mở rộng thuật toán ID3 như sau:

• Thuật toán ID3 được mở rộng cho trường hợp tập mẫu có thuộc tính liên tục Lúc đó, cần phân chia thuộc tính liên tục thành một tập rời rạc các khoảng

• Đối với các mẫu học có một số thuộc tính chưa có giá trị được thực hiện bằng cách gán giá trị thông dụng nhất của thuộc tính hoặc gán khả năng có thể có với từng giá trị khả dĩ

C4.5 là phiên bản của thuật toán ID3 trên một số khía cạnh sau: Trong bước xây dựng cây quyết định, tập học có những bản ghi với những giá trị thuộc tính chưa biết Lúc đó chúng ta chỉ tạo mô hình dựa trên các bản ghi đã xác định đầy đủ giá trị thuộc tính Trong bước vận hành cây quyết định, có thể phân loại những bản ghi có những giá trị thuộc tính chưa biết bằng việc ước lượng xác suất những kết quả có khả năng xảy ra Trong ví dụ chơi tennis, nếu có một bản ghi chưa biết giá trị của thuộc tính Độẩm, nhưng biết giá trị của thuộc tính Thờitiết là Nắng ta xử lý như sau

Di chuyển từ nút gốc Thời tiết đến nút Độ ẩm theo cạnh được đánh nhãn

là Nắng Lưu ý nếu thuộc tính Độẩm có giá trị 75 thì có 2 bản ghi, nếu thuộc tính Độ ẩm có trị lớn hơn 75 thì có 3 bản ghi Do vậy có thể đưa ra câu trả lời

Hình 2.4 Rút luật từ Cây quyết định

Trang 19

cho xác suất xảy ra khả năng là 0,4 cho chơi tennis và 0,6 cho không chơi tennis

Đối với việc rời rạc thuộc tính liên tục Giả sử A là thuộc tính liên tục, thuật toán có thể tạo một thuộc tính kiểu logic mới có tên là Ac, thuộc tính này

có trị Đúng nếu A<c và trị sai nếu A>= c Vấn đề đặt ra là chọn ngưỡng c Giá trị c được chọn nhằm tạo ra độ lợi lớn nhất Xét các giá trị của thuộc tính A trong tập học Giả sử chúng được sắp theo thứ tự tăng dần là A1, A2,… Am Với từng giá trị Ai , i= 1, 2,… m , ta chia các bản ghi thành hai phần, trong đó một phần chứa các mẫu có trị thuộc tính A<c và phần còn lại chứa các mẫu có giá trị thuộc tính A>= c Với những lần phân hoạch này, ta tính lại độ lợi thông tin của phép phân hoạch và tìm phân hoạch có độ lợi lớn nhất

Giả sử thuộc tính Độ Ẩm trong ví dụ chơi tennis là thuộc tính liên tục

Ta cần xác định độ lợi thông tin cho mỗi lần phân hoạch tập học theo thuộc tính Độ ẩm và tìm được sự phân hoạch tốt nhất tại ngưỡng c=75 Lúc đó thuộc tính Độ ẩm được biến đổi thành thuộc tính Độ ẩm_ logic với giá trị Sai cho các mẫu có giá trị của thuộc tính Độ ẩm < 75 và giá trị Đúng cho các mẫu có giá trị của thuộc tính Độ ẩm>=75

2.2.1 Rút gọn cây quyết định và tập luật suy dẫn

Việc xây dựng cây quyết định đều dựa vào tập học Trong thực tế cây quyết định có thể phát sinh các đường đi dài và không đều Việc rút gọn cây quyết định được thực hiện bằng cách biến cây con thành nút lá Công việc này được thực hiện tại nơi nếu lỗi phân lớp do cây con sinh ra lớn hơn nút lá Winston đã giới thiệu cách dùng phép thử Fisher để xác định thuộc tính phân loại có thực sự phụ thuộc vào các thuộc tính khác hay không Nếu điều này không xảy ra thì thuộc tính đó không cần phải xuất hiện trong đường đi hiện tại của cây quyết định Quninlan và Breiman đề xuất những heuristic phức tạp để rút gọn cây quyết định Từ mỗi đường đi từ gốc đến lá trong cây quyết định, ta

dễ dàng tạo ra vế trái của luật phân lớp dựa trên nhãn của các nút và nhãn của các các cung

2.2.2 Phân lớp với chỉ số Gini

Tương tự như độ lợi ở trên IBM trong phần mềm IBM Intelligent Miner

đã đưa ra đại lượng cho việc phân lớp là chỉ số Gini như sau

Nếu một tập dữ liệu T chứa những mẫu từ n lớp, chỉ số Gini, gini(T) được định nghĩa như sau:

Với pj là tần số liên quan của lớp j trong T

Nếu một tập hợp dữ liệu T được chia thành hai tập con T1 và T2 với kích thước tương ứng là N1 và N2 Chỉ số Gini của dữ liệu chia cắt chứa những ví dụ

từ n lớp, gini(T) được định nghĩa như sau:

Thuộc tính có giá trị ginisplit(T) nhỏ nhất được chọn để phân chia nút

Trang 20

2.3 Phương pháp phân lớp Bayes

2.3.1 Sự phân hoạch và công thức Bayes

Cho H1, H2, …Hn là một phân hoạch không gian mẫu M và A là biến cố bất kỳ trong M Ta có:

P(Hi/Ai)=

)(

)()(

A P

A P P

H

H

i i

Định lý Bayes: Cho H1, H2, …Hn là một phân hoạch không gian mẫu và A là biến cố trong M Khi đó với mọi i=1, 2, …,n ta có:

H H

H H

A P P

A P P

1

)(

)(

)()(

2.3.2 Bộ phân lớp Naive Bayes

Cho V1, V2,… Vm là phân hoạch không gian mẫu V, mỗi Vi là một lớp Không gian các thể hiện X gồm các thể hiện được mô tả bởi tập thuộc tính A1,

A2,… An Không gian các thể hiện X là tập học Khi có thể hiện với giá trị <a1,

a2,… an >, bộ phân lớp sẽ xuất giá trị hàm phân lớp f(x) là một trong các Vi Tiếp cận Bayes lấy giá trị có xác suất cao nhất VMAP cho thể hiện mới Chữ MAP viết tắt của cụm từ Maximum A Posterior

VMAP= max P(vi, a1 , a2 ,… an )

Sử dụng định lý Bayes, ta có:

VMAP=

),

,(

)

|,

,()(max

2 1

1 2

1

a a a

v a a a v

n

n i

P P

v i∈ =max P(vi)P(a1,a2, an|v1)

(2.1) Trong công thức trên có hai số hạng cần quan tâm là P(vi) và P(a1 , a2,… an ) Ta tính P(vi) bằng cách đếm số lần xuất hiện của giá trị đích vj trong tập học Để tính P(a1 , a2 ,… an ) ta giả thuyết ban đầu các thuộc tính là độc lập nhau Nói cách khác, xác suất của một thể hiện quan sát được <a1, a2,… an > trên mỗi lớp vj là tích các khả năng của từng thuộc tính riêng biệt trên vj

Trang 21

Bộ phân lớp Bayes liên quan đến bước học trong đó P(vj) và P(a1 , a2 ,… an ) được tính dựa trên tập học

* một mẫu chưa gặp X=<mưa, nóng, cao, không>

* P(X | p) P(p)= P(mưa | p).P(nóng | p) P(cao | p).P(không | p) P(p)

For each thuoc_tinh ai

P(ai / vj) ← extimate P(ai / vj) End for

Trang 22

- Tập luật R có giá trị khởi tạo là Ø

- Tất cả các dòng trong bảng ban đầu chưa được đánh dấu (kiểm tra)

2.4.2 Thuật giải ILA

- Bước 1: Chia bảng m mẫu ban đầu thành n bảng con Mỗi bảng con ứng với

một giá trị của thuộc tính phân lớp tập mẫu

(* thực hiện các bước 2 đến 8 cho mỗi bảng con*)

-Bước 2: Khởi tạo bộ đếm kết hợp thuộc tính j, j=1

-Bước 3: Với mỗi bảng con đang khảo sát, phân chia danh sách các thuộc tính

theo các tổ hợp phân biệt, mỗi tổ hợp ứng với j thuộc tính phân biệt

-Bước 4: Với mỗi tổ hợp các thuộc tính, tính số lượng các giá trị thuộc tính

xuất hiện theo cùng tổ hợp thuộc tính trong các dòng chưa được đánh dấu của bảng con đang xét(mà đồng thời không xuất hiện với tổ hợp thuộc tính này trên các bảng còn lại) Gọi tổ hợp đầu tiên(trong bảng con) có số lần xuất hiện nhiều nhất là tổ hợp lớn nhất

-Bước 5: Nếu tổ hợp lớn nhất bằng Ø, tăng j lên 1 và quay lại bước 3

-Bước 6: Đánh dấu các dòng thỏa tổ hợp lớn nhất của bảng con đang xử lý theo

lớp

-Bước 7: Thêm luật mới vào tập luật R, với vế trái là tập các giá trị của thuộc

tính ứng với tổ hợp lớn nhất(kết hợp các thuộc tính bằng toán tử AND) và vế phải là giá trị thuộc tính quyết định tương ứng

-Bước 8: Nếu tất cả các dòng đều đã được đánh dấu phân lớp, tiếp tục thực hiện

từ bước 2 cho các bảng con còn lại Ngược lại (nếu chưa đánh dấu hết các dòng) thì quay lại bước 4 Nếu tất cả các bảng con đã được xét thì kết thúc, kết quả thu được là tập luật cần tìm

2.4.3 Minh họa thuật giải ILA

Bảng : Tập mẫu học cho bài toán phân lớp

Trang 23

-Áp dụng bước 2 của thuật giải vào bảng con thứ nhất trong bảng trên Với j=1, danh sách các tổ hợp thuộc tính gồm có {Size}, {Color}, {Shape}

-Với tổ hợp {Size}, giá trị thuộc tính “medium” xuất hiện trong bảng con thứ nhất nhưng không có trong bảng con thứ hai, do đó giá trị tổ hợp lớn nhất là

“medium” Bởi vì các giá trị thuộc tính “small” và “large” xuất hiện trong cả hai bảng con, nên không được xét trong bước này Với tổ hợp {Size}, giá trị thuộc tính “medium” chỉ bằng 1

-Xét tiếp tổ hợp {Color}thì giá trị tổ hợp lớn nhất là bảng 2, ứng với thuộc tính”green”, còn thuộc tính “blue” bằng 1

-Tương tự, với tổ hợp {Shape} ta có “brick” xuất hiện một lần, và “sphere” hai lần Đến cuối bước 4, ta có tổ hợp {Color} với thuộc tính “green” và {Shape} với thuộc tính “sphere” đều có số lần xuất hiện lớn nhất là 2 Thuật toán mặc định chọn trường hợp thứ nhất để xác định luật tổ hợp lớn nhất Dòng 3 và 4 được đánh dấu đã phân lớp, ta có luật dẫn như sau:

Rule 1: IF Color là green THEN Decision là yes

-Tiếp tục thực hiện bước 4 đến 8 cho các mẫu còn lại (chưa đánh dấu) trong bảng con này (tức dòng 1 và 2) Áp dụng tương tự như trên, ta thấy giá trị thuộc tính “medium” của {Size}, “blue” của “Color”, “brick” và “sphere” của {Shape} đều xuất hiện một lần Bởi vì số lần xuất hiện này giống nhau, thuật giải áp dụng luật mặc định chọn trường hợp đầu tiên Ta có thêm luật sau:

Rule 2: IF Size là medium THEN Decision là yes

Đánh dấu cho dòng 1 trong bảng con thứ nhất Tiếp tục áp dụng bước 4 đến 8 trên dòng còn lại (tức dòng 2) Giá trị thuộc tính “sphere” của {Shape} xuất hiện một lần, ta có luật thứ ba

Rule 3: IF Shape là sphere THEN Decision là yes

Dòng 2 được đánh dấu Như vậy, tất cả các dòng trong bảng con 1 đã được đánh dấu, ta chuyển qua xử lý bảng con 2

-Thuộc tính “wedge” của {Shape} xuất hiện hai lần trong dòng 1 và 2 của bảng con này Đánh dấu các dòng này với luật dẫn thứ tư sau:

Rule 4: IF Shape là wedge THEN Decision là no

-Với dòng còn lại (tức dòng ) của bảng con 2, ta có thuộc tính {Size} với giá trị

“large” có xuất hiện trong bảng con 1 Do đó, theo thuật giải, ta loại bỏ trường hợp này Tương tự như vậy cho giá trị “red” của {Color} và “pillar” của

Bảng con 1

Bảng con 2

Bảng:Với n=2 Chia thành hai bảng con theo thuộc tính Decision

Trang 24

{Shape} Khi đó, ILA tăng j lên 1 và khởi tạo các tổ hợp hai thuộc tính là {Size, Color}, {Size, Shape}, {Color, Shape} Các tổ hợp thứ nhất và thứ ba thỏa mãn điều kiện không xuất hiện trong bảng con 1 với các cặp thuộc tính hienj có của dòng này Theo luật mặc định, ta chọn luật theo trường hợp thứ nhất Đánh dấu dòng này, ta có thêm luật dẫn thứ 5

Rule 5: IF Size là large and Color là red Then decision là no

Kết quả thu được 5 luật:

Rule 1: IF Color là green THEN Decision là yes

Rule 2: IF Size là medium THEN Decision là yes

Rule 3: IF Shape là sphere THEN Decision là yes

Rule 4: IF Shape là wedge THEN Decision là no

Rule 5: IF Size là large AND Color là red THEN Decision là no

Đánh giá thuật giải:

-Số lượng các luật thu được xác định mức độ thành công của thuật giải Đây chính là mục đích chính của các bài toán phân lớp thông qua một tập mẫu học Ngoài ra, để đánh giá các hệ học quy nạp là khả năng hệ thống có thể phân lớp các mẫu được đưa vào sau này

-Thuật giả ILA được đánh giá mạnh hơn hai thuật giải về phương pháp học quy nạp trước đây là ID3 và AQ

2.5 Các phương pháp phân lớp khác:

2.5.1 Phân lớp dựa trên luật kết hợp

Tìm các luật kết hợp có độ hỗ trợ và độ tin cậy cao có dạng “cond_set = y” với y là một nhãn lớp

2.5.2 Thuật giải di truyền

Thuật giải di truyền (genetic algorithm) dựa trên nguyên lý Darwin về

sự tiến hóa sinh học Mỗi luật được biểu diễn bởi một chuỗi bit Một mẫu khởi tạo được tạo ra bao hàm những luật tạo một cách ngẫu nhiên Dựa trên khái niệm cái phù hợp nhất sẽ tồn tại, những quy luật phù hợp nhất sẽ được biểu diễn bởi sự phân lớp chính xác trên tập hợp huấn luyện Sự phù hợp của một luật được biểu diễn bởi độ chính xác của phân lớp trên tập hợp những ví dụ huấn luyện Kết quả được tạo ra bởi sự lai ghép và đột biến

2.5.3 Tiếp cận tập thô

Tập thô được sử dụng để xấp xỉ hoặc định nghĩa “thô” những lớp tương đương Một tập thô cho một lớp C được xấp xỉ bởi hai tập hợp xấp xỉ dưới và xấp xỉ trên

Trang 25

Chương 3: SƠ LƯỢC VỀ JAVA

Chương này, tác giả sẽ trình bày sơ lược về ngôn ngữ Java Lịch sử phát triển Java Ví sao tác giả lại sẽ dụng Java để thử nghiệm chương trình? Tác giả sử dụng Java như thế nào?Những lớp dữ liệu nào tác giả sử dụng cho lập trình Chương sau, tác giả sẽ xây dựng giải pháp cho yêu cầu của đề tài và thử nghiệm kết quả trên dữ liệu thực tế tại trường Đại học Nha trang

3.1 Lịch sử Java

Java do đội ngũ chuyên gia, đứng đầu là James Goshing thuộc Sun Microsystem, công ty nổ tiếng về phần mềm máy trạm thiết kế Ban đầu, vào năm 1991, với tên Oak, Java được thiết kế cho chương trình điện tử tiêu dùng dạng nhúng (embedded consumer electronic application) Đến năm 1995, Java được tái thiết kế để xây dựng chương trình ứng dụng Internet và chính thức lấy tên Java Các chương trình Java có thể nhúng vào các trang HTML, được trình duyệt Web tải xuống nhằm cung cấp hiệu ứng họat hình động và khả năng tương tác cho khách hàng Web Sức mạnh của Java không bị giới hạn ở chương trình ứng dụng Web Java thật sự là ngôn ngữ lập trình đa năng Nó có đầy đủ đặc tính độc lập trình lập trình và có thể dùng vào việc thiết kế chương trình ứng dụng độc lập Bản chất của Java là ngôn ngữ hướng đối tượng xuất thân từ ngôn ngữ thủ tục, nhưng Java đã được thiết kế ở dạng ngôn ngữ hướng đối tượng ngay từ đầu Lập trình hướng đối tượng( OOP) hiện là phương pháp lập trình phổ biến, thay thế vị trí của các kỹ thuật lập trình thủ tục truyền thống

3.2 Thiết kế và ưu điểm của Java

Java là ngôn ngữ lập trình hướng đối tượng Một ngôn ngữ hướng đối tượng sử dụng kỷ thuật phân chia, đóng gói, thừa kế và đa hình hầu cung cấp tính linh động, tính đơn thể chức năng và khả năng sử dụng ở mức cao trong thiết kế phần mềm Java là ngôn ngữ độc lập với hệ nền Chương trình Java có thể chạy trên bất cứ máy tính nào có hệ điều hành hỗ trợ Java Virtual Machine, một thành phần phần mềm dịch mã lệnh Java và thực thi các hành động phối hợp

Java có tính phân tán với khả năng nối mạng cài sẵn Việc xử lý đồng thời có thể xảy ra trên nhiều máy tính trên Internet

Java có cơ chế đa tuyến thi hành Đa tuyến thi hành là khả năng chương trình thực hiện đồng thời nhiều tác vụ; ví dụ, chương trình có thể tải về và phát tập tin video cùng lúc

Java rất an toàn Máy tính trở nên dễ bị tấn công khi được kết nối với nhau Virus và các chương trình phá hoại có thể gây tổn hại cho máy tính của

Ngày đăng: 26/03/2015, 16:14

HÌNH ẢNH LIÊN QUAN

Hình 1: Quá trình khai phá dữ liệu - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 1 Quá trình khai phá dữ liệu (Trang 9)
Hình 2.1 Xây dựng mô hình Trời  Áp Suất Gió  Kết Quả - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 2.1 Xây dựng mô hình Trời Áp Suất Gió Kết Quả (Trang 14)
Hình 2.2 Vận hành mô hình - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 2.2 Vận hành mô hình (Trang 15)
Bảng 2.1: Tập dữ liệu học “Chơi tennis” - Cài đặt một số thuật toán phân lớp dữ liệu
Bảng 2.1 Tập dữ liệu học “Chơi tennis” (Trang 17)
Hình 2.4. Rút luật từ Cây quyết định - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 2.4. Rút luật từ Cây quyết định (Trang 18)
Bảng : Tập mẫu học cho bài toán phân lớp - Cài đặt một số thuật toán phân lớp dữ liệu
ng Tập mẫu học cho bài toán phân lớp (Trang 22)
Hình 4: Các chương trình Java có thể chạy trên hệ thống khác nhau  và phối hợp họat động cùng nhau - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 4 Các chương trình Java có thể chạy trên hệ thống khác nhau và phối hợp họat động cùng nhau (Trang 27)
Hình 5.1 Mô hình chung hệ thống - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 5.1 Mô hình chung hệ thống (Trang 32)
Hình 5.3 : Module hóa chức năng chương trình - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 5.3 Module hóa chức năng chương trình (Trang 33)
4.1.2  Sơ đồ chức năng chương trình - Cài đặt một số thuật toán phân lớp dữ liệu
4.1.2 Sơ đồ chức năng chương trình (Trang 33)
Hình 5.5. Module chương trình - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 5.5. Module chương trình (Trang 36)
Hình 2: Giao diện chính của chương trình - Cài đặt một số thuật toán phân lớp dữ liệu
Hình 2 Giao diện chính của chương trình (Trang 37)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w