KNN LÀ GÌ

Trí tuệ nhân tạo (AI) giúp máy móc có thể học hỏi kinh nghiệm, điều chỉnh theo các đầu vào mới và thực hiện các tác vụ giống như con người. Mọi người trên các lĩnh vực khác nhau đang cố gắng áp dụng AI để làm cho nhiệm vụ của họ dễ dàng hơn rất nhiều.

Bạn đang xem: Knn là gì

KNN là gì?

KNN là một trong những thuật toán phân loại sử dụng toàn bộ tập dữ liệu trong giai đoạn đào tạo của nó. Khi dự đoán được yêu cầu cho dữ liệu không nhìn thấy, nó sẽ tìm kiếm trong toàn bộ tập dữ liệu huấn luyện cho "k" hầu hết các trường hợp và dữ liệu với hầu hết các trường hợp tương tự cuối cùng được trả về dưới dạng một dự đoán.

K là gì?

K biểu thị số láng giềng gần nhất xung quanh điểm kiểm tra hoặc điểm mới. Nếu k = 3, nhãn của ba lớp gần nhất với điểm mới sẽ được kiểm tra và nhãn chung nhất được gán cho điểm mới.

Các ứng dụng: Nó được sử dụng trong phát hiện Viết tay, nhận dạng hình ảnh và nhận dạng video. Thuật toán này được thực hiện trong Hệ thống khuyến nghị.
*

Trong âm mưu trên, chúng ta có hai lớp. Lớp A với điểm đỏ và lớp B với điểm xanh. Bây giờ chúng tôi sẽ giới thiệu một điểm mới trong dữ liệu.


*

Trong cốt truyện trên, bạn có thể thấy một điểm mới. Để bắt đầu dự đoán, điều đầu tiên chúng ta cần làm là chọn giá trị của "K". Ví dụ, nếu K = 3, có nghĩa là bạn đang chọn ba điểm có khoảng cách đến điểm mới nhỏ nhất. Chúng ta hãy xem xét giá trị của K = 5.


*

Khi chúng tôi chỉ định K = 5, bạn có thể xem các hàng xóm cho điểm mới. Như chúng ta thấy, chúng ta có lớp A chiếm đa số điểm so với lớp B. Do đó các điểm mới thuộc về lớp A.


*

Cách chọn giá trị của K?

Không có phương pháp chính thức nào để chọn giá trị K. Chúng ta cần tìm hiểu với các giá trị khác nhau bằng cách thử và sai và giả sử rằng dữ liệu huấn luyện là không xác định. Một cách khác để chọn K là thông qua xác nhận chéo.

Nó dự đoán hàng xóm như thế nào?

KNN sử dụng thước đo khoảng cách nhỏ nhất để tìm những người hàng xóm gần nhất của nó. Một phương pháp phổ biến là phương pháp khoảng cách Euclide. Khoảng cách Euclide là căn bậc hai của tổng bình phương khoảng cách giữa hai điểm. Nó còn được gọi là định mức L2.


*

*
Khoảng cách Euclide

Chúng ta cũng có thể sử dụng các phương pháp khác như Khoảng cách Manhattan và Khoảng cách Hamming để tìm khoảng cách nhỏ nhất. Khoảng cách Manhattan là tổng các giá trị tuyệt đối của hiệu số giữa hai điểm. Khoảng cách Hamming được sử dụng cho các biến phân loại. Nó cho chúng ta biết liệu hai biến phân loại có giống nhau hay không.

Tại sao KNN lười biếng?

K-NN là một kẻ lười học vì nó không học một chức năng phân biệt nào từ dữ liệu đào tạo mà thay vào đó “ghi nhớ” tập dữ liệu đào tạo. Nó không có giai đoạn đào tạo.

Hãy code!

Ở đây chúng tôi sử dụng thư viện scikit-learning để nhập KNN Model và sử dụng trực tiếp. Có rất nhiều bộ dữ liệu có sẵn trực tuyến cho KNN. Bạn có thể tìm thấy tập dữ liệu và mã trong liên kết bên dưới.

Nhập thư viện

Trong các dòng mã trên, tôi vừa nhập tất cả các thư viện mà tôi sẽ cần trong quá trình này

Numpy → Nó là một thư viện được sử dụng để làm việc với các mảng.

Pandas → Để tải tệp dữ liệu dưới dạng khung dữ liệu Pandas và phân tích dữ liệu.

Matplotlib → Tôi đã nhập pyplot để vẽ đồ thị dữ liệu.

Nhập tập dữ liệu

Tệp của chúng tôi ở định dạng CSV (Giá trị được phân tách bằng dấu phẩy), vì vậy chúng tôi nhập tệp bằng cách sử dụng gấu trúc. Sau đó, chúng tôi chia dữ liệu thành các biến Phụ thuộc và Độc lập. X được coi là Độc lập và Y được coi là Phụ thuộc.

Xem thêm: Các Cách Làm Mặt Nạ Dưỡng Ẩm Không Thể Bỏ Qua, Cách Làm Mặt Nạ Dưỡng Ẩm Dành Cho Da Khô Tại Nhà

Tập dữ liệu của chúng tôi là về các công ty khởi nghiệp bao gồm năm tính năng

Tên người dùng Giới tính Tuổi tác Mức lương ước tính Đã mua hay chưa Bộ tàu và bộ kiểm tra

Từ Sklearn, thư viện phụ model_selection, tôi đã nhập train_test_split được sử dụng để tách các tập huấn luyện và thử nghiệm. Chúng ta có thể sử dụng hàm train_test_split để thực hiện tách. Test_size = 0,25 bên trong hàm cho biết phần trăm dữ liệu cần được giữ lại để kiểm tra.

Tính năng mở rộng

Khi chúng tôi làm việc với một mô hình, điều quan trọng là nam giới phải đảm bảo rằng các giá trị nằm trong cùng một phạm vi, nếu không sẽ rất khó để chuyển nó cho mô hình. Để giải quyết vấn đề này, tôi yêu cầu chúng tôi mở rộng tính năng. Nó là một kỹ thuật để chuẩn hóa các tính năng độc lập có trong dữ liệu trong một phạm vi cố định. Nó được thực hiện trong quá trình xử lý trước dữ liệu.

Ở đây, chúng tôi coi Tuổi và Thu nhập ước tính là các biến độc lập và Đã mua là biến phụ thuộc. Trong các biến độc lập của chúng tôi, tuổi tính theo vị trí mười và Thu nhập tính theo hàng nghìn, cần phải áp dụng tỷ lệ đặc trưng cho các biến này để có được dự đoán tốt nhất.

Thư viện học sci-kit cung cấp một lớp để chia tỷ lệ dữ liệu của chúng ta, Chúng ta có thể sử dụng lớp StandaradScaler từ tiền xử lý. Chúng tôi nhập lớp từ thư viện, chúng tôi sẽ tạo một đối tượng cho nó. Chúng tôi sẽ sử dụng phương thức fit_transform để chuyển đổi tập hợp các biến độc lập và thử nghiệm thành cùng một phạm vi.

Bây giờ hãy phù hợp với dữ liệu

Từ Sklearn, hàng xóm của thư viện phụ. chúng tôi nhập KNeighborClassifier và chúng tôi phù hợp với mô hình trên dữ liệu đào tạo.

sci-kit learning có một phương pháp có sẵn để tính toán khoảng cách nhỏ nhất. Ở đây chúng tôi tính khoảng cách Euclide, phương pháp này là một phần của số liệu Minkowski và p = 2 đại diện để tính khoảng cách Euclide. Nếu p = 1, nó đại diện cho khoảng cách Manhattan.

Dự đoán kết quả kiểm tra

Chỉ số đánh giá

Chỉ đơn giản là xây dựng một mô hình dự đoán không phải là động cơ của chúng tôi. Đó là về việc tạo và chọn một mô hình mang lại độ chính xác cao từ dữ liệu mẫu. Do đó, điều quan trọng là phải kiểm tra độ chính xác của mô hình của bạn trước khi tính toán các giá trị dự đoán. Chúng tôi sẽ sử dụng một trong các kỹ thuật đo lường đánh giá được sử dụng để tính độ chính xác của các mô hình phân loại. Chúng ta hãy thảo luận chi tiết về nó.

Ma trận hỗn loạn

Đây là một kỹ thuật đo lường hiệu suất cho các mô hình phân loại trong Học máy nơi đầu ra có hai hoặc nhiều lớp. Đây là một bảng có bốn kết hợp khác nhau của các giá trị thực tế và dự đoán.


Chúng ta hãy hiểu các thuật ngữ trong ma trận nhầm lẫn.

Tích cực thực sự (TP)

Nếu giá trị thực và giá trị dự đoán là đúng, thì đó là giá trị dương thực sự. Ví dụ, bạn dự đoán rằng một phụ nữ có thai và cô ấy đang mang thai.

Phủ định Sai (FN)

Nếu giá trị thực tế là Đúng và giá trị dự đoán là sai, thì nó là Âm sai. Ví dụ, bạn dự đoán một phụ nữ không mang thai nhưng cô ấy đang mang thai.

Dương tính giả (FP)

Nếu giá trị dự đoán là sai nhưng giá trị thực tế là đúng, thì đó là Dương sai. Ví dụ: bạn dự đoán cô ấy có thai nhưng cô ấy không có thai

Âm tính thực sự (TN)

Nếu giá trị dự đoán là sai và giá trị thực tế cũng sai, thì đó là Giá trị phủ định Đúng. Ví dụ, bạn dự đoán cô ấy không có thai và cô ấy không có thai.

Hãy nhập ma trận nhầm lẫn từ lớp metrics và tạo một đối tượng cho nó, sau đó chúng ta sẽ chuyển y_test và y_pred làm tham số để biết độ chính xác của các giá trị được dự đoán. Ở đây chúng ta cần thêm True Positive và True negative để biết hiệu suất của mô hình. Chúng tôi nhận được độ chính xác là 93 trên 100. Hãy hình dung dữ liệu dự đoán. Trong sơ đồ dưới đây, bạn có thể thấy bảy dự đoán không chính xác.


Dưới đây là tóm tắt về những gì tôi đã làm: Tôi đã tải dữ liệu, chia dữ liệu thành các tập huấn luyện và thử nghiệm, áp dụng phương pháp tỷ lệ tiêu chuẩn để chuẩn hóa dữ liệu thành cùng một phạm vi, đưa mô hình phân loại vào dữ liệu huấn luyện, đưa ra dự đoán dựa trên trên dữ liệu này và thử nghiệm các dự đoán trên dữ liệu thử nghiệm.

Mọi người đam mê Học máy đều phải biết về các thuật toán Phân loại và Hồi quy. Các blog của tôi về thuật toán Học máy được cung cấp bên dưới. Đó là tất cả cho bây giờ! Tôi hy vọng bạn thích bài viết này.

Giới thiệu về thuật toán học máy-Hồi quy tuyến tính Giới thiệu về thuật toán học máy-Hồi quy đa tuyến tính Giới thiệu về thuật toán học máy-Hồi quy logistic