Cách tiếp cận của bạn có vẻ khá hợp lý (nó được gọi là K-lân cận gần nhất hoặc KNN), mặc dù tôi không chắc bạn đang sử dụng số liệu khoảng cách phù hợp (khoảng cách hamming cho đến ngày nay). Phương pháp của bạn khá nhạy cảm với cấu trúc chính xác của một ngày và có thể mất nhiều thời gian để thích ứng với những thứ như kỳ nghỉ, trong khi có lẽ quá nhạy cảm trong vài giờ đầu tiên trong một ngày.
Một thay đổi phương pháp của bạn mà tôi sẽ thử là xem xét 24 giờ trước thay vì "cho đến ngày nay" hoặc sử dụng cả hai phương pháp và tính trung bình kết quả. Ví dụ như phương pháp 24 giờ trước đó sẽ nhận được một kỳ nghỉ khá nhanh chóng, nhưng phương pháp ngày nay đến nay có thể bỏ lỡ một kỳ nghỉ nếu người dùng xảy ra chưa bao giờ có một ngày nghỉ vào thứ Tư hoặc thứ gì đó. Đây là một khái niệm tương tự như trò chơi này rock paper scissors, mà nhìn vào bốn ném cuối cùng của bạn để dự đoán kế tiếp.
Một thay đổi khác mà tôi muốn xem xét là chơi với trọng số trong tính toán khoảng cách hamming. Ví dụ: cân mỗi bit khớp với lambda^(-n)
, trong đó lambda
là thông số bạn có thể điều chỉnh (bắt đầu bằng cái gì đó như 1.1) và n
biểu thị số giờ trong quá khứ mà bit đại diện.
Bất kỳ thuật toán phân loại nào khác, như SVM, hồi quy logistic, rừng ngẫu nhiên, v.v. cũng sẽ hoạt động khá tốt. Các tính năng thêm vào vector đặc trưng:
- ngày trong tuần
- giờ
- lấp đầy trung bình giờ này
- lấp đầy trung bình ngày nay
- lấp đầy trung bình này (ngày, giờ)
- qua công suất N-grams (ví dụ: bit bit của N giờ trước) cho các giá trị khác nhau của N
- là một ngày nghỉ?
- giờ kể từ khi mặt trời mọc
Cuối cùng, đối với một người dùng mới, nó có thể sẽ mất một thời gian để có được đủ dữ liệu đào tạo, vì vậy bạn có thể muốn có hai mô hình: mô hình tổng thể dựa trên tất cả người dùng của bạn và một mô hình người dùng cá nhân. Sau đó bạn có thể cân trọng lượng đầu ra của hai mô hình, với trọng số trên mô hình người dùng tăng
Cá nhân tôi chỉ sử dụng chế độ để tìm trạng thái chiếm đóng thường xuyên nhất trong lịch sử cho mỗi khoảng thời gian nửa giờ. Nếu bạn chỉ muốn sử dụng các trạng thái gần đây nhất, thì chỉ sử dụng các chế độ của chúng. Tôi cung cấp điều này chỉ để chỉ ra rằng bạn phải quyết định phương pháp tiếp cận dự đoán nào bạn muốn thực hiện, sau đó triển khai nó. Sử dụng các biện pháp phức tạp như Hamming khoảng cách không làm cho dự đoán tốt hơn trừ khi bạn có hỗ trợ lý thuyết (hoặc thực tế) vững chắc cho ý tưởng rằng việc sử dụng khoảng cách Hamming là cách tiếp cận đúng. Cùng một đối số áp dụng cho đề xuất của tôi để sử dụng chế độ. –
Về cơ bản những gì tôi đang làm ở đây là lấy khối thường xuyên nhất nhưng tôi sử dụng khoảng cách hamming để chọn những ngày phù hợp nhất từ những ngày trước dựa trên dữ liệu từ ngày liên tục. Vì vậy, tôi so sánh đầu ngày với sự khởi đầu của những ngày trước đó. Vì vậy, có một chút biện minh cho khoảng cách Hamming. Những gì tôi đang cố gắng làm là giống như tạo ra một ngày điển hình hoặc lâu hơn, đây là những gì tôi có nghĩa là bằng cách nắm bắt xu hướng. –
thông tin khác có thể hữu ích, ví dụ: bản chất của số người dùng hoặc mùa có/các tháng nhất định trong năm có thể có các mẫu có thể dự đoán được hay không. –