6. Bố cục của luận văn:
3.4 Kết hợp thuật tốn PCAvà hồi quy logistic vào ứng dụng tiên lượng
lượng bệnh tiểu đường
Như chúng tơi đã trình bày ở nội dung trên, khi hiện thuật tốn PCA tập dữ liệu ban đầu của chúng tơi sẽ bị thay đổi. Cụ thể, mục tiêu của PCA là giảm chiều dữ liệu bằng cách chọn ra các thành phần chính cĩ tầm ảnh hưởng nhiều đến biến kết quả và sẽ loại bỏ các thành phần ít ảnh hưởng hơn nhưng vẫn đảm bảo được độ chính xác của dữ liệu. Chúng tơi muốn thử nghiệm ứng dụng thuật tốn PCA vào việc dự đốn kết quả của hồi quy Logistic để xem xét sự ảnh hưởng các biến dữ liệu đến kết quả dự đốn.
3.4.1 Thuật tốn PCA
Thuật tốn PCA hướng đến mục tiêu nỗ lực giảm kích thước dữ liệu bằng cách phát hiện mối tương quan giữa các biến thơng qua giá trị phương sai sao cho số chiều của dữ liệu giữ lại tuy ít nhưng vẫn đảm bảo được lượng thơng tin cao nhất cĩ thể.
Kết quả thử nghiệm khi sử dụng PCA sẽ mang lại nhiều lợi ích cho các quá trình xử lí dữ liệu sau này của học máy. Ứng dụng PCA giúp lọc các tính năng ít liên quan, từ đĩ làm giảm thời gian và chi phí đào tạo, tăng hiệu suất mơ hình.
Với mục tiêu như trên, chúng tơi triển khai thuật tốn PCA trên ngơn ngữ python như sau:
Đọc dữ liệu từ tập tin Dulieu.csv cho chương trình, chúng tơi sử dụng thư viện Pandas của python với phương thức Read_cvs(). Kết quả thực hiện được thể hiện như sau:
Pl-52
Từ bảng dữ liệu này chúng tơi thực hiện tách dữ liệu vào thành hai bảng, bảng chứa dữ liệu dự đốn và bảng chứa dữ liệu kết quả. Các bước sau này của thực tốn chủ yếu thao tác trên dữ liệu dự đốn, bảng dữ liệu kết quả chỉ chứa hai giá trị 0 và 1 tương ứng với chẩn đốn là âm tính hay dương tính. Việc tách dữ liệu được thể hiện như sau:
Bộ dữ liệu dự đốn được lưu trữ dưới dạng ma trận, trong đĩ các cột là các tính năng khác nhau và mỗi hàng đại diện cho mỗi mẫu xét nghiệm riêng biệt. Mỗi hàng cĩ thể được hình dung là một vector 3 chiều.
Vì các dữ liệu cĩ các thang đo đơn vị khơng đồng nhất nên chúng tơi cần chuẩn hĩa dữ liệu. Việc chuẩn hĩa dữ liệu trước khi thực hiện PCA trên ma trận hiệp phương sai hay khơng là phụ thuộc vào thang đo của các tính năng ban đầu. Vì PCA mang lại một khơng gian con tính năng tối đa hĩa phương sai dọc theo các trục nên việc chuẩn hĩa dữ liệu là điều cần thiết phải thực hiện. Vả lại, trong bộ dữ liệu gốc ban đầu, thang đo của các thuộc tính là khác nhau nên ta chuyển đổi dữ liệu sang thang đo đơn vị (mean = 0; variance = 1). Đây là một yêu cầu cho hiệu suất tối ưu của nhiều thuật tốn học máy.
Thao tác chuẩn hĩa bảng dữ liệu dự đốn được thực hiện thơng qua phương thức fit_transform() của đối tượng StandardScaler. Dữ liệu được chuẩn hĩa sau đĩ được kết hợp lại với bảng dữ liệu kết quả (thực hiện ở bước 2) rồi
Pl-53
xuất ra tập tin dulieu_chuanhoa.csv bằng cách sử dụng phương thức to_csv()
của đối tượng DataFrame trong Pandas.
Tính ma trận hiệp phương sai từ bảng dữ liệu đã được chuẩn hĩa là việc cần thiết trong PCA. Ma trận hiệp phương sai trong tập dữ liệu này là một ma trận vuơng 3 x 3, trong đĩ phần tử nằm trên đường chéo của ma trận lần lượt là phương sai tương ứng của các biến. Trong khi các phần tử cịn lại (khơng nằm trên đường chéo) là các hiệp phương sai của đơi một hai biến ngẫu nhiên khác nhau trong tập dữ liệu. Để đưa ra được ma trận này, chúng tơi sử dụng phương thức cov() của thư viện Numpy được thể hiện như sau:
Kết quả ma trận hiệp phương sai được thể hiện như sau:
Các eigen value, eigen vector của một ma trận hiệp phương sai đại diện
cho cốt lõi của thuật tốn PCA. Các eigen vector ( thành phần chính) sẽ xác
Pl-54
của chúng. Hay nĩi cách khác, eigen value giải thích phương sai của dữ liệu
dọc theo trục tính năng mới. Tỷ lệ của eigen value là tỷ lệ về tầm quan trọng giải thích của các yếu tố liên quan đến các biến. Nếu yếu tố thấp thì nĩ sẽ đĩng gĩp ít hơn trong việc giải thích các biến. Các cặp giá trị eigen value và eigen
vector được tính tốn dựa vào phương thứclinalg.eig() trên ma trận hiệp phương sai.
Giá trị của eigen vector, eigen value sau khi sử dụng phương thức trên
được thể hiện qua bảng kết quả :
Mục tiêu tiêu biểu của PCA là tính giảm chiều của khơng gian tính năng ban đầu bằng cách chiếu nĩ lên một khơng gian con nhỏ hơn, trong đĩ các hàm riêng sẽ tạo thành các trục. Tuy nhiên, các hàm riêng chỉ xác định hướng của trục mới vì chúng cĩ cùng độ dài đơn vị là 1.
Để quyết định các giá trị nào cĩ thể bỏ đi mà khơng làm mất quá nhiều thơng tin cho việc xây dựng khơng gian con cĩ số chiều thấp hơn, chúng tơi cần kiểm tra các giá trị riêng tương ứng: các hàm riêng cĩ các giá trị riêng thấp nhất mang ít thơng tin nhất về phân phối dữ liệu. Đĩ chính là những tính năng cĩ thể được loại bỏ.
Để làm được như trên, cách tiếp cận của chúng tơi là sử dụng cách sắp xếp các cặp giá trị eigen value và eigen vector, được gọi là các eig_pair, theo chiều giảm của eigen value. Eig_pair là dữ liệu dạng danh sách (list), việc sắp xếp cĩ
Pl-55
thể được thực hiện sử dụng các phương thức sort() và reverse() trên danh sách này.
Sau khi thực hiện sắp xếp các Eig_pair, một vấn đề được đặt ra là chúng tơi sẽ lựa chọn bao nhiêu thành phần chính cho khơng gian con tính năng mới của mình. Để trả lời cho câu hỏi vừa nêu trên, chúng tơi thực hiện tính tổng các giá trị eigen value, trên cơ sở đĩ tính ra trọng số (hay tỷ lệ phần trăm) của từng eigen value.
Khi đã xác định được trọng số của từng eigen value (đã được sắp xếp giảm dần), ta chọn giữa lại số cặp eig_pair sao cho tổng các trọng số của chúng lớn hơn ngưỡng đã xác định, thường khơng dưới 70%. Số cặp eig_pair giữa lại chính là số thành phần chính giữ lại của thuật tốn PCA.
Pl-56
Việc xây dựng ma trận chiếu sẽ được sử dụng để chuyển đổi dữ liệu tiểu đường sang khơng gian con của tính năng mới. Ma trận chiếu một ma trận
của k eigenvector hàng đầu nối liền nhau của chúng ta .
Ở đây, chúng tơi đang giảm khơng gian đối tượng 3 chiều thành khơng gian con của đối tượng 2 chiều, bằng cách chọn 2 giá trị eigenvector đầu tiên cĩ giá trị đặc trưng cao nhất làm ma trận W.
Xây dựng bảng dữ liệu kết quả được thực hiện: nhân ma trận W với ma trận dữ liệu dự đốn đã được chuẩn hĩa và kết hợp thêm bảng dữ liệu kết quả. Bảng này bao gồm n cột dữ liệu dự đốn tương ứng với n thành phần chính giữ lại và 1 cột dữ liệu kết quả.
Pl-57 Đồ thị PCA.
Hình 3.2: Đồ thi phân tích thàn phần chính PCA
Qua đồ thị phân cụm cho thấy, thuật tốn PCA đã tiến hành phân chia dữ liệu thành hai phần âm tính và dương tính với bệnh tiểu đường. Các điểm dữ liệu cĩ khoảng cách càng xa với điểm dữ liệu cịn lại thường được xem là các dữ liệu nhiễu.
Kết quả đầu ra khi thực hiện xong thuật tốn PCA thường chứa ít thuộc tính hơn so với dữ liệu ban đầu. Chúng tơi dùng kết quả này để làm dữ liệu đầu vào cho thuật tốn hồi quy Logistic. Tập dữ liệu này chúng tập dữ liệu này được lưu trữ dưới dạng tập tin.CSV(dulieu_chuanhoa_pca.csv).
Lúc này, chúng tơi nhận được kết quả sau khi áp dụng chuyển đổi PCA tuyến tính là một khơng gian con chiều thấp hơn, PCA chỉ dữ lại 2 chiều với độ chính xác 75%.Việc giảm chiều dữ liệu của PCA khi kết hợp với thuật tốn hồi quy Logistic chúng tơi hy vọng rằng kết quả thực hiện thuật tốn cĩ nhiều chuyển biến tích cực hơn.
3.4.2 Kết hợp hai thuật tốn PCA-Logistic
Thuật tốn kết hợp PCA và hồi quy Logistic được thực hiện tương tự như các bước thực hiện hồi quy Logistic, tuy nhiên ở bước nạp dữ liệu đầu vào
Pl-58
chúng tơi chọn nguồn dữ liệu từ tập tin tập tin ‘dulieu_chuanhoa_pca.csv’
Sau đĩ gọi hàm LogisticRegression() để thuật tốn được thực hiện trên tập dữ liệu mới này. Kết quả thu được sau khi thực hiện thuật tốn kết hợp như sau:
Qua kết quả thực hiện trên, độ chính xác của mơ hình hồi quy Logistic là 0.83. Rõ ràng ta thấy cĩ sự thay đổi về kết quả của hai thuật tốn hồi quy Logistic và PCA - Logistic. Cụ thể, khi sử dụng thuật tốn hồi quy Logistic trên tập dữ liệu giảm chiều PCA đã làm giảm độ chính xác của mơ hình hồi quy Logistic. Điều này chúng tơi cho là đúng vì chúng tơi đã làm giảm số lượng chiều của dữ liệu bằng cách loại bỏ các thuộc tính cĩ tính năng ít ảnh hưởng ra khỏi tập dữ liệu của mình.
Khi quan sát trên đồ thị biểu diễn dữ liệu trong thuật tốn PCA, chúng tơi phát hiện ra nhiều điểm dữ liệu cĩ khoảng cách khá xa với các điểm dữ liệu cịn lại. Các điểm dữ liệu đĩ cĩ thể xem là các điểm dữ liệu bất thường ít nhiều sẽ làm cho kết quả dự đốn của chúng tơi bị ảnh hưởng. Mục tiêu của chúng tơi là làm thế nào để loại bỏ số mẫu tin chứa dữ liệu nhiễu này, sau đĩ thực hiện mơ
Pl-59
hình dự đốn để so sánh kết quả với nhận định của chúng tơi.
3.5 K-Means và hồi quy Logistic
3.5.1 Phát hiện và loại bỏ các dữ liệu ngoại lai(outliers) bỡi thuật tốn phân cụm K-Means
Các phần tử ngoại lai (outliers) cĩ ảnh hưởng lớn đến độ chính xác của các mơ hình dự đốn. Phát hiện và xử lý các outliers là một bước quan trọng quá trình chuẩn bị dữ liệu cho mơ hình dự đốn. Các phần tử outliers ảnh hưởng lớn đến giá trị trung bình và độ lệch chuẩn của tập dữ liệu, cĩ thể dẫn đến tăng lỗi phân loại hoặc hồi quy. Cĩ rất nhiều kỹ thuật phát hiện các outliers như: phương pháp thống kê, LOF( Local Outlier Factor), …Trong nghiên cứu của chúng tơi, K-Means là một kỹ thuật được lựa chọn trong việc phát hiện và loại bỏ các outliers vượt ngưỡng nhằm thay đổi độ chính xác cho các mơ hình phân loại dự đốn.
Các dữ liệu ngoại lai (outliers) cĩ thể được hiểu là một hoặc nhiều cá thể khác hẳn đối với các thành viên cịn lại trong nhĩm. Ví dụ dưới đây điểm dữ liệu màu đỏ chính là outlier (nĩ cĩ đặc tính khác với các dữ liệu màu xanh)
Hình 3.3. Mơ tả outlier trên bộ dữ liệu 2 chiều
Qua hình ảnh minh họa trên, chúng tơi thấy rằng các điểm dữ liệu màu đỏ cĩ nhiều khác lạ so với các dữ liệu cịn lại (khoảng cách xa hơn). Vậy, chúng tơi cĩ thể xem các điểm dữ liệu này là chính là các dữ liệu outliers.
Ý tưởng chính của kỹ thuật phân cụm K-Means là nhĩm các đối tượng vào K nhĩm cho trước. Sau đĩ tính khoảng cách giữa các đối tượng trong nhĩm
Pl-60
đến tâm của nhĩm đĩ và chọn ra n đối tượng (n được xác định trước) cĩ khoảng cách đến tâm lớn nhất cĩ thể xem là các outliers. Đến bước này, ta cĩ thể loại bỏ các outliers này để làm sạch dữ liệu trước khi đưa vào mơ hình dự đốn.
Dùng python để triển khai thuật tốn K-Means nhằm phát hiện và cắt bỏ các outliers. Chúng tơi tải dữ liệu đầu vào cho chương trình từ tập tin dulieu_chuanhoa.csv.
Dữ liệu đầu vào của thuật tốn là một bảng dữ liệu đã được chuẩn hĩa. Do K-Means là thuật tốn học máy khơng giám sát nên ta thực hiện tách dữ liệu để bỏ tập nhãn Y.
Thực hiện tách bảng dữ liệu thành 2 bảng, 1 bảng chứa dữ liệu dự đốn và 1 bảng chứa dữ liệu kết quả
Kết quả của việc phân cụm dữ liệu phụ thuộc rất nhiều vào việc lựa chọn các tâm cụm. Trong bài tốn chúng tơi đang thực hiện, dữ liệu đầu ra của chúng tơi là dự đốn cĩ mắc bệnh tiểu đường hay khơng mắc bệnh tiểu đường nên chúng tơi chọn số cụm là 2.
Pl-61
Với số cụm đã được lựa chọn, chúng tơi bắt đầu thực thi K-Means. Dùng hai bảng: df_pid_clustered chứa 300 giá trị cho biết 300 mẫu trong bảng df_X thuộc về cụm nào; bảng df_pid_transformed cĩ 300 cặp giá trị, mỗi cặp gồm 2 giá trị là 2 khoảng cách tới 2 tâm cụm.
Lúc này, chúng tơi cĩ thể tính độ chính xác của K-Means, sau đĩ thực hiện in ra tâm cụm K-Means đã thực hiện.
Bảng chứa tâm các cụm khi thực thi đoạn chương trình trên, nĩ là một ma trận 2 x 3 (2 tâm x 3 chiều mỗi tâm ). Tiếp tục thực hiện tính khoảng cách giữa các điểm và cập nhật lại tâm cụm. Quá trình này sẽ kết thúc khi vị trí tâm cụm khơng cịn bị thay đổi. Kết quả đầu ra mà chúng tơi thu được là độ chính xác của thuật tốn và bảng chứa khoảng cách của các điểm đến hai tâm cụm.
Việc cần làm tiếp theo của thuật tốn K-Means là làm thế nào đĩ để phát hiện ra các phần tử outliers sau đĩ loại bỏ chúng ra khỏi tập dữ liệu với mục đích làm thay đổi khả năng phân loại của hồi quy Logistic. Chúng tơi sử dụng thư viện vẽ đồ thị matplotlib.pyplot để biểu diễn khoảng cách các dữ liệu tới tâm cụm. Dựa vào đồ thị này nhằm phát hiện ra các điểm dữ liệu bất thường để loại bỏ.
Pl-62
Biểu diễn kết quả đạt được trên đồ thị cluster
Hình 3.4: Đồ thị cluster
Cĩ nhiều cách để xác định các outliers, tuy nhiên chúng tơi dùng đồ thị này để xác định các ngưỡng outliers, mẫu nào cĩ khoảng cách tới tâm cụm mà mình thuộc về vượt quá ngưỡng thì mẫu đĩ được xem là outliers và sẽ bị loại bỏ khỏi bảng dữ liệu dự đốn. Ngưỡng này được xác định thủ cơng như sau: Vẽ biểu đồ cho thấy khoảng cách của các mẫu tới tâm cụm của mình theo chiều tăng dần của khoảng cách, xong xác định điểm mà tại đĩ (1) khoảng cách tăng đột ngột và (2) chỉ cịn lại một ít mẫu sau đĩ. Cách làm này dựa trên nhận định rằng các outliers cĩ giá trị bất thường so với các mẫu khác và số lượng outliers
Pl-63
trong bảng dữ liệu dự đốn là khơng nhiều. Tất nhiên cần đảm bảo số lượng mẫu là outliers khơng vượt quá ngưỡng xác định, thường khơng quá 80%. Dựa vào nhận định trên ta tiến hành xĩa các outliers. Theo hình vẽ, giá trị của ngưỡng được xác định chính là điểm gấp của đồ thị. Thơng qua đồ thị trên, chúng tơi chọn ra điểm cắt của cụm 1 cĩ ngưỡng outliers là 2.1, cụm 2 điểm ngưỡng outliers là 1.35
Kết quả thực hiện của việc loại bỏ các trường hợp ngoại lai: trong 300 mẫu dữ liệu, K-Means phát hiện ra 40 mẫu chứa dữ liệu ngoại lai và đã xĩa chúng ra khỏi tập dữ liệu ban đầu. Như vậy, việc phát hiện và xĩa các dữ liệu ouliers trong thuật tốn này là tương đối ít (13.3%). Kiểm tra lại tập dữ liệu gốc ban đầu, chúng tơi thấy rằng những mẫu tin chứa trên thuộc tính ‘Tuoi’ cĩ giá trị bằng 0 hoặc trên thuộc tính ‘Glucose’ chứa giá trị cao thấp bất thường đã được loại bỏ.
3.5.2 Thực hiện thuật tốn hồi quy Logistic trên tập dữ liệu K-Means
Sử dụng thuật tốn hồi quy Logistic như đã nêu ở phần trên nhưng lúc này chúng tơi sử dụng tập dữ liệu đầu vào cho thuật tốn là bảng chứa dữ liệu đã loại bỏ các trường hợp outliers mà K-Means đã thực hiện. Lúc này, tập dữ liệu của chúng tơi chỉ cịn 260 mẫu.
Chúng tơi dùng phương thức sau đây để đọc dữ liệu
Sau đĩ chúng tơi gọi hàm để thực hiện chương trình
Kết quả thực hiện thuật tốn kết hợp này được thể hiện như sau