Bộ dữ liệu dự đoán khả năng mắc bệnh tim 26

Một phần của tài liệu Sử dụng thuật toán phân lớp nhị phân dự Đoán khả năng mắc bênh ung thư phổi, bệnh tim v bệnh ung thư gan (Trang 34 - 48)

CHƯƠNG 3: ỨNG DỤNG PHƯƠNG PHÁP PHÂN LỚP NHỊ PHÂN DỰ ĐOÁN KHẢ NĂNG MẮC BỆNH UNG THƯ PHỔI, BỆNH TIM V BỆNH UNG THƯ GAN 14

3.3 Xây dựng bộ dữ liệu 18

3.3.2 Bộ dữ liệu dự đoán khả năng mắc bệnh tim 26

Tập dữ liệu gồm 1025 bệnh nhân với các chỉ số mắc bệnh khác nhau, từ đó làm căn cứ chuẩn đoán bệnh nhân có nguy cơ mắc bệnh cao, bệnh nhân có nguy cơ mắc bệnh thấp. Bệnh viện sẽ tổng hợp toàn bộ dữ liệu và phân loại bệnh nhân theo 2 trường hợp này.

- Đặt Y là khả năng mắc bệnh của bệnh nhân, với Y=0 là không mắc bệnh, ngược lại Y=1 là mắc bệnh.

- Bộ dữ liệu gồm 10 thuộc tính:

• sbp: huyết áp tâm thu

• tobacco: thuốc lá tích lũy (kg)

• ldl: cholesterol lipoprotein mật độ thấp

• adiposity: chất béo

• famhist: tiền sử gia đình mắc bệnh tim (Hiện tại = 1, Vắng mặt = 0)

• typea: hành vi loại A

• obesity: béo phì

• alcohol: mức tiêu thụ rượu hiện tại

• age: tuổi

• chd: bệnh tim mạch vành (có = 1 hoặc không = 0)

- Bộ dữ liệu chia thành 2 phần: Trong đó 80% dữ liệu được làm bộ dữ liệu huấn luyện mô hình ( tập train ), 20% còn lại làm bộ dữ liệu thử nghiệm độ chính xác của mô hình ( tập test )

Hình 9 Dữ liệu dự đoán khả năng mắc bệnh tim

3.3.2.1 Cài đặt thuật toán

 Khai báo thư viện

 Đọc file dữ liệu, phân tích dữ liệu, chuẩn hoá, chia tỉ lệ tập train-test

 Chạy mô hình học máy

 Đánh giá mô hình dựa trên kết quả dự đoán (với độ đo đơn giản Accuracy, Precision, Recall)

3.3.2.2 Kết quả

 In dữ liệu

 Dữ liệu đầu vào X:

 Dữ liệu đầu ra Y:

 X_train,Y_train,X_test,Y_test

 X_train,Y_train

 X_test,Y_test

 Đánh giá kết quả:

 Sau khi thử nghiệm với bộ cơ sở dữ liệu thì kết quả phân lớp đạt 71%

Đối với Precision, Recall:

-Ma trận dự đoán

3.3.2.3. Hình vẽ minh họa

#ma tran ket qua du doan

from sklearn.metrics import confusion_matrix confusion_matrix1 = confusion_matrix(y_test,y_pred) print(confusion_matrix1)

X= df[['age' 'tobacco', ]]

y= df['chd'] x0 = X[y== ]0 x1 = X[y== ]1

plt.plot(x0,'b^', markersize = 4, alpha = .8) plt.plot(x1,'go', markersize = 4, alpha = .8) plt.xlabel('age')

plt.ylabel('tobacco') plt.plot()

plt.show()

Hình 10 Hình minh họa dự đoán khả năng mắc bệnh tim 3.3.3 Bộ dữ liệu dự đoán khả năng mắc bệnh gan

- Tập dữ liệu gồm 398 bệnh nhân với các chỉ số khối u bất thường khác nhau, từ đó làm căn cứ chuẩn đoán bệnh nhân có bị mắc bệnh ung thư hay không.

- Đặt Y là khả năng mắc bệnh ung thư gan, với X = 1 là không mắc bệnh X=2 là mắc bệnh.

- Bộ dữ liệu gồm 5 thuộc tính bao gồm:

+ Age -> Age of the patient (Tuổi của bệnh nhân).

+Total_Bilirubin-> Total Billirubin in mg/dL (Tổng Billirubin mg / dL).

+Direct_Bilirubin -> Conjugated Billirubin in mg/dL (Billirubin liên hợp tính bằng mg / dL).

+Alkaline_Phosphotase -> Alcohol intake level of the patient (Mức độ uống rượu của bệnh nhân).

+Alamine_Aminotransferase ->ALT in IU/L (ALT tính bằng IU / L) +Aspartate_Aminotransferase ->AST in IU/L

+Total_Protiens ->Total Proteins g/dL(Tổng số protein g / dL) +Albumin ->Albumin in g/dL (Albumin tính bằng g / dL) +Albumin_and_Globulin_Ratio ->A/G ratio (tỷ lệ A/G) +Dataset (chuẩn đoán mắc bệnh hay không mắc bệnh)

- Bộ dữ liệu chia thành 2 phần: Trong đó 80% dữ liệu được làm bộ dữ liệu huấn luyện mô hình ( tập train ), 20% còn lại làm bộ dữ liệu thử nghiệm độ chính xác của mô hình ( tập test ).

Hình 11 Dữ liệu dự đoán khả năng mắc bệnh ung thư gan 3.3.3.1 Cài đặt thuật toán

 Khai báo thư viện

Đọc file dữ liệu, phân tích dữ liệu, chuẩn hoá, chia tỉ lệ tập train-test

 Chạy mô hình học máy

 Đánh giá mô hình dựa trên kết quả dự đoán (với độ đo đơn giản Accuracy, Precision, Recall)

3.3.3.2 Kết quả

 In dữ liệu

 Dữ liệu đầu vào X:

 Dữ liệu đầu ra Y:

 X_train,Y_train,X_test,Y_test

 X_train,Y_train

 X_test,Y_test

 Đánh giá kết quả:

 Sau khi thử nghiệm với bộ cơ sở dữ liệu thì kết quả phân lớp đạt 72%

Đối với Precision, Recall:

 Ma trận dự đoán

3.3.3.3 Hình vẽ minh họa

X= df[['Alkaline_Phosphotase' 'Age', ]]

y= df['Dataset'] x0 = X[y== ]1 x1 = X[y== ]2

plt.plot(x0,'b^', markersize = 4, alpha = .8) plt.plot(x1,'go', markersize = 4, alpha = .8) plt.xlabel('Alkaline_Phosphotase') plt.ylabel('Age')

plt.plot() plt.show()

Hình 12 Hình minh họa dự đoán khả năng mắc bệnh ung thư gan 3.4 Đánh Giá

Ưu điểm:

+ Cơ sở toán học chặt chẽ, đây là thuật toán mà ta luôn luôn tìm được lời giải tốt nhất cho thuật toán đó.

+ Sau khi học xong thì ta dự đoán rất nhanh, vì ta chỉ cần thay vào phương trình siêu phẳng và kiểm tra xem lớn hơn 0 hay nhỏ hơn 0 thì ta sẽ có kết quả.

Nhược điểm:

+ Để SVM hiệu quả thì dữ liệu cần phải được trích-chọn các thuộc tính phù hợp, SVM không thể lựa chọn thuộc tính được nên các bạn phải tự lựa chọn thuộc tính hoặc dùng các thuật toán khác.

Một phần của tài liệu Sử dụng thuật toán phân lớp nhị phân dự Đoán khả năng mắc bênh ung thư phổi, bệnh tim v bệnh ung thư gan (Trang 34 - 48)

Tải bản đầy đủ (PDF)

(48 trang)