Đối với k-NN, tôi khuyên bạn nên chuẩn hóa dữ liệu trong khoảng từ đến .01
k-NN sử dụng khoảng cách Euclide , như là phương tiện để so sánh các ví dụ. Để tính khoảng cách giữa hai điểm và , trong đó là giá trị của tính năng thứ của :x1=(f11,f21,...,fM1)x2=(f12,f22,...,fM2)fi1ix1
d(x1,x2)=(f11−f12)2+(f21−f22)2+...+(fM1−fM2)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
Để tất cả các tính năng có tầm quan trọng như nhau khi tính khoảng cách, các tính năng phải có cùng phạm vi giá trị. Điều này chỉ có thể đạt được thông qua bình thường hóa.
Nếu chúng không được chuẩn hóa và ví dụ, tính năng có một phạm vi các giá trị trong ), trong khi có một phạm vi các giá trị trong . Khi tính khoảng cách, thuật ngữ thứ hai sẽ quan trọng gấp lần so với thuật ngữ thứ nhất, khiến k-NN phụ thuộc nhiều hơn vào tính năng thứ hai so với tính năng thứ nhất. Chuẩn hóa đảm bảo rằng tất cả các tính năng được ánh xạ tới cùng một phạm vi giá trị.f1[0,1f2[1,10)10
Mặt khác, tiêu chuẩn hóa có nhiều đặc tính hữu ích, nhưng không thể đảm bảo rằng các tính năng được ánh xạ tới cùng một phạm vi. Mặc dù tiêu chuẩn hóa có thể phù hợp nhất với các phân loại khác, nhưng đây không phải là trường hợp của k-NN hoặc bất kỳ phân loại dựa trên khoảng cách nào khác.