KNN có chức năng mất không?


9

Tôi đã không tìm thấy một định nghĩa về chức năng mất trên wiki trong bối cảnh học máy.

Điều này là ít chính thức mặc dù, nó là đủ rõ ràng.

Về cốt lõi, một hàm mất rất đơn giản: đó là một phương pháp đánh giá mức độ thuật toán của bạn mô hình hóa tập dữ liệu của bạn. Nếu dự đoán của bạn hoàn toàn tắt, chức năng mất của bạn sẽ tạo ra số cao hơn. Nếu chúng khá tốt, nó sẽ tạo ra số thấp hơn. Khi bạn thay đổi các phần của thuật toán để thử và cải thiện mô hình của mình, hàm mất mát của bạn sẽ cho bạn biết nếu bạn đang ở bất cứ đâu.

có vẻ như tỷ lệ lỗi của KNN không phải là chức năng có thể hướng dẫn mô hình tự tối ưu hóa, chẳng hạn như Gradient Descent.

vậy, KNN có chức năng mất không?

Câu trả lời:


11

k -NN không có chức năng mất có thể được giảm thiểu trong quá trình đào tạo. Trong thực tế, thuật toán này không được đào tạo ở tất cả. "Đào tạo" duy nhất xảy ra cho -NN, là ghi nhớ dữ liệu (tạo bản sao cục bộ), để trong quá trình dự đoán, bạn có thể thực hiện tìm kiếm và bỏ phiếu đa số. Về mặt kỹ thuật, không có chức năng nào được trang bị cho dữ liệu, và do đó, không có tối ưu hóa nào được thực hiện (nó không thể được đào tạo bằng cách sử dụng độ dốc).k


4
kNN không sử dụng chức năng mất trong quá trình "đào tạo", nhưng điều đó không có nghĩa là không có chức năng mất xác định kNN. Ví dụ: Người ta biết rằng trung vị giảm thiểu tổn thất chênh lệch tuyệt đối trung bình. Nhưng bạn không bao giờ tính toán tổn thất trung bình và bạn cũng không sử dụng tối ưu hóa như giảm độ dốc để tính toán trung vị. Nó vẫn là một thực tế hữu ích rằng đôi khi nó giảm thiểu mất abs có nghĩa là. Theo cùng một cách, bạn có thể xây dựng một hàm mất mát mà
kNN

@nikie điều đó đúng, nhưng trong kNN sử dụng chúng giống như các hàm tổng hợp cục bộ giữa các hàng xóm (khó dịch thành tổn thất tổng thể để giảm thiểu). Ngoài ra với k = 1 bạn không sử dụng bất kỳ chức năng nào như vậy. Hơn nữa, nó không được sử dụng cho đào tạo. Gọi nó là một hàm mất mát chỉ đơn thuần là một bài tập tinh thần để buộc kNN phù hợp với một số định nghĩa của phân loại, tôi không tìm thấy lý do thuyết phục để định nghĩa nó theo cách đó.
Tim

-2

Tôi không đồng ý với câu trả lời được chấp nhận (phần nào).

KNN là một thuật toán phân loại và thật vô nghĩa khi chạy một thuật toán phân loại mà không có hàm mất: bạn sẽ quan tâm đến việc thuật toán đã làm tốt như thế nào. Trong trường hợp của KNN, ví dụ, bạn có thể đánh giá chất lượng phân loại bằng cách xem xét tổng độ chính xác trung bình trong mỗi lớp. Hoặc, bạn có thể chỉ tập trung vào độ chính xác của thuật toán.

Phương pháp tối ưu hóa cung cấp năng lượng cho KNN không phụ thuộc vào chức năng mất, do đó, trong quá trình đào tạo, nó không bao giờ hấp dẫn chức năng mất và thậm chí không sử dụng độ dốc để đào tạo.

KK


5
Một số liệu để đánh giá hiệu suất của thuật toán và tổn thất để giảm thiểu là hai điều khác nhau. Trên thực tế, bạn có thể giảm thiểu tổn thất khác với số liệu mà bạn đang theo đuổi (ví dụ: vì lý do tính toán).
Tim

@Tim: Tôi nghĩ rằng chúng ta đang ở trên cùng một trang vì đó chính xác là điểm mà tôi đang cố gắng thực hiện trong đoạn cuối cùng, nơi một số liệu được sử dụng để đào tạo. Nhưng, bạn vẫn muốn có một hàm mất sau khi đào tạo để đánh giá thuật toán. Một thuật toán phân loại được đào tạo mà không thu hút một số loại hàm mất (trong hoặc sau) trên các lớp là theo định nghĩa không giám sát.
Alex R.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.