Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Data Science] Chuẩn hóa min-max rồi phân lớp KNN

    Khi các đặc trưng có thang đo khác nhau (tuổi 20–60 và thu nhập hàng chục triệu), KNN sẽ bị đặc trưng lớn lấn át. Hãy chuẩn hóa min-max từng đặc trưng trên tập huấn luyện:

    x′=x−min⁡max⁡−min⁡x' = \frac{x - \min}{\max - \min}x′=max−minx−min​

    với min⁡,max⁡\min, \maxmin,max tính trên tập huấn luyện theo từng chiều; nếu max⁡=min⁡\max = \minmax=min thì đặt giá trị chuẩn hóa của chiều đó bằng 0 cho mọi điểm (kể cả truy vấn). Điểm truy vấn cũng chuẩn hóa bằng min⁡,max⁡\min, \maxmin,max của tập huấn luyện (kết quả có thể nằm ngoài [0,1][0,1][0,1]).

    Sau đó phân lớp KNN trên dữ liệu đã chuẩn hóa: chọn kkk láng giềng Euclid gần nhất (hòa ⇒ chỉ số nhỏ hơn), bỏ phiếu đa số (hòa phiếu ⇒ nhãn nhỏ nhất).

    • Định dạng đầu vào:

      Dòng đầu: ba số nguyên nnn ddd kkk (k ≤ n). nnn dòng tiếp theo: mỗi dòng ddd số thực (đặc trưng) và một số nguyên (nhãn). Dòng cuối: ddd số thực (điểm truy vấn).

    • Ràng buộc đầu vào:

      1 ≤ k ≤ n ≤ 1000; 1 ≤ d ≤ 10; 0 ≤ nhãn ≤ 100.

    • Định dạng đầu ra:

      Một dòng duy nhất: nhãn dự đoán (số nguyên).

    Ví dụ:

    Đầu vào:

    4 2 1
    0 100 0
    1 200 0
    10 100 1
    10 200 1
    2 105

    Đầu ra:

    0

    Giải thích:

    Chiều 1: min=0, max=10; chiều 2: min=100, max=200. Train chuẩn hóa: (0,0), (0.1,1), (1,0), (1,1); truy vấn (0.2, 0.05). Bình phương khoảng cách: 0.0425; 0.9125; 0.6425; 1.5425 ⇒ gần nhất là điểm 0, nhãn 0

    Đang tải editor...