1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm Hiểu Thuật Toán Knn Và Ứng Dụng Đánh Giá Thể Trạng.docx

23 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 1,06 MB

Nội dung

Giảng viên Lớp Nhóm Thành viên BÁO CÁO BÀI TẬP LỚN HỌC PHẦN TRÍ TUỆ NHÂN TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Hà Nội,2023 Mục lục Lời nói đầu 3 Chương 1 Một số thuật toán Mac[.]

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: TRÍ TUỆ NHÂN TẠO Giảng viên: Lớp: Nhóm: Thành viên: ĐỀ TÀI: Tìm hiểu thuật tốn KNN ứng dụng đánh giá thể trạng Hà Nội,2023 Mục lục Lời nói đầu Chương 1: Một số thuật toán Machine Learning 1.1 Thuật toán Cây định (Decision Trees) 1.2 Phân loại Bayes (Naive Bayes) .5 1.3 Thuật toán SVM (Support Vector Machine) .7 1.4 Thuật toán KNN (K-near-neighbors) Chương 2: Ứng dụng KNN vào toán đánh giá thể trạng 13 2.1 Phân tích đề tài 13 2.2 Thuật toán áp dụng 13 2.3 Bộ liệu 13 2.4 Cài đặt thuật toán 14 2.5 Kết 18 Kết luận 20 Kết đạt 20 Hạn chế 20 Tài liệu tham khảo .21 Danh mục hình ản Hình 1.Cơng thức Bayes Hình 2.Ví dụ thuật tốn SVM Hình 3.Ví dụ thuật toán SVM Hình 4.Ví dụ thuật tốn KNN 12 Hình 5.Ví dụ thuật tốn KNN 12 Hình 6.Mơ tả toán 17 Hình 7.Cài đặt thư viện 17 Hình 8.Tạo hàm đọc liệu từ file scv 17 Hình 9.Xây dựng hàm tính khoảng cách điểm 18 Hình 10.Xây dựng hàm tìm k điểm liệu gần 18 Hình 11.Xây dựng hàm tìm trạng thái thể trạng xuất 19 Hình 12.Duyệt qua liệu test 19 Hình 13.Hàm nhập liệu vào từ bàn phím 20 Hình 14.Hàm đọc liệu từ file scv 20 Hình 15.Đưa dự đốn liệu vừa nhập 20 Hình 16.Bảng so sánh liệu test kết 21 Hình 17.Đưa độ xác .21 Hình 18.Kết chạy chương trình 21 Lời nói đầu Trí tuệ nhân tạo tiếng anh Artificial intelligence – viết tắt AI Chúng ta hiểu ngành khoa học máy tính Con người lập trình nên với mục đích để giúp máy tính thực hành vi thơng minh xử lý yêu cầu giống người Những năm gần đây, AI lên chứng cách mạng công nghiệp lần thứ tư Theo đà phát triển cơng nghệ, ứng dụng trí tuệ nhân tạo xu hướng công nghệ tương lai mà hãng cơng nghệ tồn giới đua sáng tạo, tảng cốt lõi cuốc cách mạng công nghệ 4.0 Hầu hết nghành công nghiệp làm việc với hàm lượng lớn liệu nhận tầm quan trọng công nghệ ML Những nhìn sáng suốt từ nguồn liệu – chủ yếu dạng thời gian thực – giúp tổ chức vận hành hiệu tạo lợi cạnh tranh so với đối thủ Các ứng dụng ML đã quen thuộc với người: xe tự hành Google Tesla, hệ thống tự tag khuôn mặt Facebook, hệ thống gợi ý sản phẩm Amazon, hệ thống gợi ý phim Netflix…, vài ứng dụng trí tuệ nhân tạo cụ thể ML Nhằm vận dụng kiến thức đã học để áp dụng vào thực tế, tập lớn chúng em đã nghiên cứu ứng dụng trí tuệ nhân tạo việc đánh giá thể trạng thuật tốn được sử dụng thuật tốn KNN- (K-Nearest Neighbors) được viết ngôn ngữ Python Với hướng dẫn, động viên tận tình Lê Thị Thủy, chúng em đã hiểu được cách thức hoạt động thuật tốn hồn thành báo cáo Vì lượng kiến thức trình độ chun mơn có hạn nên tài liệu không tránh khỏi sai sót, nhóm sinh viên chúng em mong nhận được góp ý từ bạn đọc để đề tài chúng em được hồn thiện Nhóm chúng em xin chân thành cảm ơn Chương 1: Một số thuật toán Machine Learning  Cây định (Decision Trees)  Phân loại bayes  SVM (Support Vector Machine)  KNN (K-near-neighbors) 1.1 Thuật toán Cây định (Decision Trees) Đây thuật toán phổ biến được sử dụng Cây định thuật tốn học có giám sát, dùng để phân loại vấn đề Thuật tốn thực cho biến phân loại biến liên tục Trong thuật toán này, ta chia liệu thành nhiều lớp dựa phân loại theo thuộc tính/biến quan trọng Đứng góc nhìn thực tế, định danh sách tối thiểu câu hỏi dạng yes/no mà người ta phải hỏi, để đánh giá xác suất đưa định đắn Dưới mơ hình ví dụ định: Ví dụ ví dụ trên: Cây định liệu Quang cảnh Nhìn từ định trên, ta rút được kết luận: Nếu trời nắng & độ ẩm trung bình người chơi định “Yes” Tuy nhiên, ta cần ý tới vấn đề Overfitting thuật toán Để giảm tượng này, ta thường dùng phương pháp cắt tỉa Với Overfitting tượng mơ hình ghi nhớ q tốt liệu huấn luyện phụ thuộc vào nó, việc khiến cho mơ hình khơng thể tổng qt hóa quy luật để hoạt động với liệu chưa được chứng kiến  Ưu điểm: - Mơ hình sinh quy tắc dễ hiểu cho người đọc, tạo luật với nhánh luật - Dữ liệu đầu vào là liệu missing, khơng cần chuẩn hóa tạo biến giả - Có thể làm việc với liệu số liệu phân loại - Có thể xác thực mơ hình cách sử dụng kiểm tra thống kê - Có khả việc với liệu lớn  Nhược điểm: - Mơ hình định phụ thuộc lớn vào liệu Thậm chí, với thay đổi nhỏ liệu, cấu trúc mơ hình định thay đổi hoàn toàn - Cây định hay gặp vấn đề overfitting 1.2 Phân loại Bayes (Naive Bayes) Thuật tốn phân loại Naive Bayes nhóm phân loại xác suất đơn giản dựa định lý Bayes giả định việc độc lập thuộc tính Ngay khi, thuộc tính có tương quan với phương pháp xem thuộc tính độc lập với Định lý Bayes cho phép tính xác suất xảy kiện ngẫu nhiên A biết kiện liên quan B đã xảy Xác suất được ký hiệu P(A|B), đọc “xác suất A có B” Đại lượng được gọi xác suất có điều kiện hay xác suất hậu nghiệm được rút từ giá trị được cho B phụ thuộc vào giá trị Hình 1.Cơng thức Bayes Theo định lí Bayes, P(A|B) phụ thuộc vào yếu tố: - Xác suất xảy A riêng nó, khơng quan tâm đến B Kí hiệu P(A) - Xác suất xảy B riêng nó, khơng quan tâm đến A Kí hiệu P(B) - Xác suất xảy B biết A xảy Kí hiệu P(B|A) Đại lượng gọi khả xảy B biết A đã xảy Thuật toán được áp dụng số toán như:  Đánh dấu email spam hay không  Phân loại viết tin tức thuộc lĩnh vực cơng nghệ, trị hay thể thao  Kiểm tra đoạn văn mang cảm xúc tích cực hay tiêu cực  Sử dụng cho phần mềm nhận diện khuôn mặt  Ưu điểm: - Giả định độc lập: hoạt động tốt cho nhiều toán/miền liệu ứng dụng.Đơn giản đủ tốt để giải nhiều toán phân lớp văn bản, lọc spam,… - Cho phép kết hợp tri thức tiền nghiệm (prior knowledge) liệu quan sát được (observed data) Tốt có chênh lệch số lượng lớp phân loại - Huấn luyện mơ hình (ước lượng tham số) dễ nhanh  Nhược điểm: - Giả định độc lập (ưu điểm nhược điểm): hầu hết trường hợp thực tế có thuộc tính đối tượng thường phụ thuộc lẫn - Vấn đề zero (đã nêu cách giải phía trên) - Mơ hình khơng được huấn luyện phương pháp tối ưu mạnh chặt chẽ Tham số mơ hình ước lượng xác suất điều kiện đơn lẻ Khơng tính đến tương tác ước lượng 1.3 Thuật toán SVM (Support Vector Machine) SVM phương pháp phân loại liệu thơ bạn được biểu diễn khơng gian n chiều (n-số thuộc tính) Thơng qua khơng biểu diễn diễn dự liệu đó, ta thực phân loại liệu Ý tưởng SVM: Tìm siêu phẳng (hyper lane) phân chia "tốt nhất" tập liệu Siêu phẳng chia không gian thành miền khác miền chứa loại liệu Ví dụ: cho tập điểm thuộc loại môi trường N chiều, SVM cố gắng tìm N-1 mặt phẳng để phân tách điểm thành nhóm Hình 2.Ví dụ thuật toán SVM Siêu phẳng được biểu diễn hàm số = b (W X vector tích vơ) Hay W^T=b (W^T ma trận chuyễn vị) Phân chia tốt khoảng cách từ đối tượng gần tới siêu phẳng cực đại (còn gọi khoảng cách lề cực đại) Hình 3.Ví dụ thuật tốn SVM Mơ hình SVM lề cứng: Mơ hình SVM lề mềm: 10 SVM thực giải nhiều dạng toán hiển thị quảng cáo, phát giới tính dựa hình ảnh, phân loại hình ảnh có quy mơ lớn  Ưu điểm: - Xử lý không gian số chiều cao: SVM cơng cụ tính tốn hiệu khơng gian chiều cao, đặc biệt áp dụng cho toán phân loại văn phân tích quan điểm nơi chiều lớn - Tiết kiệm nhớ: Do có tập hợp điểm được sử dụng trình huấn luyện định thực tế cho điểm liệu nên có điểm cần thiết được lưu trữ nhớ định - Tính linh hoạt - phân lớp thường phi tuyến tính Khả áp dụng Kernel cho phép linh động phương pháp tuyến tính phi tuyến tính từ khiến cho hiệu suất phân loại lớn  Nhược điểm: - Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) tập liệu lớn nhiều so với số lượng liệu (n) SVM cho kết tồi - Chưa thể rõ tính xác suất: Việc phân lớp SVM việc cố gắng tách đối tượng vào hai lớp được phân tách siêu phẳng SVM Điều chưa giải thích được xác suất xuất thành viên nhóm 1.4 Thuật toán KNN (K-near-neighbors) K-nearest neighbors thuật toán học máy có giám sát, đơn giản dễ triển khai Thường được dùng toán phân loại hồi quy Bài tốn đặt ra: Giả sử bạn có điểm môn học bạn thuộc loại (Giỏi, khá, trung bình, yếu) khơng biết quy tắc để phân loại Có cách giải bạn phải khảo sát người xung quanh Để biết điểm thuộc loại bạn phải hỏi người có điểm gần số điểm 11 Giả sử lớp có 50 người, bạn khảo sát người gần điểm được liệu sau: Điểm bạn: Điểm bạn bạn:  7.1=>Khá  7.2=>Khá  6.7=>Khá  6.6=>Khá  6.4=>Trung bình Qua kết bạn đốn được thuộc loại Với cách phân biệt loại liệu chiều Nếu ta khảo sát nhiều, rộng dự đốn đưa xác Ý tưởng KNN: Thuật tốn KNN cho liệu tương quan tồn gần trịn khơng gian, từ cơng việc tìm k điểm gần với liệu cần kiểm tra Việc tìm khoảng cách hai điểm có nhiều cơng thức sử dụng tùy trường hợp mà ta lựa chọn cho phù hợp Đây cách để tính khoảng cách điểm liệu x, y có k thuộc tính: Hình 4.Ví dụ thuật tốn KNN 12 Ví dụ có liệu tuổi, khoản vay khả vỡ nợ hình sau: Hình 5.Ví dụ thuật toán KNN Dữ liệu cần phân loại {age: 48, loan:142000} Đây liệu chiều cần dự đoán người thuộc nguy vỡ nợ hay không Chúng ta sé dùng cách phổ biến để tính khoảng cách Euclidean Ví dụ hàng khoảng cách được tính: Thực tương tự, ta tính được khoảng cách cột Distance, từ chọn k = khoảng cách nhỏ (gần với liệu nhất) Với khoảng cách nhận được label (Yes, No, Yes) Trong label Yes xuất nhiều nên đưa dự đốn người có khả vỡ nợ  Ưu điểm: - Là thuật toán đơn giản để hiểu giải thích - Rất hữu ích cho liệu phi tuyến khơng có giả định liệu thuật toán - Là thuật tốn linh hoạt sử dụng để phân loại hồi quy 13 - Có độ xác tương đối cao có nhiều mơ hình học có giám sát tốt KNN  Nhược điểm: - Về mặt tính tốn, thuật tốn tốn lưu trữ tất liệu huấn luyện - Yêu cầu nhớ lưu trữ cao so với thuật tốn học có giám sát khác - Dự đốn chậm trường hợp N lớn - Rất nhạy cảm với quy mơ liệu tính khơng liên quan  Các ứng dụng KNN: - Hệ thống ngân hàng: KNN được sử dụng hệ thống ngân hàng để dự đoán cá nhân có phù hợp để phê duyệt khoản vay khơng? Cá nhân có đặc điểm giống với cá nhân mặc định khơng - Tính tốn xếp hạng tín dụng: Các thuật tốn KNN được sử dụng để xếp hạng tín dụng cá nhân cách so sánh với người có đặc điểm tương tự - Chính trị: Với trợ giúp thuật tốn KNN, phân loại cử tri tiềm thành nhiều lớp khác “Sẽ bỏ phiếu”, “Sẽ không bỏ phiếu”, “Sẽ bỏ phiếu cho Đảng ‘Đại hội’,” Sẽ bỏ phiếu cho Đảng ‘BJP’ - Các lĩnh vực khác mà thuật tốn KNN được sử dụng nhận dạng giọng nói, phát chữ viết tay, nhận dạng hình ảnh nhận dạng video 14 Chương 2: Ứng dụng KNN vào toán đánh giá thể trạng 2.1 Phân tích đề tài Ngày , nhận thức sức khỏe thể trạng thể ngày được đặc biệt quan tâm.Việc trì cân nặng , chiều cao thể trạng mức lí tưởng yếu tố quan trọng để trì lối sống lành mạng Hiểu rõ tầm quan trọng việc , nhóm chúng em đã định tạo toán “Đánh giá thể trạng thể “ để giúp người dung dễ dàng đo lương kiểm sốt thể trạng cách tốt nhất.Bằng cách cung cấp số BMI dựa cân nặng chiều cao , mong muốn đưa đánh giá tình trạng thể người dùng 2.2 Thuật tốn áp dụng Bước 1: Tính khoảng cách từ X tới tất đối tượng liệu huấn luyện Bước 2: Chọn k đối tượng gần với X (khoảng cách tới X nhỏ nhất) Bước 3: Phân lớp X vào lớp xuất phổ biến k đối tượng 2.3 Bộ liệu - Dữ liệu thu thập được gồm 50 ghi (tương đương với liệu 50 người được khảo sát ) - cột lần lượt thuộc tính: Cân nặng , Chiều cao (khơng tính cột index) - Index 10 11 12 13 14 15 16 17 Cột cuối cùng: Physical Condition – Tình trạng thể chất Weight 43.2 60 52.5 80.5 46.8 87 78.9 47.6 58.5 50.1 88.7 65.5 72 44.2 68.7 43.2 70.9 Height 1.6 1.7 1.75 1.6 1.62 1.7 1.75 1.61 1.65 1.66 1.65 1.75 1.8 1.55 1.72 1.6 1.78 15 Physical Condition Underweight Normal Underweight Fat Underweight Fat Overweight Underweight Normal Underweight Fat Normal Normal Underweight Normal Underweight Normal 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 91.4 67.4 75.7 80.5 72.2 85 45.5 71.3 77.6 89.9 82.4 74.6 79.2 49 92.5 51.3 82 48.7 90.5 76 97.6 88.2 61.8 86.9 35.8 89 94.5 40 47.5 84.5 55.2 43.6 64.2 1.71 1.73 1.67 1.8 1.65 1.7 1.58 1.6 1.72 1.68 1.78 1.82 1.69 1.68 1.75 1.73 1.55 1.7 1.72 1.68 1.76 1.67 1.71 1.63 1.55 1.69 1.77 1.7 1.65 1.62 1.8 1.62 1.68 16 Fat Normal Overweight Overweight Overweight Overweight Underweight Overweight Overweight Fat Overweight Normal Overweight Underweight Fat Underweight Fat Underweight Fat Overweight Fat Fat Normal Fat Underweight Fat Fat Underweight Underweight Fat Underweight Underweight Normal 2.4 Cài đặt thuật tốn Hình 6.Mơ tả toán Trong phần này, ta tách 50 ghi thành hai phần, gọi training test test set Thuật tốn dựa vào thơng tin training test để dự đoán thể trạng thể liệu test set Dữ liệu được chuẩn hóa đối chiếu với dự đoán thể trạng thật liệu test set để đánh giá hiệu quả, độ xác KNN Bước 1: Khai báo thư viện cần thiết Hình 7.Cài đặt thư viện Bước 2: Tạo hàm đọc liệu vào từ file csv Hình 8.Tạo hàm đọc liệu từ file scv 17 Dùng module csv để định dạng liệu đọc vào, sau chuyển qua ma trận numpy để dễ dàng xử lí Một số thao tác tiền xử lí gồm: Xóa hàng chứa tiêu đề, xóa cột Index, sau sử dụng phương thức shuffle numpy.random để trộn liệu Lí để sau trộn lấy 30 hàng đầu làm liệu train 20 hàng cuối để làm liệu test Bước 3: Xây dựng hàm tính khoảng cách Hình 9.Xây dựng hàm tính khoảng cách điểm Hàm thực việc tính tốn liệu điểm truyền vào công thức Euclidean Đơn giản duyệt qua tất thuộc tính tương ứng điểm, tính tổng hiệu bình phương thuộc tính, cuối trả bậc tổng Bước 4: Xây dựng hàm tìm k điểm liệu gần Hình 10.Xây dựng hàm tìm k điểm liệu gần Hàm duyệt qua tất giá trị trainSet, tính khoảng cách điểm truyền vào với điểm tập liệu ban đầu Kết vòng lặp list dictionary gồm tên nhãn (đánh giá thể trạng) khoảng cách đến điểm Tiếp theo xếp tăng dần list với giá trị so sánh khoảng cách 18 Vì kết cần biết thể trạng thể nên thêm vòng lặp để tạo list nhãn có thứ tự Cuối trả k điểm liệu list (nhỏ nhất) Bước 5: Xây dựng hàm tìm trạng thái thể trạng xuất nhiều k trạng thái thể trạng tìm được Hình 11.Xây dựng hàm tìm trạng thái thể trạng xuất Hàm duyệt qua nhãn có list labels - tập hợp nhãn để tìm nhãn xuất nhiều Bước 6: Duyệt qua giá trị liệu test để kiểm tra độ xác thuật tốn Hình 12.Duyệt qua liệu test Để đánh giá độ xác thuật tốn KNN, xem có điểm liệu test được dự đoán Lấy số lượng chia cho tổng số lượng tập liệu test độ xác Ta thấy độ xác được phân tích từ liệu testSet đạt ~0.71 tương đương 71% tổng số test 19 Bước 7: Nhập liệu từ bàn phím Hình 13.Hàm nhập liệu vào từ bàn phím Nhập liệu cân nặng , chiều cao vào từ bàn phím, sử dụng thư viện pandas để tạo file csv chứa liệu vừa nhập vào Bước 8: Tạo hàm đọc liệu từ file csv vừa tạo bước Hình 14.Hàm đọc liệu từ file scv Bước 9: Đưa dự đoán liệu vừa nhập Hình 15.Đưa dự đốn liệu vừa nhập 2.5 Kết Lấy ví dụ k = Chương trình tính tốn sinh file predict so sánh labels predicted testSet(20/50): 20

Ngày đăng: 30/08/2023, 02:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w