Professional Documents
Culture Documents
HÀ NỘI, 10/2022
LỜI MỞ ĐẦU
Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứng dụng của
nó không ngừng phát triển, lượng thông tin và cơ sở dữ liệu được thu thập và lưu trữ
cũng tích lũy ngày một nhiều lên Con người cũng vì thế mà cần có thông tin với tốc
độ nhanh nhất để đưa ra quyết định dựa trên lượng dữ liệu khổng lồ đã có. Các
phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp
ứng được thực tế, vì thế, một khuynh hướng kỹ thuật mới là Kỹ thuật phát hiện tri
thức và khai phá dữ liệu nhanh chóng được phát triển.
Khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác
nhau ở các nước trên thế giới. Ở Việt Nam, kỹ thuật này đang được nghiên cứu và dần
đưa vào ứng dụng. Khai phá dữ liệu là một bước trong quy trình phát hiện tri thức.
Hiện nay, mọi người không ngừng tìm tòi các kỹ thuật để thực hiện khai phá dữ liệu
một cách nhanh nhất và có được kết quả tốt nhất.
Trong bài tập lớn này, chúng em tìm hiểu và sử dụng hai kỹ thuật đó là: phân cụm k-
means và thuật toán logistic với đề tài “Khai phá dữ liệu hồ sơ mắc bệnh đột quỵ”.
Đột quỵ (nhồi máu cơ tim) một vùng cơ tim gây ra bởi sự tắc nghẽn hoàn toàn của
mạch vành - nguồn cung cấp máu cho tim. Nguyên nhân là do động mạch vành bị xơ
vữa hoặc cục máu đông làm chít hẹp dòng chảy. Khi bị ngưng tưới máu, đồng nghĩa
với các tế bào cơ tim sẽ dần chết đi do bị ‘bỏ đói” oxy, dẫn tới sự tổn thương vĩnh
viễn không thể hồi phục.Chỉ trong một thời gian ngắn, cơn nhồi máu cơ tim sẽ gây ra
nhiều biến chứng nguy hiểm đến tính mạng người bệnh.
● Bước 2: Tiền xử lý
� Khai phá dữ liệu là 1 bước trong quá trình khai phá tri thức từ CSDL
- Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví dụ như:
Bảo hiểm, tài chính và thị trường chứng khoán phân tích tình hình tài chính và dự báo
giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá, lãi suất,
dữ liệu thẻ tín dụng, phát hiện gian lận, ...
Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các hệ
thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chẩn đoán
và phương pháp điều trị (chế độ dinh dưỡng, thuốc,...)
Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố.
Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn bản,...
Lĩnh vực khoa học: Quan sát thiên văn dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so
sánh các hệ gen và thông tin di truyền, mối liên hệ gen và một số bệnh di truyền,...
Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố,
chất lượng dịch vụ,...
- Weka ( Waikato Environment for knowledge analysis) là một tập hợp các giải thuật
học máy và các công cụ xử lý dữ liệu.
1.4 Mô tả dữ liệu
- Mục tiêu của việc khai phá dữ liệu là để có thể dễ dàng xác định các bệnh lý khác
liên quan và có thể chẩn đoán nguy cơ đột quỵ
+ Giới tính :
Male(Nam)
Female(Nữ)
+ Độ tuổi
+ Cao huyết áp
Yes
No
+ Bệnh tim
Yes
No
+ Lượng đường trong máu
+ BMI (Chỉ số khối cơ thể)
+ Hút thuốc
never smoked (Chưa bao giờ hút thuốc)
smoked (Đã hút thuốc)
Làm tương tự với các thuộc tính còn lại với giá trị thay thế :
Sau khi tiến hành tiền xử lý xong ta ‘Save’ lại được bộ dữ liệu cuối cùng tất cả đều ở
dạng numeric:
CHƯƠNG 3: KHAI PHÁ DỮ LIỆU
3.1 Phân cụm dữ liệu các hồ sơ bệnh nhân bằng thuật toán k-means
K-means là một thuật toán phân cụm đơn giản thuộc loại học không giám sát(tức là dữ
liệu không có nhãn) và được sử dụng để giải quyết bài toán phân cụm. Ý tưởng của
thuật toán phân cụm k-means là phân chia 1 bộ dữ liệu thành các cụm khác nhau.
Trong đó số lượng cụm được cho trước là k. Công việc phân cụm được xác lập dựa
trên nguyên lý: Các điểm dữ liệu trong cùng 1 cụm thì phải có cùng 1 số tính chất nhất
định. Tức là giữa các điểm trong cùng 1 cụm phải có sự liên quan lẫn nhau. Đối với
máy tính thì các điểm trong 1 cụm đó sẽ là các điểm dữ liệu gần nhau.
Thuật toán phân cụm k-means thường được sử dụng trong các ứng dụng cỗ máy tìm
kiếm, phân cụm bệnh nhân, thống kê dữ liệu,…
Dùng thuật toán phân cụm hỗ trợ phân cụm bệnh nhân là một quá trình phân loại
những bệnh nhân gần tương tự vào cùng một nhóm. Thuật toán phân cụm giúp hiểu rõ
hơn về bệnh nhân. Bệnh nhân với các đặc điểm có thể chuẩn đoán liên quan đến 1 số
bệnh khác nhau,giúp bác sĩ có thể dễ dàng đánh giá tình hình bệnh lý
Thuật toán K-Means lặp đi lặp lại quá trình phân các ví dụ vào cụm có tâm gần nhất,
sau đó là điều chỉnh tâm cụm, cho tới khi điều kiện hội tụ được thỏa mãn. Cụ thể hơn,
thuật toán được biểu diễn qua các bước sau:
● Bước 1: Khởi tạo ngẫu nhiên tâm cụm: chọn ngẫu nhiên k ví dụ trong tập data
làm k cụm khởi đầu
● Bước 2: Gán từng ví dụ vào cụm có tâm gần nó nhất. Việc tính khoảng cách từ
một điểm tới một tâm cụm có thể tính dựa theo khoảng cách hình học Euclid
● Bước 3: Điều chỉnh tâm cụm: tọa độ của tâm cụm mới bằng tọa độ trung bình
của tất cả các ví dụ trong cụm đó
● Bước 4: Kiểm tra điều kiện dừng: nếu thuật toán chưa hội tụ, quay lại bước 2
3.2 Đầu vào , đầu ra
Input:
Output:
Dùng thư viện pandas để đọc file csv rồi truyền giá trị vào biến data. Dựa trên những
thuộc tính mà chúng ta đề xuất sử dụng, các điểm dữ liệu có các thuộc tính “Gioi
tinh”, “Tuoi”, “Cao huyet ap”, “Benh tim”, “Luong duong trong mau” , ”bmi” và tiến
hành xóa những thuộc tính còn lại bằng câu lệnh drop
Khởi tạo mô hình huấn luyện và dùng hàm predict để dự đoán các mẫu thuộc các cụm
gần nhất sau đó tiến hành ghi các nhãn dự đoán ra 1 file mới ‘cluster.csv’
Chương trình hiển thị ra các nhãn dự đoán và các tâm cụm.
Sau đó chương trình in ra tên cụm của từng bản ghi vào một file csv tên “cluster.csv”.
Sau đó chúng ta ghép tên cụm thu được vào file dữ liệu ban đầu. Lúc này ta có thể cho
các bản ghi cùng một cụm ở cùng nhau và có thể tách riêng các bản ghi cùng 1 cụm
thành các file riêng.
3.4 Phân cụm k-means với weka
a) Ưu điểm:
- Tương đối nhanh. Độ phức tạp của thuật toán là O (tkn), trong đó:
b) Nhược điểm:
+ Không đảm bảo đạt được tối ưu toàn cục và kết quả đầu ra phụ thuộc nhiều vào việc
chọn k điểm khởi đầu. Do đó có thể phải chạy lại thuật toán với nhiều bộ khởi đầu
khác nhau để có được kết quả đủ tốt. Trong thực tế, có thể áp dụng thuật giải di truyền
để phát sinh các bộ khởi đầu.
+ Khó xác định số cụm thực sự mà không gian dữ liệu có. Do đó có thể phải thử với
các giá trị k khác nhau.
+ Khó phát hiện các loại cụm có hình dạng phức tạp và nhất là các dạng cụm không
lồi.
● Input : Thu thập trên mẫu báo cáo thông tin lấy ngẫu nhiên 300 người
● Output : Nguy cơ đột quỵ là có thể hoặc không thể và xác suất bao nhiêu
phần trăm
Định nghĩa : Hồi quy logistic là 1 phương pháp học máy có giám sát , nó
thường được sử dụng nhiều hơn cho các bài toán classification nhằm dự đoán
giá trị đầu ra rời rạc y ứng với một véc-tơ đầu vào x. Việc này tương đương với
chuyện phân loại các đầu vào x vào các nhóm y tương ứng.
● Đầu ra dự đoán của logistic regression thường được viết chung dưới
dạng:
Sigmoid function
● Trong số các hàm số có 3 tính chất nói trên thì hàm sigmoid:
được sử dụng nhiều nhất, vì nó bị chặn trong khoảng (0,1). Thêm nữa:
Biểu thức này là tương đương với hai biểu thức (1)(1) và (2)(2) ở trên vì khi yi=1yi=1,
phần thứ hai của vế phải sẽ triệt tiêu, khi yi=0yi=0, phần thứ nhất sẽ bị triệt tiêu!
Chúng ta muốn mô hình gần với dữ liệu đã cho nhất, tức xác suất này đạt giá trị cao
nhất.
Xét toàn bộ training set với X=[x1,x2,…,xN]∈Rd×NX=[x1,x2,
…,xN]∈Rd×N và y=[y1,y2,…,yN]y=[y1,y2,…,yN], chúng ta cần tìm ww để biểu
thức sau đây đạt giá trị lớn nhất:
Bài toán tìm tham số để mô hình gần với dữ liệu nhất trên đây có tên gọi chung là bài
toán maximum likelihood estimation với hàm số phía sau argmax được gọi
là likelihood function.
Giả sử thêm rằng các điểm dữ liệu được sinh ra một cách ngẫu nhiên độc lập với nhau
(independent), ta có thể viết:
với ∏ là ký hiệu của tích. Trực tiếp tối ưu hàm số này theo ww nhìn qua không đơn
giản! Hơn nữa, khi NN lớn, tích của NN số nhỏ hơn 1 có thể dẫn tới sai số trong tính
toán (numerial error) vì tích là một số quá nhỏ. Một phương pháp thường được sử
dụng đó là lấy logarit tự nhiên (cơ số ee) của likelihood function biến phép nhân thành
phép cộng và để tránh việc số quá nhỏ. Sau đó lấy ngược dấu để được một hàm và coi
nó là hàm mất mát. Lúc này bài toán tìm giá trị lớn nhất (maximum likelihood) trở
thành bài toán tìm giá trị nhỏ nhất của hàm mất mát (hàm này còn được gọi là
negative log likelihood):
với chú ý rằng zizi là một hàm số của ww. Bạn đọc tạm nhớ biểu thức vế phải có tên
gọi là cross entropy, thường được sử dụng để đo khoảng cách giữa hai phân phối
(distributions). Trong bài toán đang xét, một phân phối là dữ liệu được cho, với xác
suất chỉ là 0 hoặc 1; phân phối còn lại được tính theo mô hình logistic
regression. Khoảng cách giữa hai phân phối nhỏ đồng nghĩa với việc (có vẻ hiển
nhiên là) hai phân phối đó rất gần nhau. Tính chất cụ thể của hàm số này sẽ được đề
cập trong một bài khác mà tầm quan trọng của khoảng cách giữa hai phân phối là lớn
hơn.
Chú ý: Trong machine learning, logarit thập phân ít được dùng, vì vậy loglog thường
được dùng để ký hiệu logarit tự nhiên.
+ Tối ưu hàm
để triệt tiêu mẫu số trong biểu thức (3)(3). Chúng ta cùng khởi động một chút với
phương trình vi phân đơn giản này. Phương trình (4)(4) tương đương với:
Và công thức cập nhật (theo thuật toán SGD) cho logistic regression là:
THỰC NGHIỆM
- Tập ví dụ huấn luyện
- Tập test
1. Áp dụng thuật toán
Với đầu vào của bài toán là các trường dữ liệu trả lời các câu hỏi bao gồm:
● Lượng đường trong cơ thể vượt quá mức cho phép
● Chỉ số khối BMI của cơ thể
● Có thường xuyên hút thuốc lá hay không
● Có bị cao huyết áp hay không
● Tuổi tác
● Nơi sinh sống
● Công việc
● Giới tính
Các tập dữ liệu cùng nhãn sau khi thu thập sẽ được training để đưa ra hàm w tối ưu
bằng phương pháp nhằm tăng độ chính xác cho thuật toán
Output của bài toán đưa ra sẽ có dạng mặc định theo thuật toán sẽ là
● Là có nguy cơ bị đột nếu y trả về 1
● Không có nguy cơ đột quỵ nếu y trả về 0
● Xác suất bị
2. Mô tả chương trình
- Ưu điểm : Điểm cộng cho Logistic Regression so với PLA là nó không cần có giả
thiết dữ liệu hai class là linearly separable. Tuy nhiên, boundary tìm được vẫn có dạng
tuyến tính. Vậy nên mô hình này chỉ phù hợp với loại dữ liệu mà hai class là gần với
linearly separable. Một kiểu dữ liệu mà Logistic Regression không làm việc được là
dữ liệu mà một class chứa các điểm nằm trong 1 vòng tròn, class kia chứa các điểm
bên ngoài đường tròn đó. Kiểu dữ liệu này được gọi là phi tuyến (non-linear).
- Nhược điểm : Nếu tập dữ liệu có thứ nguyên cao, thì thuật toán Hồi quy logistic có
nhiều khả năng phù hợp hơn với tập huấn luyện. Như đã nói, mô hình được phát triển
có thể không dự đoán kết quả chính xác trong tập thử nghiệm. Vấn đề nảy sinh với hồi
quy logistic khi một cá nhân đang giải các bài toán phi tuyến tính. Vì thuật toán này
phụ thuộc nhiều vào việc trình bày dữ liệu, các biến độc lập cần thiết phải được xác
định trước khi thực hiện thuật toán. Cuối cùng, một số lượng thích hợp của tập dữ liệu
và các ví dụ đào tạo thích hợp về các danh mục sẽ được công nhận trong Logistic
Regression.
4.1.Kết Luận
Trong bài tập lớn này, chúng em tìm hiểu và trình bày về hai kỹ thuật trong khai phá
dữ liệu để phân cụm và sử dụng thuật toán hồi quy logistic với đề tài “Khai phá tập dữ
liệu hồ sơ mắc bệnh đột quỵ”.
Trong quá trình làm bài tập lớn này, chúng em xin gửi lời cảm ơn đến Thầy Trần
Mạnh Tuấn. Thầy đã rất tận tình hướng dẫn chi tiết cho chúng em, những kiến thức
cung cấp rất hữu ích .Chúng em rất mong nhận được những góp ý từ thầy.