Trong thực tế, mọi người làm gì với các giá trị còn thiếu từ ma trận đề xuất, đó là toàn bộ điểm thực hiện phép tính? Tôi đoán từ việc đọc bài đăng trên blog của Simon là anh ấy CHỈ sử dụng các thuật ngữ không thiếu để xây dựng một mô hình.
Điều đó đúng - đó là quan điểm của mô hình của anh ấy và của bạn, để dự đoán các điều khoản còn thiếu, phải không? Đó là một điểm rất quan trọng mà nhiều người thực sự quên. Họ nghĩ rằng họ chỉ có thể "giả sử" gán trước một dữ liệu bị thiếu mà không cần quan tâm trên thế giới và mọi thứ sẽ hoạt động một cách kỳ diệu đủ từ một SVD. Rác vào, đổ rác: Đó là sự thật, và bạn nên xem nó tốt hơn. Tốt hơn hết là bạn không nên cung cấp dữ liệu rác cho một mô hình nếu bạn muốn kết quả nào đó hữu ích.
Chắc chắn KHÔNG "tốt nhất để suy ra bất kỳ giá trị bị thiếu" nào trên bộ dữ liệu thưa thớt đa số và sau đó chạy SVD với điều đó với hy vọng sẽ áp đặt các giá trị cho bạn (mà bạn đã tranh luận trước khi bạn chạy SVD, phải không?). Bạn nghĩ gì, một mô hình là ma thuật? Đây không phải là phép thuật cũng như công nghệ để vượt qua phần lớn dữ liệu rác. Bạn không thể nói dối với một mô hình rằng dữ liệu là dữ liệu thực khi nó hoàn toàn không có thật, nhưng thực sự chỉ là một số thứ linh tinh mà bạn tạo ra từ không khí mỏng.
SVD làm những việc hữu ích khác vì vậy tôi chắc chắn không nói rằng SVD là vô giá trị. Hãy tiếp tục và chỉ sử dụng SVD trên các bộ dữ liệu hoàn chỉnh, có lẽ bạn đã đưa ra các giá trị bị thiếu một cách thông minh khi đã sử dụng mô hình học máy với tất cả sự chú ý do lỗi sai lệch và sai lệch trong quá trình phát triển.
Học máy là cách. Vì vậy, nếu bạn vẫn muốn biết cách áp đặt các giá trị bằng cách sử dụng thiết kế nhân tố ma trận, chắc chắn có những cách tốt để thực hiện chính xác điều này bằng cách sử dụng máy học và quan trọng là chúng không cung cấp bất kỳ dữ liệu rác nào cho mô hình để cố gắng học hỏi cách vô nghĩa.
Chính xác là một mô hình nhân tố ma trận học máy như vậy được trình bày khá tốt bởi các giảng viên của khóa học trực tuyến Khai thác dữ liệu tập hợp trực tuyến Stanford, trong mô-đun 5. Họ chỉ cho bạn toán học và giải thích mô hình. Họ không mã hóa nó cho bạn mặc dù.
Không sao vì bạn có thể tự viết mã, nếu bạn hiểu về máy học cơ bản. Bạn có biết hàm mất và hàm chi phí là gì không? Chính quy? Xuống dốc? ARe bạn OK với phép nhân và phép cộng? Lỗi thiên vị và lỗi phương sai? Nếu vậy thì bạn tốt. Nếu không thì bạn nên cân nhắc tham gia khóa học trực tuyến Machine Learning của Andrew Ng tại Coursera, một trong nhiều nơi khởi đầu tốt. Sau đó, hãy tham gia khóa học trực tuyến Bộ dữ liệu khổng lồ khai thác nói chính xác về nhân tố ma trận và học máy để tạo ra các mô hình đề xuất.
Có thể nói, bạn hoàn toàn có thể thiết kế cũng như mã hóa mô hình nhân tố của riêng bạn xử lý dữ liệu bị thiếu rất tốt, giống như Simon Funk đã làm, và bạn có thể làm điều đó từ đầu nhưng không khó chút nào như nó đã trở lại vào thời của anh ấy, bởi vì bây giờ bạn có thể sử dụng một công cụ như TensorFlow hoặc Microsoft CNTK, điều này giúp ích rất nhiều cho bạn. Xác định hàm mất và hàm chi phí, chọn trình tối ưu hóa, phân vùng tập dữ liệu của bạn thành đào tạo, dev, kiểm tra từ dữ liệu thực sự có sẵn (dữ liệu được gắn nhãn) và để nó chạy. Nghiêm túc, nó hoạt động. Việc gỡ lỗi TF không dễ dàng và các lỗi xây dựng biểu đồ của nó, nhưng cuối cùng nó có thể hoạt động tốt và mất ít hơn một trang mã.
Cụ thể, một cách để không cung cấp dữ liệu giả cho mô hình học máy nhân tố ma trận, là bỏ qua các yếu tố ma trận của dữ liệu bị thiếu trong các hàm mất mát và chi phí của bạn .