Thủ tục Reduce nhận dữ liệu đầu vào là các cặp dữ liệu được sinh ra từ các thủ tục map. Thủ tục Reduce cĩ nhiệm vụ xử lý, hợp nhất các cặp dữ liệu
Thuật tốn: LNBNN-HADOOP-REDUCE
Đâu vào:
- K là số hàng xĩm gần nhất cần tìm
- Key là một cặp gồm chỉ số của điểm đặc trưng và khoảng cách (Feature point Id of query, distance),
- Value là tập các cặp (class label, distance)
Đầu ra:
Totals: tổng khoảng cách từ truy vấn tới tất cả các lớp 1. Count =0;
2. For each RecordKey in Value do
3. If Count = K then 4. BG_distance = recordKey.getDistance() 5. break; 6. Else 7. Count = Count +1; 8. End if
9. If recordKey not in NeighborList then
10. Add recordKey to NeighborList 11. End if
12. End for
13. For each neighbor in NeighborList do
14. Totals[neighbor] += neighbor.Distance() – BG_distance;
này để cho kết quả cuối cùng. Thủ tục Reduce chọn K phần tử cĩ khoảng cách ngắn nhất tơng ứng với từng điểm đặc trưng của dữ liệu truy vấn để tính tổng khoảng cách ngắn nhất từ truy vấn đến tất cả các lớp tìm được trong K hàng xĩm gần nhất của mỗi điểm đặc trưng trong truy vấn. Khoảng cách biên được tính bằng khoảng cách từ hàng xĩm gần nhất thứ K+1 của mỗi điểm đặc trưng trong truy vấn. Cuối cùng, hiệu giữa khoảng cách nhỏ nhất từ một điểm đặc trưng của truy vấn đến tất cả các điểm đặc trưng trong tập huấn luyện với khoảng cách biên sẽ được cộng dồn vào tổng khoảng cách tới lớp tương ứng. Reduce lưu các kết quả tính tốn của nĩ trong biến tồn cục (Totals – tổng khoảng cách nhỏ nhất từ truy vấn đến các lớp trong tập huấn luyện). Để tìm kết quả phân lớp, thuật tốn cần tìm lớp cĩ tổng khoảng cách nhỏ nhất từ biến tồn cục Totals.