Khái niệm Khai phá dữ liệu data mining hay Khám phá tri th泳c từ dữ liệu knowledge discovery from data là việc trích rút ra đ逢ợc các mẫu hoặc tri th泳c quan trọng không tầm th逢運ng, ẩn, ch逢
Trang 1Phân Hiệu Đại Học Thủy Lợi
Ngành Công Nghệ Thông Tin
BÁO CÁO BÀI TẬP LỚN Môn: Khai Phá Dữ Liệu
Đề tài: Phân loại Giá Kim Cương
Giảng viên hướng dẫn : Cô Vũ Thị Kim Hạnh Lớp : S23_62TH
Nhóm : Lê Thị Xuân Rin
Lê Quốc Anh
Trang 2
Mục Lục:
Mục lục
Giới thiệu
Chương 1: Tổng quang về Khai Phá Dữ liệu……… 2 I.Khai phá dữ liệu
1.Khái niệm ……… 2
2.Các bước trong quá trình khai phá ……….2
3 Ứng dụng của khai phá dữ liệu ………
II: Tiền xử lý dữ liệu
2.Làm sạch dữ liệu (data cleaning)……… 2
3.Tích hợp dữ liệu (data integration)………… 2
4.Thu giảm dữ liệu (data reduction) ……… 2
III: Phương pháp phân loại
1 Giới thiệu phân loại ……… 2
2 Phân loại dữ liệu với Cây Quyết Định……… 2
3 Phân loại dữ liệu với Gaussian Naive
Bayes………-4 Phân loại dữ liệu với mạng Random Forest
III Ứng dụng của Khai Phá Dữ Liệu
1 Phân loại Giá Kim Cương ……… 2
Trang 3Giới thiệu
Giúp SV làm quen với việc dùng class Thread của namespace System.Threadings
để quản lý thread
Giúp SV thấy được vấn ₫ề tương tranh giữa các thread khi chúng cùng truy xuất tài nguyên dùng chung
Trang 4Chương 1: Tổng quang về Khai Phá Dữ liệu
1 Khái niệm
Khai phá dữ liệu (data mining) hay Khám phá tri th泳c từ dữ liệu (knowledge discovery from data) là việc trích rút ra đ逢ợc các mẫu hoặc tri th泳c quan trọng (không tầm th逢運ng, ẩn, ch逢a đ逢ợc biết đến và có thể hữu ích) thừ một l逢
ợng dữ
liệu (rất) lớn
Các tên gọi khác:
- Khám phá tri th泳c trong các cơ s荏 dữ liệu (Knowledge discovery in
databases KDD)
- Trích rút tri th泳c (knowledge extraction)
- Phân tích mẫu/dữ liệu (data/pattern analysis)
2 Các bước trong quá trình khai phá
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
3- Làm sạch và tiền xử lý dữ liệu
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 quan trọ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
ra cá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
5
Trang 57- Tiến hành khai phá dữ liệu.
8- Đánh giá mẫu thu đ逢ợc và biểu diễn tri th泳c: Hiển thị hóa, chuyển đổi, bỏ
đi các mẫu d逢 thừa,…
9- Sữ dụng tri th泳c đ逢ợc khai phá
Quá trình khám phá tri th泳c theo cách nhìn c栄a giới nghiên c泳u về các hệ thống dữ liệu và kho dữ liệu về quá trình khám phá tri th泳c
Quá trình khai phá tri thứ c
Chuẩn bị dữ liệu (data preparation), bao gồm các quá trình làm sạch dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection), biến đổi dữ liệu (data transformation)
Khai thác dữ liệu (data mining): xác định nhiệm vụ khai thác dữ liệu và lựa
Trang 6chọ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).6
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
3.永ng dụng c栄a khai phá dữ liệu
Kinh tế -泳ng dụng trong kinh doanh, tài chính, tiếp thị bán hàng, bảo hiểm,
th逢ơng mại, ngân hàng, … Đ逢a ra các bản báo cáo giàu thông tin; phân tích r
栄i ro
tr 逢ớc khi đ逢a ra các chiến l逢ợc kinh doanh, sản xuất; phân loại khách hàng
từ đó
phân định thị tr 逢運ng, thị phần; …
Khoa học: Thiên văn học – dự đoán đ逢運ng đi các thiên thể, hành tinh, …; Công nghệ sinh học – tìm ra các gen mới, cây con giống mới, …; …
Web: các công cụ tìm kiếm
II Tiền xử lý dữ liệu
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,
Trang 7biến đổi, thu giảm dữ liệu.
1 Dữ liệu
a) Tập dữ liệu
- Một tập dữ liệu (dataset) là một tập hợp các đối t逢ợng (object) và các thuộc tính c栄a chúng
- Mỗi thuộc tính (attribute) mô tả một đặc điểm c栄a một đối t逢ợng
Ví dụ: Các thuộc tính : Day, Outlook, Temp, …
b) Cá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)
Trang 8c) 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ập cá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ột tậ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
d) 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)
+ 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)
Trang 92 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âu
thuẫ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ải quyết các mâu thuẫn dữ liệu
a) Cá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âu thuẫ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ất
th逢運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
b) Nguồ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ó (not
available) 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ặc việc truyền dữ liệu
Trang 10- 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
c) 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
9
- 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òn thiế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
d) Giả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ể đ
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
định cá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át
Trang 11hiện ra các giá trị nghi ng運 Các giá trị này sẽ đ逢ợc con ng逢運i kiểm tra lại.
Trang 123 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, khi tí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ệu suy 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ính trong 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át hiện bằng phân tích
t逢ơng quan giữa chúng
10
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 đối vớ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âu thuẫ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逢ợng c栄a các kết quả tri th泳c thu đ逢ợc
Trang 134 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 cá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ẩn hó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ính i
+ 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
Trang 145 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 thu giả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)
+ Kết hợp khối dữ liệu
+ Nén dữ liệu
+ Hồi quy
+ R 運i rạc hóa
1 Giới thiệu Phân loại
Phân loại dữ liệu là dạng phân tích dữ liệu nhằm rút trích các mô hình mô tả các lớp dữ liệu hoặc dự đoán xu h逢ớng dữ liệu
Quá trình gồm hai b逢ớc:
Trang 15- B逢ớc học (giai đoạn huấn luyện): xây dựng bộ phân loại (classifier) bằng việc phân tích/học tập huấn luyện
- B逢ớc phân loại (classification): phân loại dữ liệu/đối t逢ợng mới nếu độ chính xác c栄a bộ phân loại đ逢ợc đánh giá là có thể chấp nhận đ逢ợc
(acceptable)
Trong bài Dự đoán giá Kim Cương này sẽ chỉ dùng 3 thuật toán
- Phân loại dữ liệu với cây quyết định (decision tree)
- Phân loại dữ liệu với Gaussian Naive Bayes
Phân loại dữ liệu với Random Forest
2.Phân loại dữ liệu với cây quyết định (decision tree).
Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật (series of rules) Khi cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseen data)
Cấu trúc
- Node nội: ch泳a giá trị trên một thuộc tính để cho quá trình thực hiện phép kiểm thử
- Node lá: ch泳a nhãn (label) hoặc mô tả c栄a một lớp (class label)
- Nhánh từ một node nội: kết quả c栄a một phép thử trên thuộc tính t逢ơng
Trang 16Ví dụ về Cây Quyết Định
Điều kiện dừng phân vùng:
Tất cả các mẫu cho một nút nhất định thuộc cùng một lớp
Không còn thuộc tính nào để phân vùng thêm
Không còn mẫu nào
Vấn đề: lựa chọn thuộc tính tốt nhất cho các nút gốc và nút con Có 2 kỹ thuật phổ biến cho việc lựa chọn thuộc tính (Attribute Selection Measure – ASM):
Trang 17Information Gain
Gini Index
1) Information Gain (IG) là phép đo nhữngthay đổi trong Entropy sau khi phân loại tập dữ liệu dựa trên một thuộc tính.
- IG tính toán lượng thông tin mà một tính năng cung cấp cho chúng ta về một lớp
- Dựa vào giá trị thu được của ID, phân chia nút và xây dựng cây quyết định
- Thuật toán cây quyết định luôn cố gắng tối đa hóa giá trị của Information Gain
và một nút / thuộc tính có mức tăng thông tin (IG) cao nhất được tách ra trước
- Chọn thuộc tính có mức thông tin cao
- Gọi pi là xác suất để một bộ tùy ý trong D thuộc lớp Ci, được ước tính bởi |Ci, D|/|D|
- Thông tin mong đợi (entropy) cần thiết để phân loại 1 bộ trong D:
Trang 18- Thông tin cần thiết (sau khi sử dụng A để chia D thành v phân vùng) để phân loại D:
Thông tin thu được (Information Gain) bằng cách phân nhánh trên thuộc tính A:
Gini Index (CART, IBM IntelligentMiner)
Chỉ số Gini là thước đo tạp chất hoặc độ tinh khiết được sử dụng trong khi tạo cây quyết định trong thuật toán CART (Cây phân loại và hồi quy)
Nó chỉ tạo ra các phân tách nhị phân và thuật toán CART sử dụng chỉ số Gini để tạo phân tách nhị phân
Tương tự infomation gain: được dùng để đánh giá xem việc phân chia vùng ở node diều kiện có tốt hay không?
Để tính được gini index, phải tính chỉ số gini ở từng node
Trang 19Trong đó, m là số lớp cần phân loại, pi=ni/N, ni là số lượng phần tử ở lớp i Nếu tập dữ liệu D chia thuộc tính A thành 2 tập con D1 và d2, thì chỉ số gini được định nghĩa như sau:
Thuộc tính chứa ginisplit(D) nhỏ nhất sẽ được chọn để tách nút (cần liệt kê các điểm phân tách có thể có cho mỗi thuộc tính)
Ưu điểm & Nhược điểm của thuật toán Decision
Ưu điểm:
Cây quyết định là một thuật toán đơn giản và phổ biến Thuật toán này đượcsử dụng rộng rãi bới những lợi ích của nó:
Mô hình sinh ra các quy tắc dễ hiểu cho người đọc, tạo ra bộ luật với mỗi nhánh lá là một luật của cây
Dữ liệu đầu vào có thể là là dữ liệu missing, không cần chuẩn hóa hoặc tạo biến giả
Có thể làm việc với cả dữ liệu số và dữ liệu phân loại
Có thể xác thực mô hình bằng cách sử dụng các kiểm tra thống kê
Có khả năng là việc với dữ liệu lớn
Nhược điểm:
Trang 20Mô hình cây quyết định phụ thuộc rất lớn vào dữ liệu của bạn Thậm chí, với một sự thay đổi nhỏ trong bộ dữ liệu, cấu trúc mô hình cây quyết định có thể thay đổi hoàn toàn
Cây quyết định hay gặp vấn đề overfitting: Một cây có thể trang bị quá nhiều
dữ liệu huấn luyện
Quá nhiều nhánh, một số có thể phản ánh sự bất thường do nhiễu hoặc ngoại lệ
Độ chính xác kém đối với các mẫu mới chưa phân loại