30 CHƯƠNG 3 XÁC ĐỊNH MÚC ĐỘ BỆNH UNG THƯ VÚ BẰNG PHƯƠNG PHÁP WRAP KẾT HỢP THUẬT TOÁN RỪNG NGẪU NHIÊN Quá trình hiện thực đề tài được tóm tắt bằng hình ảnh dưới đây Hình 3 1 Quá trình hiện thực đề tài 31 Quá trình được mô tả như sau Bước 1 chuẩn bị bộ ảnh dùng để tạo tập dữ liệu huấn luyện (98 ảnh) và tập dữ liệu kiểm tra (49 ảnh) Bước 2 tạo tập dữ liệu huấn luyện Bước 2 1 từ ảnh đã xác định vùng nghi ngờ của các chuyên gia, luận văn lọc và lấy vùng nghi ngờ Sau đó, chia vùng nghi ngờ thành 3 vùn.
CHƯƠNG XÁC ĐỊNH MÚC ĐỘ BỆNH UNG THƯ VÚ BẰNG PHƯƠNG PHÁP WRAP KẾT HỢP THUẬT TOÁN RỪNG NGẪU NHIÊN Q trình thực đề tài tóm tắt hình ảnh đây: Hình 3.1 Quá trình thực đề tài 30 Q trình mơ tả sau: - Bước 1: chuẩn bị ảnh dùng để tạo tập liệu huấn luyện (98 ảnh) tập liệu kiểm tra (49 ảnh) - Bước 2: tạo tập liệu huấn luyện - Bước 2.1: từ ảnh xác định vùng nghi ngờ chuyên gia, luận văn lọc lấy vùng nghi ngờ Sau đó, chia vùng nghi ngờ thành vùng nhỏ trích xuất đặc trưng (thông số) vùng Kết hợp với đặc trưng chuyên gia tạo thành tập 47 đặc trưng Đây tập liệu huấn luyện ban đầu - Bước 2.2: sử dụng ma trận tương quan để đánh giá đặc trưng có độ tương quan với cao để loại bỏ bớt Tiếp đến, luận văn sử dụng phương pháp Wrap để đánh giá tập đặc trưng cho tốt chọn làm tập liệu huấn luyện cuối - Bước 3: tạo tập liệu kiểm tra - Bước 3.1: từ vùng xác định nghi ngờ chuyên gia, luận văn tiến hành tính Q1, Q2, Q3 IQR Từ đó, luận văn tính ngưỡng hình - Bước 3.2: Sử dụng ngưỡng để lọc vùng nghi ngờ hình ảnh dùng để tạo tập kiểm tra Sau đó, trích xuất đặc trưng vùng tương tự Bước 2.1 - Bước 3.3: kết hợp kết Bước 3.2, đặc trưng chuyên gia kết đặc trưng cuối chọn Bước 2.2, luận văn tạo tập liệu kiểm tra cuối - Bước 4: sử dụng thuật toán rừng ngẫu nhiên để học tập huấn luyện kiểm tra kết tập kiểm tra 3.1 Giai đoạn thu thập phân tích liệu ảnh Luận văn sử dụng Internet để tìm kiếm liệu liệu ảnh chụp X-ray vùng vú Sau trình tìm kiếm lựa chọn liệu, luận văn thấy liệu ảnh chụp X-ray vùng vú Breast Cancer Digital Repository (BCDR) [3] phù hợp liệu mẫu có thành phần sau đây: - Hình ảnh chụp X-ray vùng vú ban đầu - Hình ảnh chụp X-ray vùng vú xác định vùng bất thường 31 - Các thơng số liệu có liên quan đến hình ảnh: area, perimeter, correlation, minimum, maximum, median, mean, standard devition, … - Kết phân loại liệu “lành tính” “ác tính” Hình 3.2 Dữ liệu ảnh chụp X-ray bệnh nhân chuẩn đốn “ác tính” 32 Hình 3.3 Dữ liệu ảnh chụp X-ray bệnh nhân chuẩn đốn “lành tính” Nhìn vào hai liệu mẫu luận văn thấy vùng khoanh tròn màu đỏ vùng xác định bất thường ảnh chụp X-ray vùng vú Tại đây, luận văn nhận thấy vùng bất thường có đặc điểm sau đây: - Là vùng có màu sáng ảnh chụp X-ray - Diện tích vùng màu sáng tương đối lớn Đây sở để luận văn tìm kiếm, trích xuất, huấn luyện đưa dự đốn mức độ bệnh ung thư vú 33 3.2 Giai đoạn lập bảng liệu huấn luyện 3.2.1 Tạo tập huấn luyện ban đầu Từ liệu mẫu có kết (dữ liệu xác định vùng nghi ngờ), luận văn thực trích xuất liệu vùng nghi ngờ: min, max, area, mean, std, Mã giả: trích xuất liệu vùng nghi ngờ Ý tưởng: - Vì hình có vịng bo màu đỏ hình màu, luận văn lấy kênh màu xanh xanh lục để xử lý, tách vùng xác định nghi ngờ (màu đỏ có kênh màu: đỏ = 255, xanh lục = 0, xanh = 0) - Chia vùng nghi ngờ thành ba vùng nhỏ theo tỷ lệ mức xám tương ứng < 50%, 50% − 70% > 70%, từ trích xuất liệu min, max, area, mean, std vùng Dữ liệu đầu vào: ảnh chụp X-ray vủng vú xác định vùng nghi ngờ (ảnh màu có bo màu đỏ) Dữ liệu đầu ra: liệu vùng nghi ngờ BEGIN color_img = readImage(); gray_img = chooseBlueMode(); // Tạo ảnh nhị phân bw_img = gray_img < 50; // Đánh dấu nhãn bw_index = bwlabel(bw_img); // Chọn đường bo vùng nghi ngờ làm đầy vùng bw = chooseBoundingBox(bw_index); bw = imfill(bw,'holes'); 34 // Thu nhỏ hình để loại bỏ đường bo se = strel('square',10); bw = imerode(bwfl,se); // Trích xuất vùng nghi ngờ ảnh xám gray_img_fn = getInGrayImage(gray_img, bw); // Chia vùng nghi ngờ thành vùng nhỏ [part1, part2, part3] = spitByPercent(gray_img_fn, 50, 70); // Lấy liệu vùng [min1, max1, area1, mean1, std1] = getData(part1); [min2, max2, area2, mean2, std2] = getData(part2); [min3, max3, area3, mean3, std3] = getData(part3); Return min1, max1, area1, mean1, std1, min2, max2, area2, mean2, std2, min3, max3, area3, mean3, std3; END Bảng 3.1 Bảng minh hoạ liệu huấn luyện – phần tự trích xuất Kết hợp với 24 đặc trưng chuyên gia tạo thành tập huấn luyện có 47 đặc trưng ban đầu Bảng 3.2 Bảng minh hoạ liệu huấn luyện – phần chuyên gia 35 Bảng 3.3 Bảng minh hoạ liệu huấn luyện – phần chuyên gia 3.2.2 Sử dụng phương pháp Wrap để lựa chọn tập đặc trưng tốt Từ bảng liệu huấn luyện lập với 23 đặc trưng trích xuất với 24 đặc trưng cung cấp từ chuyên gia, luận văn có 47 đặc trưng lựa chọn ban đầu Luận văn đánh giá độ tương quan đặc trưng lựa chọn, sau xem xét đặc trưng có độ tương quan với lớn 0.8 [8] tiến hành bỏ đặc trưng giữ lại Mã giả: đánh giá mức độ tương quan đặc trưng Ý tưởng: - Từ bảng liệu ban đầu, luận văn lập ma trận đường chéo để đánh giá độ tương quan đặc trưng Các phần tử ma trận thể mức độ tương quan có giá trị từ đến 1, đại diện cho hai đặc trưng không liên quan với đại điện cho hai đặc trưng liên quan với hoàn toàn Dữ liệu đầu vào: liệu huấn luyện bao gồm 47 đặc trưng lựa chọn ban đầu Dữ liệu đầu ra: danh sách đặc trưng đánh giá có tương quan lớn (sẽ loại bỏ đặc trưng này) BEGIN // Khởi tạo danh sách đặc trưng tương quan correlated_features = set() // Tạo ma trận tương quan correlation_matrix = initial_data.corr() // Lấy liệu vùng for i in range(len(correlation_matrix columns)): for j in range(i): 36 if abs(correlation_matrix.iloc[i, j]) > 0.8: colname = correlation_matrix.columns[i] correlated_features.add(colname) return correlated_features; END Hình 3.4 Ảnh minh hoạ ma trận tương quan Như hình ta thấy, đặc trưng height area có độ tương quan cao 0.932001 loại bỏ bớt hai đặc trưng giữ lại Tương tự, số đặc trưng đánh giá có độ tương quan cao khoanh đỏ Hình 3.4 Kết quả, luận văn loại bỏ 24 đặc trưng giữ lại 23 đặc trưng Hình 3.5 Ảnh 24 đặc trưng có độ tương quan cao Hình 3.6 Ảnh 23 đặc trưng giữ lại Tiếp theo, luận văn sử dụng Thuật toán SequentialFeatureSelector để tạo tập kết hợp đặc trưng đánh giá xem tập kết hợp tốt 37 Mã giả: khảo sát đánh giá tập kết hợp đặc trưng Ý tưởng: - Sử dụng thuật tốn SequentialFeatureSelector để tìm tập kết hợp tốt Dữ liệu đầu vào: liệu huấn luyện bao gồm đặc trưng sau loại bỏ đặc trưng tương quan Dữ liệu đầu ra: danh sách tập kết hợp BEGIN // Thêm thư viện from mlxtend.feature_selection import SequentialFeatureSelector import numpy as np // Thiết lập thơng số cho thuật tốn feature_selector = SequentialFeatureSelector( RandomForestClassifier(n_jobs=-1), k_features=47, forward=True, verbose=2, scoring='roc_auc', cv=4) // Đánh giá tập kết hợp model = feature_selector.fit(np.array(train_features.fillna(0)), train_labels) return model; END 38 Hình 3.7 Ảnh kết đánh giá tập kết hợp Luận văn thấy rằng, tập bao gồm 10 đặc trưng đánh giá tốt Hình 3.8 Ảnh đặc trưng tập đánh giá tốt 3.3 Giai đoạn lập bảng liệu kiểm tra 3.3.1 Tính ngưỡng vùng nghi ngờ Đầu tiên, luận văn trích xuất vùng nghi ngờ từ vùng nghi ngờ chuyên gia Tiếp theo, luận văn chuyển liệu ma trận thành liệu mảng loại bỏ phần tử có giá trị Sau đó, luận văn tính Q1, Q2, Q3 IQR Cuối cùng, áp dụng lý thuyết độ trải để tính Ngưỡng phương sai theo công thức: 𝑇 = 𝑄2 + 1.5 × 𝐼𝑄𝑅 39 Mã giả: tính ngưỡng Ý tưởng: hình có vịng bo màu đỏ hình màu, luận văn lấy kênh màu xanh xanh lục để xử lý tách vùng xác định nghi ngờ (màu đỏ có kênh màu: đỏ = 255, xanh lục = 0, xanh = 0), sau tính Q1, Q2, Q3, IQR ngưỡng T Dữ liệu đầu vào: ảnh chụp X-ray vùng vú xác định vùng nghi ngờ (ảnh màu có bo màu đỏ) Dữ liệu đầu ra: giá trị ngưỡng T BEGIN color_img = readImage(); gray_img = chooseBlueMode(); // Tạo ảnh nhị phân bw_img = gray_img < 50; // Đánh dấu nhãn bw_index = bwlabel(bw_img); // Chọn đường bo vùng nghi ngờ làm đầy vùng bw = chooseBoundingBox(bw_index); bw = imfill(bw,'holes'); // Thu nhỏ hình để loại bỏ đường bo se = strel('square',10); bw = imerode(bwfl,se); // Trích xuất vùng nghi ngờ ảnh xám gray_img_fn = getInGrayImage(gray_img, bw); // Chuyển thành liệu mảng arr_img = gray_img_fn (:); 40 //Tính Q1 Q2 Q3 IQR [Q1, Q2, Q3, IQR] = GetQ1Q2Q3IQR(arr_img); T = Q2 + 1.5*IQR Return T; END Bảng 3.4 Bảng kết trích xuất vùng nghi ngờ ST Ảnh ban đầu Vùng nghi ngờ T 41 Thực thao tác trên, luận văn lập bảng liệu đây: Bảng 3.5 Bảng kết tính ngưỡng 3.3.2 Sử dụng ngưỡng để lọc trích xuất thơng tin vùng nghi ngờ Áp dụng ngưỡng T vừa tìm để lọc trích xuất đặc trưng vùng nghi ngờ mẫu liệu kiểm tra Mã giả: trích xuất liệu vùng nghi ngờ Ý tưởng: - Từ ngưỡng, trích xuất vùng nghi ngờ - Chia vùng nghi ngờ thành vùng nhỏ theo tỷ lệ mức xám tương ứng < 50%, 50% − 70% > 70%, từ trích xuất liệu min, max, area, mean, std vùng Dữ liệu đầu vào: ảnh chụp X-ray vùng ban đầu, ngưỡng T Dữ liệu đầu ra: thông số vùng nghi ngờ BEGIN gray_img = readImage(); thresh_hold = T; // Tạo ảnh nhị phân bw_img = gray_img ≥ thresh_hold; // Đánh dấu nhãn bw_index = bwlabel(bw_img); 42 // Trích xuất vùng nghi ngờ ảnh xám gray_img_fn = getInGrayImage(gray_img, bw); // Chia vùng nghi ngờ thành vùng nhỏ [part1, part2, part3] = spitByPercent(gray_img_fn, 50, 70); // Lấy liệu vùng [min1, max1, area1, mean1, std1] = getData(part1); [min2, max2, area2, mean2, std2] = getData(part2); [min3, max3, area3, mean3, std3] = getData(part3); Return min1, max1, area1, mean1, std1, min2, max2, area2, mean2, std2, min3, max3, area3, mean3, std3; END Bảng 3.6 Bảng đặc trưng trích xuất – phần tự trích xuất 3.3.3 Tạo tập kiểm tra cuối Từ 23 đặc trưng trích xuất mục 3.3.2, kết hợp với 24 đặc trưng chuyên gia sử dụng kết đánh giá tập đặc trưng tốt mục 3.2.2, luận văn lập tập liệu kiểm tra cuối Xem Bảng 3.7 Bảng 3.7 Bảng liệu kiểm tra cuối 43 3.4 Giai đoạn sử dụng thuật toán Rừng ngẫu nhiên để học kiểm tra kết Thuật toán sử dụng hai tập liệu tập liệu huấn luyện để tiến hành học tập liệu kiểm tra để kiểm chứng kết Mã giả: sử dụng thuật toán RandomForestClassifier để huấn luyện kiểm tra Ý tưởng: - Sử dụng thuật toán RandomForestClassifier dựa ngôn ngữ Python để thực Dữ liệu đầu vào: tập liệu huấn luyện tập liệu kiểm tra Dữ liệu đầu ra: dự đoán mức độ bệnh đối chứng với kết có tập kiểm tra BEGIN // Thêm thư viện from sklearn.ensemble import RandomForestClassifier // Khai báo thuật toán rf = RandomForestClassifier() // Học tập liệu huấn luyện rf.fit(train_features, train_labels) // Dự đoán tập liệu kiểm tra y_pred = rf.predict(test_features) return y_pred; END 44 ... (BCDR) [3] phù hợp liệu mẫu có thành phần sau đây: - Hình ảnh chụp X- ray vùng vú ban đầu - Hình ảnh chụp X- ray vùng vú x? ?c định vùng bất thư? ??ng 31 - Các thông số liệu có liên quan đến hình ảnh: ... thấy vùng khoanh tròn màu đỏ vùng x? ?c định bất thư? ??ng ảnh chụp X- ray vùng vú Tại đây, luận văn nhận thấy vùng bất thư? ??ng có đặc điểm sau đây: - Là vùng có màu sáng ảnh chụp X- ray - Diện tích vùng. .. xanh xanh lục để x? ?? lý tách vùng x? ?c định nghi ngờ (màu đỏ có kênh màu: đỏ = 255, xanh lục = 0, xanh = 0), sau tính Q1, Q2, Q3, IQR ngưỡng T Dữ liệu đầu vào: ảnh chụp X- ray vùng vú x? ?c định vùng