TỔNG QUAN KHAI PHÁ DỮ LIỆU1.1 Giới thiệu về khai phá dữ liệu Khai phá dữ liệu data mining: Là quá trình tính toán để tìm ra các mẫutrong các bộ dữ liệu lớn liên quan đến các phương pháp
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰCKHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN KHAI PHÁ DỮ LIỆU 2
1.1 Giới thiệu về khai phá dữ liệu 2
1.1.1 Diễn giải 2
1.1.2 Các phương pháp khai thác dữ liệu 3
1.1.3 Một số tính năng nổi bật của khai phá dữ liệu 3
1.1.4 Quy trình khai phá dữ liệu 3
1.1.5 Ứng dụng khai phá dữ liệu 5
1.1.6 Các công cụ khai phá dữ liệu 5
1.2 Tiền xử lý 6
1.2.1 Dữ liệu 6
1.2.2 Làm sạch dữ liệu (data cleaning) 8
1.2.2.1 Các vấn đề của dữ liệu 8
1.2.2.2 Nguồn gốc/lý do của dữ liệu không sạch 8
1.2.2.3 Giải pháp khi thiếu giá trị của thuộc tính 8
1.2.2.4 Giải pháp khi dữ liệu chứa nhiễu/lỗi 9
1.2.3 Tích hợp dữ liệu (data integration) 9
1.2.4 Biến đổi dữ liệu (data transformation) 9
1.2.5 Thu giảm dữ liệu (data reduction) 10
CHƯƠNG 2 KỸ THUẬT PHÂN LỚP DỮ LIỆU TRONG KHAI PHÁ DỮ LIỆU 12
2.1 Giới thiệu về phân lớp 12
2.2 Phân lớp bằng phương pháp quy nạp cây quyết định 12
2.2.1 Khái niệm câu quyết định 12
2.2.2 Thuật toán quy nạp cây quyết định 13
Trang 42.2.3 Độ lơi thông tin (Information Gian) trong cây quyết định 13
2.2.4 Nội dung giải thuật học cây quyết định cơ bản ID3: 14
2.2.5 Những thiếu sót của giải thuật ID3 15
2.2.6 Giới thiệu 15
2.2.7 Giải thuật mở rộng C4.5 16
2.2.8 Thu giảm cây quyết định và những lập luận suy dẫn 16
2.2.9 Giải thuật mở rộng See5/C5.0 17
CHƯƠNG 3 ỨNG DỤNG PHÂN LỚP TRONG ĐÁNH GIÁ CHẤT LƯỢNG RƯỢU DỰA TRÊN THÀNH PHẦN HÓA HỌC 19
3.1 Đánh giá chất lượng rượu 19
3.1.1 Phát biểu bài toán 19
3.1.2 Bộ dữ liệu 19
3.1.3 Code và xử lý dữ liệu 21
3.1.4.1 Code 21
3.1.4.2 Chạy dữ liệu 23
3.1.4.3 Biểu đồ cây quyết định 23
KẾT LUẬN 24
Trang 5LỜI MỞ ĐẦU
Trong lời đầu tiên của báo cáo “Khai phá dữ liệu sử dụng phân lớp trongđánh giá chất lượng rượu dựa trên thành phần hóa học ”, nhóm chúng emmuốn gửi những lời cảm ơn và biết ơn chân thành nhất của mình tới tất cả nhữngngười đã hỗ trợ, giúp đỡ chúng em về kiến thức và tinh thần trong quá trình thựchiện bài làm
Chúng em xin chân thành gửi lời cảm ơn tới các thầy, cô giáo trong TrườngĐại Học Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tinnói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng nhưkinh nghiệm quý báu trong suốt quá trình học tập
Đặc biệt, chúng em xin gửi lời cảm ơn đến Giảng viên hướng dẫn Vũ VănĐịnh, giảng viên Khoa Công nghệ thông tin - Trường Đại Học Điện Lực Thầy đãtận tình theo sát giúp đỡ, trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiêncứu và học tập của chúng em Trong thời gian học tập với thầy, chúng em khôngnhững tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làmviệc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả Đây là những điều rất cầnthiết cho chúng em trong quá trình học tập và công tác sau này
Do thời gian thực hiện có hạn kiến thức còn nhiều hạn chế nên bài làm củanhóm chúng em chắc chắn không tránh khỏi những thiếu sót nhất định Chúng emrất mong nhận được ý kiến đóng góp của thầy, cô giáo và các bạn để nhóm em cóthêm kinh nghiệm và tiếp tục hoàn thiện báo cáo của mình
Chúng em xin chân thành cảm ơn!
Trang 6CHƯƠNG 1 TỔNG QUAN KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu về khai phá dữ liệu
Khai phá dữ liệu (data mining): Là quá trình tính toán để tìm ra các mẫutrong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm của máy học,thống kê và các hệ thống cơ sở dữ liệu Đây là một lĩnh vực liên ngành của khoa họcmáy tính… Mục tiêu tổng thể của quá trình khai thác dữ liệu là trích xuất thôngtin từ một bộ dữ liệu và chuyển nó thành một cấu trúc dễ hiểu để sử dụng tiếp Ngoài bước phân tích thô, nó còn liên quan tới cơ sở dữ liệu và các khía cạnh quản lý dữliệu, xử lý dữ liệu trước, suy xét mô hình và suy luận thống kê, các thước đo thú vị,các cân nhắc phức tạp, xuất kết quả về các cấu trúc được phát hiện, hiện hình hóa
và cập nhật trực tuyến Khai thác dữ liệu là bước phân tích của quá trình "khám phá
-Khai thác dữ liệu ( Data mining ): xác định nhiệm vụ khai thác dữ liệu và lựachọn kỹ thuật khai thác dữ liệu Kết quả cho ta một nguồn tri thức thô
-Đánh giá ( Evaluation): dựa trên một số tiêu chí tiến hành kiểm tra
và lọc nguồn tri thức thu được
-Triển khai ( Deployment )
-Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiênđến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua
Trang 71.1.2Các phương pháp khai thác dữ liệu
Phân loại (Classification): Là phương pháp dự báo, cho phép phân loại một đốitượng vào một hoặc một số lớp cho trước
Hồi qui (Regression): Khám phá chức năng học dự đoán, ánh xạ một mục dữliệu thành biến dự đoán giá trị thực
Phân nhóm (Clustering): Một nhiệm vụ mô tả phổ biến trong đó người ta tìmcách xác định một tập hợp hữu hạn các cụm để mô tả dữ liệu
Tổng hợp (Summarization): Một nhiệm vụ mô tả bổ sung liên quan đến phương pháp cho việc tìm kiếm một mô tả nhỏ gọn cho một bộ (hoặc tập hợp con) của
dữ liệu
Mô hình ràng buộc (Dependency modeling): Tìm mô hình cục bộ mô tả các phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tính năng trong tập dữliệu hoặc trong một phần của tập dữ liệu
Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): Khám phánhững thay đổi quan trọng nhất trong bộ dữ liệu
1.1.3 Một số tính năng nổi bật của khai phá dữ liệu
1.1.4Quy trình khai phá dữ liệu
Các bước quan trọng khi khai phá dữ liệu bao gồm:
Bước 1: Tiền xử lý, làm sạch dữ liệu – Trong bước này, dữ liệu được làmsạch sao cho không có tạp âm hay bất thường trong dữ liệu
Bước 2: Tích hợp dữ liệu – Trong quá trình tích hợp dữ liệu, nhiều nguồn dữliệu sẽ kết hợp lại thành một
Trang 8Bước 3: Lựa chọn dữ liệu – Trong bước này, dữ liệu được trích xuất từ cơ sở
dữ liệu
Bước 4: Chuyển đổi dữ liệu – Trong bước này, dữ liệu sẽ được chuyển đổi
để thực hiện phân tích tóm tắt cũng như các hoạt động tổng hợp
Bước 5: Khai phá dữ liệu – Trong bước này, chúng ta trích xuất dữ liệu hữu ích
từ nhóm dữ liệu hiện có
Bước 6: Đánh giá mẫu – Chúng ta phân tích một số mẫu có trong dữ liệu.Bước 7: Trình bày thông tin – Trong bước cuối cùng, thông tin sẽ được thểhiện dưới dạng cây, bảng, biểu đồ và ma trận Quá trình được thực hiện qua 9 bước:1- Tìm hiểu lĩnh vực của bài toán (ứng dụng): Các mục đích của bài toán,các tri thức cụ thể của lĩnh vực
2- Tạo nên (thu thập) một tập dữ liệu phù hợp Làm sạch và tiền xử lý dữ liệu
3-4- Giảm kích thức của dữ liệu, chuyển đổi dữ liệu: Xác định thuộc tính quantrọng, giảm số chiều (số thuộc tính), biểu diễn bất biến
5- Lựa chọn chức năng khai phá dữ liệu: Phân loại, gom cụm, dự báo, sinh racác luật kết hợp
6- Lựa chọn/ Phát triển (các) giải thuật khai phá dữ liệu phù hợp Tiến hành khai phá dữ liệu
7-8- Đánh giá mẫu thu được và biểu diễn tri thức: Hiển thị hóa, chuyển đổi, bỏ đicác mẫu dư thừa,…
9 - Sử dụng tri thức được khai phá
Trang 9Hình 1.1 Quy trình khai phá dữ liệu
1.1.5Ứng dụng khai phá dữ liệu
Có nhiều ứng dụng của khai phá dữ liệu thường thấy như:
1.1.6Các công cụ khai phá dữ liệu
RapidMiner: Công cụ đầu tiên phải kể tới đó là RapidMiner Đây là công cụkhai phá dữ liệu khá phổ biến hiện nay Được viết trên nền tảng JAVA nhưng khôngyêu cầu mã hóa để vận hành Ngoài ra, nó còn cung cấp các chức năng khai thác dữliệu khác nhau như tiền xử lý dữ liệu, biểu diễn dữ liệu, lọc, phân cụm
Weka: Công cụ được cho ra đời tại Đại học Wichita là một phần mềm khaithác dữ liệu mã nguồn mở Tương tự như RapidMiner, công cụ này không yêu cầu
mã hóa và sử dụng GUI đơn giản
Sử dụng Weka, người dùng có thể gọi trực tiếp các thuật toán học máy hoặcnhập chúng bằng mã Java Weka được trang bị đa dạng chức năng như trực quanhóa, tiền xử lý, phân loại, phân cụm
Trang 10Knime: Với khả năng hoạt động vô cùng mạnh mẽ tích hợp nhiều thành phầnkhác nhau của học máy và khai phá dữ liệu để cung cấp một nền tảng KNime hỗ trợngười dùng rất nhiều trong việc xử lý và phân tích dữ liệu, trích xuất, chuyển đổi vàtải dữ liệu.
Apache Mahout: Từ nền tảng Big Data Hadoop, người ta đã cho cho ra đờithêm Apache Mahout với mục đích giải quyết nhu cầu ngày càng tăng về khai phá dữliệu và hoạt động phân tích trong Hadoop Nó được trang bị nhiều chức năng họcmáy khác nhau như phân loại, hồi quy, phân cụm
Oracle Data Mining: Khi sử dụng Oracle Data Mining nó cho phép ngườidùng thực hiện khai phá dữ liệu trên cơ sở dữ liệu SQL để trích xuất các khung hình
và biểu đồ Các phân tích sẽ hiển thị một cách trực quan giúp người dùng dễ dàng đưa
ra dự đoán cho kế hoạch tương lai
TeraData: TeraData cung cấp dịch vụ kho chứa các công cụ khai phá dữ liệu. Nhờ khả năng thông minh được trang bị, công cụ có thể dựa trên tần suất sử dụng dữliệu của người dùng và thực hiện việc cho phép truy cập nhanh hay chậm
Với một dữ liệu bạn thường xuyên cần sử dụng, TeraData sẽ cho phép truy cậpnhanh hơn là một dữ liệu ít được sử dụng Đối với dữ liệu, nhập kho là một yêucầu cần thiết
Orange: Công cụ được lập trình bằng Python với giao diện trực quan và tươngtác dễ dàng Phần mềm Orange được biết đến bởi việc tích hợp các công cụ khai phá
dữ liệu và học máy thông minh, đơn giản
1.2 Tiền xử lý
Quá trình tiền xử lý dữ liệu, đầu tiên phải nắm được dạng dữ liệu, thuộc tính,
mô tả của dữ liệu thao tác Sau đó tiếp hành 4 giai đoạn chính: làm sạch, tích hợp, biến đổi, thu giảm dữ liệu
Trang 11Hình 1.2 Ví dụ datasetCác kiểu tập dữ liệu
- Bản ghi (record): Các bản ghi trong cở sở dữ liệu quan hệ Ma trận dữ liệu.Biểu diễn văn bản Hay dữ liệu giao dịch.„
- Đồ thị (graph): World wide web Mạng thông tin, hoặc mạng xã hội
- Dữ liệu có trật tự: Dữ liệu không gian (ví dụ: bản đồ) Dữ liệu thời gian (ví dụ:time-series data) Dữ liệu chuỗi (ví dụ: chuỗi giao dịch)
Các kiểu giá trị thuộc tính:
- Kiểu định danh/chuỗi (norminal): không có thứ tự Ví dụ: Các thuộc tính như : Name, Profession, …
- Kiểu nhị phân (binary): là một trường hợp đăc biệt của kiểu định danh Tậpcác giá trị chỉ gồm có 2 giá trị (Y/N, 0/1, T/F)
- Kiểu có thứ tự (ordinal): Integer, Real, …
- Lấy giá trị từ một tập có thứ tự giá trị Ví dụ: Các thuộc tính lấy giá trị sốnhư : Age, Height ,… Hay lấy một tập xác định, thuộc tính Income lấy giá trị từ tập{low, medium, high}
Kiểu thuộc tính rời rạc (discrete-valued attributes): có thể là tập các giá trị của mộttập hữu hạn Bao gồm thuộc tính có kiểu giá trị là các số nguyên, nhị phân
Kiểu thuộc tính liên tục (continuous-valued attributes):Các giá trị là số thực
Các đặc tính mô tả của dữ liệu:
- Giúp hiểu rõ về dữ liệu có được: chiều hướng chính/trung tâm, sự biến thiên, sự phân bố
- Sự phân bố của dữ liệu (data dispersion):
+ Giá trị cực tiểu/cực đại (min/max)
Trang 12+ Giá trị xuất hiện nhiều nhất (mode).
+ Giá trị trung bình (mean)
+ Giá trị trung vị (median)
+ Sự biến thiên (variance) và độ lệch chuẩn (standard deviation) + Các ngoại lai (outliers)
1.2.2 Làm sạch dữ liệu (data cleaning)
Đối với dữ liệu thu thập được, cần xác định các vấn đề ảnh hưởng là cho nókhông sạch Bởi vì, dữ liệu không sạch (có chứa lỗi, nhiễu, không đầy đủ, có mâuthuẫn) thì các tri thức khám phá được sẽ bị ảnh hưởng và không đáng tin cậy, sẽ dẫnđến các quyết định không chính xác Do đó, cần gán các giá trị thuộc tính còn thiếu;sửa chữa các dữ liệu nhiễu/lỗi; xác định hoặc loại bỏ các ngoại lai (outliers); giảiquyết các mâu thuẫn dữ liệu
1.2.2.1Các vấn đề của dữ liệu
Trên thực thế dữ liệu thu có thể chứa nhiễu, lỗi, không hoàn chỉnh, có mâuthuẫn
- Không hoàn chỉnh (incomplete): Thiếu các giá trị thuộc tính hoặc thiếu một
số thuộc tính Ví dụ: salary = <undefined>
- Nhiễu/lỗi (noise/error): Chứa đựng những lỗi hoặc các mang các giá trị bấtthường Ví dụ: salary = “-525” , giá trị của thuộc tính không thể là một số âm
- Mâu thuẫn (inconsistent): Chứa đựng các mâu thuẫn (không thống nhất)
Ví dụ: salary = “abc” , không phù hợp với kiểu dữ liệu số của thuộc tính salary
1.2.2.2Nguồn gốc/lý do của dữ liệu không sạch
- Không hoàn chỉnh (incomplete): Do giá trị thuộc tính không có (notavailable) tại thời điểm được thu thập Hoặc các vấn gây ra bởi phần cứng, phần mềm,hoặc người thu thập dữ liệu
- Nhiễu/lỗi (noise/error): Do việc thu thập dữ liệu, hoăc việc nhập dữ liệu, hoặcviệc truyền dữ liệu
- Mâu thuẫn (inconsistent): Do dữ liệu được thu thập có nguồn gốc khác nhau.Hoặc vi phạm các ràng buộc (điều kiện) đối với các thuộc tính
1.2.2.3 Giải pháp khi thiếu giá trị của thuộc tính
- Bỏ qua các bản ghi có các thuộc tính thiếu giá trị Thường áp dụng trong các bài toán phân lớp Hoặc khi tỷ lệ % các giá trị thiếu đối với các thuộc tính quá lớn
Trang 13- Một số người sẽ đảm nhiệm việc kiểm tra và gán các giá trị thuộc tính cònthiếu, nhưng đòi hỏi chi phí cao và rất tẻ nhạt.
- Gán giá trị tự động bởi máy tính:
+ Gán giá trị mặc định+ Gán giá trị trung bình của thuộc tính đó
+ Gán giá trị có thể xảy ra nhất – dựa theo phương pháp xác suất
1.2.2.4Giải pháp khi dữ liệu chứa nhiễu/lỗi
- Phân khoảng (binning): Sắp xếp dữ liệu và phân chia thành các khoảng (bins) cótần số xuất hiện giá trị như nhau Sau đó, mỗi khoảng dữ liệu có thể được biểu diễn bằng trung bình, trung vị, hoặc các giới hạn … của các giá trị trong khoảng đó
- Hồi quy (regression): Gắn dữ liệu với một hàm hồi quy
- Phân cụm (clustering): Phát hiện và loại bỏ các ngoại lai (sau khi đã xác địnhcác cụm)
- Kết hợp giữa máy tính và kiểm tra của con người: Máy tính sẽ tự động pháthiện ra các giá trị nghi ngờ Các giá trị này sẽ được con người kiểm tra lại
1.2.3 Tích hợp dữ liệu (data integration)
Tích hợp dữ liệu là quá trình trộn dữ liệu từ các nguồn khác nhau vào một kho
dữ liệu có sẵn cho quá trình khai phá dữ liệu Khi tích hợp cần xác định thực thể từnhiều nguồn dữ liệu để tránh dư thừa dữ liệu
Ví dụ: Bill Clinton ≡ B.Clinton Việc dư thừa dữ liệu là thường xuyên xảy ra, khitích hợp nhiều nguồn Bởi cùng một thuộc tính (hay cùng một đối tượng) có thểmang các tên khác nhau trong các nguồn (cơ sở dữ liệu) khác nhau Hay các dữ liệusuy ra được như một thuộc tính trong một bảng có thể được suy ra từ các thuộc tínhtrong bảng khác Hay sự trùng lắp các dữ liệu Các thuộc tính dư thừa có thể bị pháthiện bằng phân tích tương quan giữa chúng
Phát hiện và xử lý các mâu thuẫn đối với giá trị dữ liệu: Đối với cùng một thực thểtrên thực tế, nhưng các giá trị thuộc tính từ nhiều nguồn khác nhau lại khác nhau Cóthể cách biểu diễn khác nhau, hay mức đánh giá, độ do khác nhau Yêu cầu chung đốivới quá trình tích hợp là giảm thiểu (tránh được là tốt nhất) các dư thừa và các mâuthuẫn Giúp cải thiện tốc độ của quá trình khai phá dữ liệu và nâng cao chất lượngcủa các kết quả tri thức thu được
1.2.4 Biến đổi dữ liệu (data transformation)
Biến đổi dữ liệu là việc chuyển toàn bộ tập giá trị của một thuộc tính sang một tập
Trang 14các giá trị thay thế, sao cho mỗi giá trị cũ tương ứng với một trong các giá trị mới.Các phương pháp biến đổi dữ liệu:
- Làm trơn (smoothing): Loại bỏ nhiễu/lỗi khỏi dữ liệu
- Kết hợp (aggregation): Sự tóm tắt dữ liệu, xây dựng các khối dữ liệu
- Khái quát hóa (generalization): Xây dựng các phân cấp khái niệm - Chuẩnhóa (normalization): Đưa các giá trị về một khoảng được chỉ định
+ Chuẩn hóa min-max, giá trị mới nằm khoảng [new_mini , new_maxi]
+ Chuẩn hóa z-score, với μi , σi : giá trị trung bình và độ lệch chuẩn của thuộc tínhi
+ Chuẩn hóa bởi thang chia 10, với j là giá trị số nguyên nhỏ nhất sao cho:max({vnew}) < 1
- Xây dựng các thuộc tính mới dựa trên các thuộc tính ban đầu
1.2.5.Thu giảm dữ liệu (data reduction)
Một kho dữ liệu lớn có thể chứa lượng dữ liệu lên đến terabytes sẽ làm cho quátrình khai phá dữ liệu chạy rất mất thời gian, do đó nên thu giảm dữ liệu Việc thugiảm dữ liệu sẽ thu được một biểu diễn thu gọn, mà nó vẫn sinh ra cùng (hoặc xấp xỉ)các kết quả khai phá như tập dữ liệu ban đầu Các chiến lược thu giảm:
- Giảm số chiều (dimensionality reduction), loại bỏ bớt các thuộc tính không (ít)quan trọng
- Giảm lượng dữ liệu (data/numberosity reduction)