BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài K-Nearest Neighbors (K-NN) classifier

20 22 0
BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài K-Nearest Neighbors (K-NN) classifier

Đ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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN □&□ BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài: K-Nearest Neighbors (K-NN) classifier Giảng Viên Hướng Dẫn: TS Nguyễn Vinh Tiệp Sinh viên thực hiện: STT Họ tên Huỳnh Phạm Việt Pháp Hoàng Anh Tú Nguyễn Lộc Linh MSSV 19522571 19522449 19521754 MỤC LỤC MỤC LỤC Giới thiệu chung Nội dung Giới thiệu KNN Classifier Cách thức hoạt động KNN Khi nên dùng KNN Classifier Hàm KNN Classifier thư viện sklearn 4.1 Giới thiệu hàm KNN Classifier 4.2 Các tham số hàm KNN classifier 4.3 Tuning siêu tham số tham số KNN classifier Thử nghiệm 5.1 Đặt vấn đề 5.2 Mô tả liệu Bộ sở liệu dự đoán loại thuốc cho bệnh nhân ( Drug Classification) 5.3 Áp dụng hàm KNN classifier vào toán 5.4 Đánh giá kết Ưu điểm nhược điểm Ưu điểm 3 7 8 8 9 9 Kết luận 10 Tài liệu tham khảo 11 I Giới thiệu chung Trong Machine Learning có thuật tốn gọi máy lười học hay dân gian gọi “nước đến chân nhảy” Bởi lẻ ý tưởng thuật tốn khơng học điều từ tập liệu học, tính tốn thực cần dự đốn nhãn liệu Lớp (nhãn) đối tượng liệu dự đốn từ lớp (nhãn) k hàng xóm gần Vì có tính chất nên thuật toán gọi K-Nearest Neighbors (KNN) K-nearest neighbor thuật toán supervisedlearning đơn giản (mà hiệu vài trường hợp) Machine Learning Được xếp vào loại lazy learning, K-nearest neighbor áp dụng vào hai loại toán Supervised learning Classification Regression KNN cịn gọi thuật tốn Instance-based hay Memory-based learning Trong phần nội dung, nhóm trình bày kiến thức Knearest neighbor áp dụng vào toán Classification II Nội dung Giới thiệu KNN Classifier KNN viết tắt K-Nearest Neighbors, thuật tốn supervised learning Thuật tốn sử dụng để giải toán phân lớp lẫn toán hồi quy Ở báo cáo thuật toán chủ yếu sử dụng cho toán phân lớp, gọi K3 Nearest Neighbors Classifier Đơn giản thuật toán lấy liệu từ input, so sánh với điểm liệu có nhãn gần dự đoán nhãn cho điểm liệu input K gì? K biểu thị số láng giềng gần xung quanh điểm kiểm tra điểm Nếu k = 3, nhãn ba lớp gần với điểm kiểm tra nhãn chung gán cho điểm Cách thức hoạt động KNN Giả sử ta cần đốn xem vật hình chó hay mèo Ta dựa vào đặc điểm ngoại hình hai vật để đưa kết luận Mèo Chó Móng nhọn, có măng cụt Móng cùn Kích cỡ tai nhỏ Tai lớn Mũi mà mõm nhỏ Mũi mõm dài Kích thước thể nhỏ Kích thước thể lớn Giờ nhìn vào ảnh đốn thử xem chó hay mèo Ta thấy đặc điểm giống chó nên chó, hay nói cách khác giống chó khác nên coi chó Như ta đốn chó // Khơng Nó Chemes Cách hoạt động KNN Classifier tương tự Nó tìm điểm liệu tương tự điểm liệu input phân loại điểm điểm liệu K siêu tham số để thuật tốn tìm k điểm liệu gần với điểm dự đoán.Giả sử K = tìm điểm liệu gần với điểm cần dự đốn nhất, sau dựa điểm thuộc phân lớp nhiều điểm cần dự đốn thuộc phân lớp Khi nên dùng KNN Classifier Một vài tiêu chí để có thể sử dụng KNN tốt - Vì KNN Classifier thuật tốn supervised learning nên data gán nhãn áp dụng KNN - Không phải ngẫu nhiên mà KNN cịn gọi “lazy learner”, KNN khơng thực học từ liệu, mà dự đoán liệu nhìn vào liệu có, tìm phần tử gần để dự đốn liệu Nó cần duyệt qua hết liệu lần dự đoán liệu Do với data nhỏ KNN chạy nhanh - Ngoài ra, data cần phải ko có nhiễu nhiễu Vì thuật tốn dự đốn điểm liệu gần nên có nhiễu gây vấn đề lớn Mình khơng muốn tốn dự đốn chó hay mèo mà thuật tốn lại dự đốn khỉ không hợp lý chút Ứng dụng: KNN mơ hình đơn giản trực quan có hiệu cao khơng tham số; mơ hình khơng đưa giả định việc phân phối liệu Hơn nữa, sử dụng trực tiếp để phân loại đa lớp Thuật toán KNN có nhiều ứng dụng ngành đầu tư, bao gồm dự đoán phá sản, dự đoán giá cổ phiếu, phân bổ xếp hạng tín dụng trái phiếu doanh nghiệp, tạo số vốn trái phiếu tùy chỉnh Hàm KNN Classifier thư viện sklearn 4.1 Giới thiệu hàm KNN Classifier Thư viện scikit-learn xây dựng hai mơ hình phân loại dựa nearest neighbors KNeighborsClassifier RadiusNeighborsClassifier, nhiên nội dung đề cập tới KNeighborsClassifier KNeighborsClassifier phương pháp phân loại thông dụng Quá trình học KNeighborsClassifier dựa k neighbors gần điểm truy vấn (query point), k giá trị số nguyên cung cấp người dùng Giá trị tối ưu k thường phụ thuộc nhiều vào liệu: k lớn bị ảnh hưởng nhiễu, làm ranh giới lớp rõ ràng 4.2 Các tham số hàm KNN classifier - n_neighbors: số K KNN, tham số thuật tốn KNN Mặc định có giá trị weights: cách phân bố trọng số cho phần tử xung quanh ● ‘uniform’ : Tất các phần tử có trọng số ● ‘distance’ : Trọng số dựa theo nghịch đảo khoảng cách Những phần tử gần với phần tử dự đốn có ảnh hưởng lớn ngược lại - ● [callable] : Là hàm tự chọn có đầu vào dãy khoảng cách đầu dãy độ lớn chứa trọng số tương ứng algorithm: thuật tốn để tìm phần tử lân cận Gồm {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’} mặc định ‘auto’ ● ball_tree: sử dụng thuật toán ball tree ● kd_tree: dùng thuật tốn kd tree ● brute: tìm cách vét cạn ● auto: tự động chọn thuật toán phù hợp dựa vào giá trị data 4.3 Tuning hyperparameter (Điều chỉnh siêu tham số) https://colab.research.google.com/drive/1lc4wG38PKxmTWgJThl8YQzNUey0nEcF2? usp=sharing Giá trị đầu mơ hình bị ảnh hưởng nhiều siêu tham số truyền vào lúc khởi tạo mơ hình, để mơ hình có hiệu cao cần phải tiến hành điều chỉnh (tuning) để tìm siêu tham số phù hợp với liệu mơ hình 10 Cách đơn giản để điều chỉnh siêu tham số tự điều chỉnh tay, nhiên cách khơng hiệu ta có khơng gian siêu tham số lớn Ngoài cách tự điều chỉnh cịn có phương pháp để điều chỉnh siêu tham số thường sử dụng nhiều nhất, Randomized Search (Tìm kiếm ngẫu nhiên) Grid Search (Tìm kiếm kiểu mạng lưới) May mắn hai phương pháp tìm kiếm xây dựng thư viện scikitlearn có tên GridSearchCV RandomizedSearchCV Grid Search tìm kiếm cách vét cạn tổ hợp siêu tham số xảy dựa tham số giá trị tham số định Ưu điểm Grid Search chắn tìm tổ hợp siêu tham số tốt giá trị định, nhiên khơng gian tham số lớn thời gian tìm kiếm lâu Grid Search phải duyệt giá trị Trái ngược với Grid Search, Randomized Search lại tìm kiếm cách lựa chọn ngẫu nhiên tham số Vì khơng phải vét cạn giá trị tham số mà chọn ngẫu nhiên nên ưu điểm 11 Randomized Search tốc độ, ngược lại nhược điểm việc khơng đảm bảo tham số đầu tốt Một điểm đặc biệt hai hàm GridSearchCV RandomizedSearchCV scikit-learn chúng có “CV” cuối tên “CV” viết tắt cho Cross Validation, hai hàm tích hợp sẵn Cross Validation vào trình đánh giá tham số, giúp cho kết đầu tốt Thử nghiệm 5.1 Đặt vấn đề 12 Giả sử cho toán phân loại rượu dựa vào thành phần Làm để biết loại rượu có nồng độ cồn 14.23°, tỉ lệ tro 2.43%, độ kiềm tro 15.6, lượng magiê 127mg, v.v thuộc loại rượu nào? Có nhiều cách để giải tốn này, ta dùng KNN Classifier để đốn loại rượu 5.2 Mơ tả liệu Bộ sở liệu Rượu (Wine Database) Những liệu kết phân tích hóa học rượu vang trồng vùng Ý có nguồn gốc từ ba giống trồng khác Sau phân tích xác định giá trị 13 thành phần hóa học tìm thấy loại rượu Bộ liệu bao gồm thành phần hóa học sau: 1) Alcohol 2) Malic acid 3) Ash 4) Alkalinity of ash 5) Magnesium 6) Total phenols 7) Flavanoids 8) Nonflavonoid phenols 9) Proanthocyanins 10) Color intensity 11) Hue 12) OD280/OD315 of diluted wines (phương pháp pha loãng rượu) 13) Proline Tất thành phần có giá trị liên tục (continuous) 13 Bộ liệu gồm 178 dòng, dòng chai rượu vang phân tích thành phần thuộc loại rượu vang chọn trước Mục tiêu toán dự đoán loại rượu thuộc loại rượu vang Số lượng loại rượu vang liệu 5.3 Áp dụng hàm KNN classifier vào toán Vì tốn tốn phân lớp nên áp dụng bước phân lớp liệu sau: B1: Thu thập liệu Dữ liệu rượu lấy từ trang UCI Machine Learning Repository: Wine Data Set, lấy từ datasets sklearn với load_wine B2: Phân tích liệu Nhóm mơ tả liệu phần 14 B3: Chọn mơ hình Vì báo cáo nói mơ hình KNN nên áp dụng mơ hình KNN vào giải tốn Ngồi áp dụng thêm số mơ hình phân lớp khác để so sánh kết với KNN, bao gồm Random Forest, SVM, Logistic Regression, Gaussian, XgBoost B4: Xử lý liệu Vì thuật tốn KNN phụ thuộc vào feature scaling nên nhóm áp dụng standardscaler thư viện sklearn để tiêu chuẩn hoá liệu B5: Huấn luyện mơ hình KNN thuật tốn lười thực huấn luyện mơ hình dự đốn liệu Nhóm gom bước huấn luyện, dự đốn đánh giá vào chung với Sử dụng hàm scross_val_score sklearn giúp nhóm đạt mục tiêu cần nhìn vào phần đánh giá độ xác mơ hình để đưa nhận xét Đồng thời kết hợp với KFold với k = sklearn để có độ xác khách quan Kết cho độ xác vào khoảng 0.9492 B6: Điều chỉnh tham số Sau chạy mơ hình với tham số mặc định Nhóm nhận thấy thử thay đổi tham số để độ xác tăng thêm Vì nhóm dùng GridSearchCV RandomizedSearchCV scikit-learn để tự động tìm tham số tối ưu với data Bộ tham số dùng để chỉnh sửa n_neighbors, weights, algorithm, leaf_size p với giá trị sau: 15 Sau tuning siêu tham số với RandomizedSearchCV độ xác tăng lên khoảng 0.9663, chứng minh mơ hình cịn thiện Nhóm dùng đến GridSearchCV để tìm tham số tốt Độ xác tăng lên 0.9719 với tham số sau: 5.4 Đánh giá kết Ưu điểm nhược điểm Ưu điểm ● Dễ sử dụng cài đặt ● Dự đoán kết liệu Nhược điểm ● Nhạy cảm với liệu nhiễu 16 dễ dàng ● Độ phức tạp tính tốn nhỏ, thời gian chạy ngắn ● Không tốt sử dụng với tập liệu lớn, nhiều chiều ● Khá phụ thuộc vào feature scaling 6.1 Ưu điểm ●Dễ sử dụng cài đặt: Chỉ có hai tham số yêu cầu sử dụng thuật toán KNN giá trị k hàm khoảng cách đa dạng sử dụng linh hoạt số liệu khoảng cách phù hợp ●Dự đoán kết liệu dễ dàng: nhờ vào phương pháp tiếp cận dựa nhớ, cho phép thích ứng nhanh với liệu ●Độ phức tạp tính tốn nhỏ, thời gian chạy ngắn: thuật toán thuộc loại lazy learning, thuật toán khơng học điều từ liệu training tính tốn thực cần dự đốn kết liệu Chính điều làm thời gian học thuật toán KNN ngắn so với thuật toán khác “siêng năng” 6.2 Nhược điểm ● Nhạy cảm với liệu nhiễu: KNN nhiễu dễ đưa kết với độ xác thấp k nhỏ ● Không tốt sử dụng với tập liệu lớn, nhiều chiều: Cần thời gian lưu training set, liệu training test tăng lên nhiều cần nhiều thời gian tính tốn Như nói, KNN thuật tốn mà tính tốn nằm khâu test Trong việc tính khoảng cách tới điểm liệu training set tốn nhiều thời gian, đặc biệt với sở liệu có số chiều lớn có nhiều điểm liệu Với K lớn độ phức tạp tăng lên Ngoài ra, việc lưu toàn liệu nhớ ảnh hưởng tới hiệu KNN ● Khá phụ thuộc vào feature scaling: Việc tiêu chuẩn hoá liệu trước dùng KNN Classifier giúp tăng độ xác dự đốn lên nhiều 17 III Kết luận Trí tuệ nhân tạo (AI) giúp máy móc học hỏi kinh nghiệm, điều chỉnh theo đầu vào thực tác vụ giống người Mọi người lĩnh vực khác cố gắng áp dụng AI để làm cho nhiệm vụ họ dễ dàng nhiều Bài báo cáo cung cấp thơng tin thuật tốn máy học KNN classifier khái niệm, thành phần, ưu khuyết điểm xây dựng ví dụ tìm hiểu thuật toán cách trực quan giúp dễ dàng nắm bắt thơng tin quan trọng thuật tốn K-Nearest Neighbors 18 IV Tài liệu tham khảo [1] KNN Algorithm In Machine Learning | KNN Algorithm Using Python | K Nearest Neighbor | Simplilearn - YouTube [2] Analytics Vidhya: KNN - The Distance Based Machine Learning Algorithm (analyticsvidhya.com) [3] sklearn.neighbors.KNeighborsClassifier — scikit-learn 1.0.1 documentation [4] UCI Machine Learning Repository: Wine Data Set [5] 19 20 ... chỉnh Hàm KNN Classifier thư viện sklearn 4.1 Giới thiệu hàm KNN Classifier Thư viện scikit-learn xây dựng hai mơ hình phân loại dựa nearest neighbors KNeighborsClassifier RadiusNeighborsClassifier,... RadiusNeighborsClassifier, nhiên nội dung đề cập tới KNeighborsClassifier KNeighborsClassifier phương pháp phân loại thông dụng Quá trình học KNeighborsClassifier dựa k neighbors gần điểm truy vấn (query point),... dung Giới thiệu KNN Classifier Cách thức hoạt động KNN Khi nên dùng KNN Classifier Hàm KNN Classifier thư viện sklearn 4.1 Giới thiệu hàm KNN Classifier 4.2 Các tham số hàm KNN classifier 4.3 Tuning

Ngày đăng: 15/01/2022, 14:57

Hình ảnh liên quan

Giả sử ta cần đoán xem con vật trong hình là con chó hay con mèo. Ta có thể dựa vào các đặc điểm ngoại hình của hai con vật này để  đưa ra kết luận. - BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài K-Nearest Neighbors (K-NN) classifier

i.

ả sử ta cần đoán xem con vật trong hình là con chó hay con mèo. Ta có thể dựa vào các đặc điểm ngoại hình của hai con vật này để đưa ra kết luận Xem tại trang 5 của tài liệu.
2. Cách thức hoạt động của KNN. - BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài K-Nearest Neighbors (K-NN) classifier

2..

Cách thức hoạt động của KNN Xem tại trang 5 của tài liệu.
Giá trị đầu ra của mô hình sẽ bị ảnh hưởng nhiều bởi các siêu tham số chúng ta truyền vào lúc khởi tạo mô hình, vì vậy để mô hình có hiệu quả cao chúng ta cần phải tiến hành điều chỉnh  (tuning) để tìm ra các siêu tham số phù hợp với dữ liệu và mô hình. - BÁO CÁO ĐỒ ÁN PYTHON CHO MÁY HỌC Đề tài K-Nearest Neighbors (K-NN) classifier

i.

á trị đầu ra của mô hình sẽ bị ảnh hưởng nhiều bởi các siêu tham số chúng ta truyền vào lúc khởi tạo mô hình, vì vậy để mô hình có hiệu quả cao chúng ta cần phải tiến hành điều chỉnh (tuning) để tìm ra các siêu tham số phù hợp với dữ liệu và mô hình Xem tại trang 10 của tài liệu.

Mục lục

  • 6. Ưu điểm và nhược điểm

    • Ưu điểm

    • IV. Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan