Để có thể hoàn thành báo cáo đề tài “Khai phá dữ liệu sử dụng véc-tơ hỗtrợSVM phân loại sức khỏe bào thai, độ ph và phân loại động vật trong sở thú”,nhóm em xin gửi lời cảm ơn chân thành
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
ĐÀO ĐỨC THẮNG NGUYỄN HỮU VIỆT Giảng viên hướng dẫn : VŨ VĂN ĐỊNH
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 2
1.1 Đặt vấn đề 2
1.1.1 Các khái niệm cơ bản của khai phá dữ liệu 2
1.1.1.1 Khai phá dữ liệu 2
1.1.1.2 Các bước khai phá dữ liệu 2
1.1.1.3 Ứng dụng khai phá dữ liệu 3
1.2 Tiền xử lý dữ liệu 3
1.2.1 Dữ liệu 4
1.2.2 Làm sạch dữ liệu (data cleaning/cleansing) 4
1.2.3 Tích hợp dữ liệu (data integration) 4
1.2.4 Biến đổi dữ liệu (data transformation) 4
1.2.5 Thu giảm dữ liệu (data reduction) 4
1.3 Phương pháp xử lý 5
1.3.1 Phân lớp dữ liệu 5
1.3.2 Phân cụm 5
1.3.3 Luật kết hợp 6
1.3.4 Hồi quy tuyến tính 6
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN 7
2.1 Tổng quan về véc-tơ hỗ trợ SVM 7
2.2 Thuật toán SVM 7
2.2.1 Mô hình toán học 7
2.2.2 Độ chính xác của thuật toán 9
2.2.3 Nghiệm của thuât toán 9
2.3 Mô tả bài toán 10
2.3.1 Dữ liệu “Fetal_health.csv” 10
Trang 42.3.1.1 Phát biểu bài toán 10
2.3.1.2 Yêu cầu 10
2.3.1.3 Bộ dữ liệu 10
2.3.2 Dữ liệu “Zoo.csv” 12
2.3.3 Dữ liệu “ph-data.csv” 13
CHƯƠNG 3 THỰC NGHIỆM 15
KẾT LUẬN 20
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.2.1 Ví dụ datase 4
Hình 2.1 Ví dụ về margin 7
Hình 2.2 Mô hình dữ liệu được phân lớp với véc-tơ hỗ trợ 8
Hình 2.3.1.3 Bộ dữ liệu Fetal health 12
Hình 2.3.2 Dữ liệu “zoo.csv” 13
Hình 2.3.3 Dữ liệu “ph-data.csv” 14
Hình 3.1.1 Dữ liệu “fetal_health.csv” 16
Hình 3.1.2 Kết quả phân lớp dữ liệu 16
Hình 3.2.1 Dữ liệu “zoo.csv” 17
Hình 3.2.2 Kết quả phân lớp dữ liệu 18
Hình 3.3.1 Dữ liệu “ph-data” 19
Hình 3.3.2 Kết quả phân lớp dữ liệu 19
Trang 6LỜI CẢM ƠN
Nhóm chúng em xin chân thành cảm ơn các thầy, cô giáo trong Khoa Côngnghệ thông tin, trường Đại học Điện Lực, đã tạo điều kiện cho em thực hiện đề tàinày
Để có thể hoàn thành báo cáo đề tài “Khai phá dữ liệu sử dụng véc-tơ hỗtrợ(SVM) phân loại sức khỏe bào thai, độ ph và phân loại động vật trong sở thú”,nhóm em xin gửi lời cảm ơn chân thành nhất tới thầy VŨ VĂN ĐỊNH, đã truyềnđạt, giảng dạy cho chúng em những kiến thức, những kinh nghiệm qúy báu trongthời gian học tập và rèn luyện, tận tình hướng dẫn chúng em trong quá trình làmbáo cáo này
Nhóm em cũng gửi lời cảm ơn tới bạn bè đã đóng góp những ý kiến quý báu
để nhóm em có thể hoàn thành báo cáo tốt hơn
Tuy nhiên, do thời gian và trình độ có hạn nên báo cáo này chắc chắn khôngtránh khỏi những thiếu sót, nhóm em rất mong được sự đóng góp ý kiến của cácthầy và toàn thể các bạn
Một lần nữa, em xin chân thành cảm ơn và luôn mong nhận được sự đónggóp quý báu của tất cả mọi người
Nhóm sinh viên thực hiện
Nguyễn Xuân ViệtNguyên Hữu ViệtĐào Đức Thắng
Trang 7CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề
Ứng dụng công nghệ thông tin vào việc lưu trữ và xử lý thông tin ngày nayđược áp dụng hầu hết trong lĩnh vực, điều này đã tạo ra một lượng lớn dữ liệu đượclưu trữ với kích thước tăng lên không ngừng Đây chính là điều kiện tốt cho việckhai thác kho dữ liệu để đem lại tri thức có ích với các công cụ truy vấn, lập việckhai thác kho dữ liệu để đem lại tri thức có ích với các công cụ truy vấn, lập bẳngbiểu và khai phá dữ liệu
Khai phá dữ liệu là một kỹ thuật dựa trên nền tảng của nhiều lý thuyết nhưxác xuất, thống kê, máy học nhằm tìm kiếm các tri thức tiềm ẩn trong các kho dữliệu có kích thước lớn mà người dùng khó có thể nhận biết bằng những kỹ thuậtthông thường Nguồn dữ liệu y khoa rất lớn, nếu áp dụng khai phá dữ liệu tronglĩnh vực này sẽ mang lại nhiều ý nghĩa cho ngành y tế Nó sẽ cung cấp nhữngthông tin quý giá nhằm hỗ trợ trong việc chuẩn đoán và điều trị sớm giúp bệnhnhân thoát được nhiều căn bệnh hiểm nghèo
Ứng dụng sử dụng véc-tơ hỗ trợ (svm) trong khai phá dữ liệu nhằm xâydựng hệ thống chuẩn đoán là một trong những hướng nghiên cứu chính của đề tài.Sau khi phân tích một số thuật toán cũng như đặc điểm của dữ liệu thu nhập được
về số lượng của sản phẩm và phân loại hình, đề tài đề xuất ứng dụng mô hình phânlớp dữ liệu bằng SVM để tìm ra quy luật tìm ẩn trong dữ liệu
1.1.1 Các khái niệm cơ bản của khai phá dữ liệu
1.1.1.1 Khai phá dữ liệu
Khai phá dữ liệu (data mining) hay khai phá dữ liệu từ tri thức (knowledgediscovery from data) là việc trích rút ra được các mẫu hoặc tri thức quan trọng từmột lượng dữ liệu rất lớn
1.1.1.2 Các bước khai phá dữ liệu
Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem understanding and data understanding).
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
chọn kỹ thuật khai thác dữ liệu Kết quả cho ta một nguồn tri thức thô
Trang 8Đá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 đầutiê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
1.1.1.3 Ứng dụng 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 rotrướ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 ra thi 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
1.2 Tiền xử lý dữ liệu
Quá trình xử lý dữ liệu thô/gốc (raw/original data) nhằm cải thiện chất lượng
dữ liệu (quality of the data) và từ đó cải thiện chất lượng của kết quả khai phá 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 khai thá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
Hình 1.2 Hình ảnh về tri thức
Trang 91.2.2 Làm sạch dữ liệu (data cleaning/cleansing)
Đối với dữ liệu thu nhập được,cần xác định các vấn đề ảnh hưởng là cho nókhông sạch.Bởi vậy, dữ liệu không sạch(có chưá lỗi, nhiễu, không đầy đủ, những
dự liệu không nhất quá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ạilai,giải quyết các mâu thuẫn dữ liệu
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ộtkho dữ liệu có sẵn cho quá trình khai phá dữ liệu
Yêu cầu chung đối với 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 mâu thuẫn 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
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 sangmộ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
Trang 101.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 choquá 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 racùng (hoặc xấp xỉ) các kết quả khai phá như tập dữ liệu ban đầu
Quá trình gồm 2 bước:
- Bước học (giai đoạn huấn luyện): xây dựng bộ phân loại (classifier) bằngviệ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 mức
độ chính xác của bộ phận phân loại được đánh giá là có thể chấp nhậnđược
Các giải thuật phân loại dữ liệu:
- 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 mạng Bayesian
- Phân loại dữ liệu với mạng neural
- Phân loại dữ liệu với k phần tử gần nhất (k-nearest neighbor)
- Phân loại dữ liệu với SVM…
1.3.2 Phân cụm
Phân cụm là việc nhóm một tập các đối tượng có cùng đặc điểm giống nhauhay gần giống nhau vào cùng một nhóm
Các đối tượng trong cùng một nhóm tương tự với nhau hơn so với đối tượng
ở cụm khác Phương pháp phân cụm hỗ trợ giai đoạn tiền xử lý dữ liệu, mô tả sựphân bố dữ liệu/đối tượng…
Các phương pháp phân cụm phổ biến:
- Phân hoạch(partitioning): các phân hoạch được tạo ra và đánh giá theo mộttiêu chí nào đó
- Phân cấp(hierarchical): phân rã tập dữ liệu/đối tượng có thứ tự phân cấp theomột tiêu chí nào đó
Trang 11- Dựa trên cấp độ (density-based): dựa trên connectivity and density functions
- Dựa trên lưới (grid-based): dựa trên multiple-level granularity structure
- Dựa trên mô hình (model-based): một mô hình giả thuyết được tạo ra chomỗi cụm; sau đó hiệu chỉnh các thông số để mô hình phù hợp với cụm dữliệu/đối tượng nhất……
1.3.3 Luật kết hợp
Là quá 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 trong tập các đối tượng
1.3.4 Hồi quy tuyến tính
Phương pháp hồi quy được sử dụng để đưa ra các dự báo dựa trên các dữliệu đang tồn tại bằng các áp dụng các công thức Một hàm sẽ được học ra từ bộ dữliệu hiện có bằng cách sử dụng các kỹ thuật hồi quy và tuyến tính từ việc thống kê.Sau đó, dữ liệu mới sẽ căn cứ vào hàm này để đưa ra những dự đoán
Trong bài báo cáo này bọn em chọn phương pháp phân cụm bởi vì nó là mộtthuật toán tuy đơn giản nhưng lại khá hiệu quả và được sử dụng rộng khắp Nó sẽkhai phá cấu trúc của mẫu dữ liệu để thành lập các nhóm dữ liệu từ tập dữ liệu lớn,cho phép đi sâu vào phân tích và nghiên cứu cho từng cụm dữ liệu này nhằm khaiphá và tìm kiếm các thông tin tiềm ẩn, hữu ích phục vụ cho ra quyết định
Trang 12CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN 2.1 Tổng quan về véc-tơ hỗ trợ SVM
SVM là viết tắt của Support Vector Machine, đây là một thuật toán giúp tìm
ra một siêu phẳng phân cách tối ưu để có thể phân chia dữ liệu tuyến tính ra làmhai lớp khác nhau Hình bên dưới là một ví dụ về siêu mặt phẳng phân chia dữliệu (từ giờ tôi sẽ viết gọn là margin)
Hình 2.1 Ví dụ về marginTrình bày một tập dữ liệu đơn giản với hai đặc tính (tọa độ x và y) được gánthành hai nhóm (hình tam giác và hình chữ thập) và tách thành hai vùng riêng biệt,
có thể đại diện cho các cổ phiếu có lợi nhuận dương và âm trong một năm nhấtđịnh Dữ liệu được phân tách tuyến tính và bất kỳ đường thẳng nào được hiển thị
sẽ được gọi là phân loại tuyến tính - một phân loại nhị phân dựa trên sự kết hợptuyến tính đặc trưng của từng điểm dữ liệu
Trang 13hoặc các tác vụ khác Theo trực quan, một siêu mặt phẳng có khoảng cách lớn nhấtđến các điểm dữ liệu huấn luyện gần nhất của bất kỳ lớp nào (còn gọi là lề chứcnăng), vì nói chung, lề càng lớn thì lỗi tổng quát của bộ phân loại càng thấp Hìnhbên dưới cho thấy hàm quyết định cho một bài toán có thể phân tách tuyến tính,với ba mẫu trên ranh giới lề, được gọi là “vectơ hỗ trợ”:.
Hình 2.2 Mô hình dữ liệu được phân lớp với véc-tơ hỗ trợCho vectơ đào tạo xi∈Rp, i = 1,…, n, trong hai lớp và một vectơ y∈{1,−1}n, mục tiêu của chúng tôi là tìm w∈Rp và b∈R sao cho dự đoán được đưa ra
bởi sign(wT (x)+b)ϕ là chính xác cho hầu hết các mẫu
SVC giải quyết vấn đề cơ bản sau:
Theo trực giác, chúng tôi đang cố gắng tối đa hóa lợi nhuận (bằng cách giảm
thiểu ||w||2=wTw), đồng thời phải chịu một hình phạt khi một mẫu bị phân loại sai hoặc nằm trong ranh giới ký quỹ Lý tưởng nhất là giá trịyi(wT (xi)+b)ϕ sẽ
là ≥1cho tất cả các mẫu, điều này cho thấy một dự đoán hoàn hảo Nhưng các vấn
đề thường không phải lúc nào cũng có thể phân tách hoàn hảo với siêu phẳng, vì vậy chúng tôi cho phép một số mẫu ở khoảng cách xaζitừ ranh giới ký quỹ chính
8
Trang 14xác của họ Điều khoản hình phạt Ckiểm soát thời gian của hình phạt này, và kết quả là, hoạt động như một tham số quy định ngược (xem lưu ý bên dưới).
Vấn đề kép đối với nguyên thủy là
với k1, k2, …, kn là chỉ số các dữ liệu thuộc cụm thứ k Các bước trên được lặp lạicho tới khi vị trí các trung tâm cụm không đổi sau một bước lặp nào đó
2.2.2 Độ chính xác của thuật toán
Hàm mất mát của thuật SVM đặc trưng cho độ chính xác của nó sẽ càngngày càng lớn khi khoảng cách từ mỗi điểm dữ liệu tới siêu mặt phẳng càng lớn
2.2.3 Nghiệm của thuât toán
Bài toán tối ưu trong SVM chính là bài toán tìm ww và bb sao cho margin này đạt
giá trị lớn nhất Khi đó hàm quyết định phân dữ liệu vào lớp thứ i của tập n , 2-Iớp
sẽ là:
2.2.4 Tóm tắt thuật toán
9
Trang 15Phương pháp SVM yêu cầu dữ liệu đ ợc diễn tả nh các vector của các số ƣ ƣthực Nh vậy nếu đầu vào ch a phải là số thì ta cần phải tìm cách chuyển ƣ ƣchúng về dạng số của SVM Tiền xử lý dữ liệu: Thực hiện biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính Th ờng ƣnên co giãn (scaling) dữ liệu để chuyển về đoạn [-1, 1] hoặc [0, 1] Chọn hàm hạt nhân: Lựa chọn hàm hạt nhân phù hợp t ơng ứng cho từng bài toán cụ thể ƣ
để đạt đ ợc độ chính xác cao trong quá trình phân lớp Thực hiện việc kiểm traƣchéo để xác định các thám số cho ứng đụng Điều này cũng quyết định đến tính chính xác của quá trình phân lớp Sử dụng các tham số cho việc huấn luyện với tập mẫu Trong quá trình huấn luyện sẽ sử dụng thuật toán tối u hóa khoảng ƣcách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trongkhông gian đặc tr ng nhờ việc ánh xạ dữ liệu vào không gian đặc tr ng bằng ƣ ƣcách mô tả hạt nhân, giải quyết cho cả hai tr ờng hợp dữ liệu là phân tách và ƣkhông phân tách tuyến tính trong không gian đặc tr ng Kiểm thử tập dữ liệu ƣTest
2.3 Mô tả bài toán
2.3.1 Dữ liệu “Fetal_health.csv”
2.3.1.1 Phát biểu bài toán
Dự báo sức khỏe bao thai dựa trên các số liệu về nhịp tim, huyết áp,
- Giá trị input là một ma trận 2126x22 Bao gồm kết quả của máy chụp tim (CTG).Bản thân thiết bị hoạt động bằng cách gửi các xung siêu âm và đọc phản ứng của
nó, do đó làm sáng tỏ nhịp tim thai nhi (FHR), chuyển động của thai nhi, các cơn
co thắt tử cung và hơn thế nữa
- Giá trị output là các lớp sức khỏe của bào thai bao gồm 3 lớp: Bình thường, nghican, có bệnh lý
Trang 16- Dữ liệu hoá đồ thị
2.3.1.3 Bộ dữ liệu
Bộ dữ liệu bao gồm 22 thuộc bao gồm:
- baseline_value: giá trị vạch biên
- accelerations: tốc độ phát triển
- fetal_movement: sự chuyển động của bào thai
- uterine_contractions: cơn co của tử cung
- light_decelerations: sự giảm nhẹ
- severe_decelerations: sự giảm nghiêm trọng
- prolongued_decelerations: sự giảm kéo dài
- abnormal_short_term_variability: sự thay đổi ngắn hạn bất thường
- mean_value_of_short_term_variability: giá trị trung bình của sự biến đổingắn hạn
- percentage_of_time_with_abnormal_long_term_variability: tỷ lệ thời gianvới sự biến đổi lâu dài bất thường
- mean_value_of_long_term_variability: giá trị trung bình của biến thiên dàihạn
- histogram_width: biểu đồ chiều rộng
- histogram_min: biểu đồ giá trị nhỏ nhất
- histogram_max: biểu đồ giá trị lớn nhất
- histogram_number_of_peaks: biểu đồ số đỉnh
- histogram_number_of_zeroes:số lượng biểu đồ của số 0
- histogram_mode: biểu đồ dáng
- histogram_mean: biểu đồ trung bình cộng
- histogram_median: biểu đồ trung bình
11