Daily AI Exercise - Kmeans - KNN
Daily AI Exercise - Kmeans - KNN
1. Mô tả
Bài tập thực hành KMeans nhằm phân vùng bệnh Covid-19 trong bài toán thực tế về dịch
bệnh Sar-Cov2 năm 2021 là một ứng dụng quan trọng trong phân tích dữ liệu y tế. Mục
tiêu của bài tập là sử dụng thuật toán KMeans để phân nhóm các khu vực hoặc quốc gia
dựa trên các chỉ số quan trọng như số ca nhiễm, số ca hồi phục và số ca tử vong. Qua việc
phân cụm, ta có thể xác định các khu vực có đặc điểm dịch tễ học tương đồng, từ đó hỗ trợ
các nhà quản lý y tế đưa ra quyết định hiệu quả hơn trong việc phân bổ nguồn lực và triển
khai các biện pháp phòng chống dịch phù hợp. Đây là một ví dụ điển hình về cách sử dụng
machine learning để giải quyết các vấn đề thực tiễn trong y tế cộng đồng.
2. Nội dung
Chúng ta sẽ sử dụng thuật toán K-Means, đây là một thuật toán phân cụm không giám sát.
Thuật toán k-means là một thuật toán lặp đi lặp lại, cố gắng chia tập dữ liệu thành K cụm
(nhóm con) riêng biệt không chồng chéo, trong đó mỗi điểm dữ liệu chỉ thuộc về một cụm.
Thuật toán cố gắng làm cho các điểm dữ liệu trong cùng một cụm càng giống nhau càng
tốt, đồng thời giữ cho các cụm càng xa nhau càng tốt. Nó gán các điểm dữ liệu vào một cụm
sao cho tổng khoảng cách bình phương giữa các điểm dữ liệu và tâm cụm là nhỏ nhất.
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
Bước 2: Thực hiện tính tỉ lệ hồi phục và tử vòng cho mỗi khu vực:
Chúng ta sẽ thực hiện tính tỉ lệ hồi phục và tử vong từ tập dữ liệu trên theo công thức sau:
Hồi phục
Tỉ lệ hồi phục = ∗ 100% (1)
Số ca xác nhận
Tử vong
Tỉ lệ tử vong = ∗ 100% (2)
Số ca xác nhận
1 # Calculate the ’ Recovered ’ and ’ Deaths ’ percentages , ensuring ’ Confirmed ’
is not zero
2 df_india [ ’ Recovered ’] = # Your code here #
3 df_india [ ’ Deaths ’] = # Your code here #
4 print ( df_india )
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
Hình 3: Kết quả Elbow - Qua đồ thị này dễ thấy K = 4 là kết quả tối ưu
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
Bước 5: Mapping kết quả cluster vào dữ liệu để trực quan hóa trên
bản đồ thế giới:
Chúng ta sẽ mapping kết quả cluster trên với K = 4 vào dữ liệu với cột mới có tên là Zone,
giá trị cột này là giá trị clustering từ mô hình K-Mean với K = 4
1 # Your code here #
2 print ( df_india )
Hình 5: Kết quả phân bố sau khi thực hiện phân cụm
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
Bước 6: Trực quan hóa phân cụm trên bản đồ thế giới:
Để thực hiện trực quan hóa trên bản đồ thế giới, chúng ta cần cài đặt thêm thư viện Folium
để giúp vẽ bản đồ thế giới. Cũng như các có dữ liệu kinh tuyến và vĩ tuyến của các bang của
Ấn Độ. Trong project này, chúng ta đã được cung cấp dữ liệu các tọa độ của các bang, tuy
nhiên đối với bài toán thực tế các bạn có thể lấy dữ liệu tọa độ theo dữ liệu GeoJSON Tại
đây. Chúng ta sẽ thực hiện trực quan hóa toàn bộ phân cụm lên bản đồ thế giới với Folium
như sau:
1 ! pip install folium
2 import folium
3
4 # Assuming you have a dataframe called df_india with ’ State ’ and ’ Zone ’
columns
5 # and a dictionary called state_coords with state names as keys and
latitude , longitude tuples as values .
6
7 # Example state_coords dictionary ( replace with your actual data )
8 state_coords = {
9 " Andhra Pradesh " : (15.9129 , 79.7399) ,
10 " Arunachal Pradesh " : (28.2180 , 94.7278) ,
11 " Assam " : (26.2006 , 92.9376) ,
12 " Bihar " : (25.0961 , 85.3131) ,
13 " Chhattisgarh " : (21.2787 , 81.8661) ,
14 " Goa " : (15.2993 , 74.1240) ,
15 " Gujarat " : (22.2587 , 71.1924) ,
16 " Haryana " : (29.0588 , 76.0856) ,
17 " Himachal Pradesh " : (31.1048 , 77.1734) ,
18 " Jharkhand " : (23.6102 , 85.2799) ,
19 " Karnataka " : (15.3173 , 75.7139) ,
20 " Kerala " : (10.8505 , 76.2711) ,
21 " Madhya Pradesh " : (22.9734 , 78.6569) ,
22 " Maharashtra " : (19.7515 , 75.7139) ,
23 " Manipur " : (24.6637 , 93.9063) ,
24 " Meghalaya " : (25.4670 , 91.3662) ,
25 " Mizoram " : (23.1645 , 92.9376) ,
26 " Nagaland " : (26.1584 , 94.5624) ,
27 " Odisha " : (20.9517 , 85.0985) ,
28 " Punjab " : (31.1471 , 75.3412) ,
29 " Rajasthan " : (27.0238 , 74.2179) ,
30 " Sikkim " : (27.5330 , 88.5122) ,
31 " Tamil Nadu " : (11.1271 , 78.6569) ,
32 " Telangana " : (18.1124 , 79.0193) ,
33 " Tripura " : (23.9408 , 91.9882) ,
34 " Uttar Pradesh " : (26.8467 , 80.9462) ,
35 " Uttarakhand " : (30.0668 , 79.0193) ,
36 " West Bengal " : (22.9868 , 87.8550) ,
37 " Andaman and Nicobar Islands " : (11.7401 , 92.6586) ,
38 " Chandigarh " : (30.7333 , 76.7794) ,
39 " Dadra and Nagar Haveli and Daman and Diu " : (20.2270 , 73.0169) ,
40 " Delhi " : (28.7041 , 77.1025) ,
41 " Jammu and Kashmir " : (33.7782 , 76.5762) ,
42 " Ladakh " : (34.1526 , 77.5806) ,
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
Daily AI Exercise (AIO) Ngày 2 tháng 9 năm 2024
- Hết -
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
• Decision Tree là một trong những thuật toán supervised-learning đơn giản nhất
trong Machine Learning. Thuật toán này dựa trên các node được xây dựng từ
trước và rẽ nhánh phù hợp để nhằm đưa ra kết quả cho bài toán.
Câu 1. Hãy nêu ra sự khác biệt chính của việc áp dụng Decision Tree vào bài toán
Classification và Regression ?
A) Thuật toán Decision Tree sử dụng ý tưởng Entropy và GINI cho bài toán
Classification và ý tưởng Mean Square Error cho bài toán Regression
B) Thuật toán Decision Tree sử dụng ý tưởng Mean Square Error cho bài toán
Classification và ý tưởng Entropy cho bài toán Regression
C) Thuật toán Decision Tree sử dụng ý tưởng tính khoảng cách Euclidean cho bài
toán Classification và ý tưởng tính khoảng cách Mahattan cho bài toán Regression
D) Thuật toán Decision Tree sử dụng ý tưởng tính khoảng cách Mahattan cho bài
toán Classification và ý tưởng tính khoảng cách Euclidean cho bài toán Regression
- Đáp Án: A - Vì ý tưởng chính của giải thuật Decision Tree: Entropy và
Gini cho bài toán Classification và ý tưởng Mean Square Error cho bài toán
Regression.
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
Câu 5. Đâu là lý do khiến chúng ta sử dụng hàm logarithm trong khi tính toán Entropy?
A) Để mô hình phân biệt với cách tính Gini
B) Bởi vì hàm logarithm được lập trình trong máy tính dễ dàng.
C) Để quy chuẩn thông tin về mặt độ lớn về cùng một tham chiếu.
D) Bởi vì nếu không sử dụng thì các con số được xử lý sẽ rất lớn.
- Đáp Án: C.
Câu 6. Cho biết Big-O Notation, ký hiệu là O() là công cụ đánh giá thời gian chạy của
một thuật toán. Ví dụ: Thuật toán cộng các giá trị từ 1 tới n vào một biến sẽ có
Big-O Notation là O(N).
Cho biết N là số lượng mẫu cho thuật toán, k là số lượng features, d là độ sâu
của cây, hãy tính toán Big-O Notation thuật toán Decision Tree được xây dựng ?
A) O(N**2kd)
B) O(Nkd)
C) O(N)
D) O(Nkd**2)
- Đáp Án: B - Độ phức tạp thời gian và bộ nhớ của thuật toán Decision Tree
phụ thuộc vào:
+ N: Số lượng mẫu trong tập dữ liệu
+ k: Số lượng features (thuộc tính)
+ d: Độ sâu của cây
Giai đoạn dự đoán: Duyệt cây từ gốc đến node lá: O(d) →Tính toán kết quả
cho mỗi mẫu: O(k) → Tổng thời gian dự đoán trên toàn tập N mẫu data: O(n*
d * k)
Câu 7. Lý do chính khi tính GINI tổng, chúng ta cần nhân thêm hệ số cho mỗi nhánh
của node chính ?
A) Bởi để node chính trong trường hợp này không bị thua thiệt khi so sánh với
các trường hợp khác.
B) Bởi nếu không thì GINI tổng của chúng ta sẽ vượt quá giá trị tối đa có thể.
C) Bởi để phân biệt sự khác nhau giữa mỗi nhánh
D) Bởi để đảm bảo sự đóng góp cho mỗi nhánh của node chính.
- Đáp Án: D.
Câu 8. Tiếp tục quan sát đoạn code dưới đây:
1 # Paragraph A
2 def gini_split_a ( attribute_name ) :
3 attribute_values = df1 [ attribute_name ]. value_counts ()
4 gini_A = 0
5 for key in attribute_values . keys () :
6 df_k = df1 [ class_name ][ df1 [ attribute_name ] == key ].
value_counts ()
7 n_k = attribute_values [ key ]
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
B) Điều này sẽ khiến thuật toán được sinh ra có tỉ lệ overfitting rất cao.
C) Tốn nhiều thời gian chia cây ở các tập dữ liệu lớn.
D) Chúng ta không thể đạt được trường hợp có GINI bằng 0.
- Đáp Án: B.
Câu 14. Pruning là gì?
A. Kỹ thuật tăng kích thước của cây quyết định để cải thiện độ chính xác.
B. Kỹ thuật chọn lựa các thuộc tính tốt nhất để xây dựng cây quyết định.
C. Kỹ thuật cắt tỉa các nhánh của cây quyết định để giảm thiểu overfitting.
D. Tất cả đáp án trên.
- Đáp Án: C.
Câu 15. Đâu là lời giải thích xác đáng cho 2 khái niệm Bias và Variance ?
A. Bias là thông số đánh giá độ lỗi trong quá trình training, Variance là thông
số đánh giá độ chênh lệch giữa lỗi trong quá trình training và testing.
B. Bias là thông số đánh giá độ lỗi trong quá trình testing, Variance là thông số
đánh giá độ chênh lệch giữa lỗi trong quá trình training và testing.
C. Variance là thông số đánh giá độ lỗi trong quá trình training, Bias là thông
số đánh giá độ chênh lệch giữa lỗi trong quá trình training và testing.
D. Variance là thông số đánh giá độ lỗi trong quá trình testing, Bias là thông số
đánh giá độ chênh lệch giữa lỗi trong quá trình training và testing.
- Đáp Án: A và B.
Câu 17. Ba người cùng bắn vào một bia. Xác suất để người thứ nhất, thứ hai, thứ ba
bắn trúng đích lần lượt là 0,8; 0,6; 0,5. Xác suất để có đúng 2 người bắn trúng
đích là ?
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn
AI Quizzes (AIO) Ngày 1 tháng 9 năm 2024
A. 0.24
B. 0.96
C. 0.46
D. 0.92
- Đáp Án: C. Gọi ba người cùng bắn vào 1 bia với xác suất 0,8; 0,6; 0,5 lần
lượt là A, B, C.
+ TH1: A, B bắn trúng, C không bắn trúng nên xác suất P1 = PA * PB *
(1 - PC ) = 0.24
+ TH2: A, C bắn trúng, B không bắn trúng nên xác suất P2 = PA * (1 - PB )
* PC = 0.16
+ TH3: C, B bắn trúng, A không bắn trúng nên xác suất P3 = (1 - PA ) *
PB * PC = 0.06
Vậy xác suất cần tính là tổng xác xuất 3 TH trên: 0.46
Câu 18. Một lô hàng có 100 sản phẩm, biết rằng trong đó có 8 sản phẩm hỏng. Người
kiểm định lấy ra ngẫu nhiên từ đó 5 sản phẩm. Tính xác suất của biến cố A:
“Người đó lấy được đúng 2 sản phẩm hỏng” ?
A. 0.046
B. 0.084
C. 0.146
D. 0.208
5
- Đáp Án: A. Số phần tử của không gian mẫu: ω = C100 . Trong 100 sản phẩm
đó có 8 sản phẩm hỏng và 92 sản phẩm không hỏng nên số phần tử của biến
3
cố A là: n(A) C82 * C92 . Vậy xác suất như đề bài sẽ là n(A)
ω
= 0.046
Câu 19. Một hộp đựng 10 viên bi trong đó có 4 viên bi đỏ,3 viên bi xanh,2 viên bi vàng,1
viên bi trắng. Lấy ngẫu nhiên 2 bi tính xác suất biến cố : A: “2 viên bi cùng
màu” ?
A. 1/9
B. 2/9
C. 1/3
D. 4/9
2
- Đáp Án: A. Số phần tử của không gian mẫu: ω = C10 . Gọi các biến cố: D:
“lấy được 2 viên đỏ” ; X: “lấy được 2 viên xanh” ; V: “lấy được 2 viên vàng”.
Ta có D, X, V là các biến cố đôi một xung khắc và C = D ∪ X ∪ V. Vậy P(C)
C2 C2 C2
= P(D) + P(X) + P(V) = C 24 + C 23 + C 22 = 29
10 10 10
- Hết -
aivietnam.edu.vn www.facebook.com/aivietnam.edu.vn