Kỹ thuật xử lý dữ liệu không đầy đủ / thiếu


12

Câu hỏi của tôi hướng đến các kỹ thuật để xử lý dữ liệu không đầy đủ trong quá trình phân loại / đào tạo mô hình / phù hợp.

Chẳng hạn, trong một tập dữ liệu có vài trăm hàng, mỗi hàng có giả sử năm chiều và nhãn lớp là mục cuối cùng, hầu hết các điểm dữ liệu sẽ trông như thế này:

[0,74, 0,39, 0,14, 0,33, 0,34, 0]

Một số có thể trông giống như thế này:

[0,21, 0,68,?, 0,82, 0,58, 1]

Vì vậy, đó là những loại điểm dữ liệu là trọng tâm của Câu hỏi này.

Lý do ban đầu của tôi để hỏi câu hỏi này là một vấn đề trực tiếp trước mặt tôi; tuy nhiên, trước khi đăng Câu hỏi của tôi, tôi nghĩ rằng nó có thể hữu ích hơn nếu tôi đặt lại câu hỏi để câu trả lời sẽ hữu ích cho một phần lớn hơn của Cộng đồng.

Là một heuristic đơn giản, hãy phân chia các kỹ thuật xử lý dữ liệu này dựa trên thời gian trong quá trình xử lý chúng được sử dụng - trước khi nhập vào bộ phân loại hoặc trong khi (nghĩa là kỹ thuật nằm trong bộ phân loại).

Ví dụ tốt nhất tôi có thể nghĩ đến sau này là kỹ thuật 'phân nhánh ba chiều' thông minh được sử dụng trong Cây quyết định.

Không còn nghi ngờ gì nữa, danh mục trước đây lớn hơn nhiều. Các kỹ thuật tôi nhận thức được đều thuộc một trong các nhóm dưới đây.

Trong khi gần đây xem xét các ghi chú cá nhân của tôi về "xử lý dữ liệu bị thiếu" tôi nhận thấy rằng tôi có một danh sách các kỹ thuật khá ấn tượng. Tôi chỉ duy trì những lưu ý này để yên tâm chung và trong trường hợp một đồng nghiệp cấp dưới hỏi tôi cách xử lý dữ liệu bị thiếu. Trong thực tế, tôi không thực sự sử dụng bất kỳ trong số họ, ngoại trừ cái cuối cùng.

  1. Imputation : một phiếu tự đánh giá rộng cho một tập hợp các kỹ thuật có mẫu số chung (tôi tin) là dữ liệu bị thiếu được cung cấp trực tiếp bởi cùng một tập dữ liệu - thay vì ước tính / dự đoán.

  2. Tái cấu trúc : ước tính các điểm dữ liệu bị thiếu bằng cách sử dụng mạng liên kết tự động (chỉ là mạng thần kinh trong đó kích thước của các lớp đầu vào và đầu ra bằng nhau - nói cách khác, đầu ra có cùng kích thước với đầu vào); ý tưởng ở đây là đào tạo mạng này trên dữ liệu hoàn chỉnh, sau đó cung cấp cho nó các mẫu không hoàn chỉnh và đọc các giá trị còn thiếu từ các nút đầu ra.

  3. Bootstrapping : (không cần tóm tắt tôi không nên nghĩ, vì nó được sử dụng ở nơi khác trong phân tích thống kê).

  4. Từ chối : lặng lẽ xóa các điểm dữ liệu với các yếu tố bị thiếu / hỏng khỏi tập huấn luyện của bạn và giả vờ chúng không bao giờ tồn tại.


2
Ngoài ra còn có cách tiếp cận "mô hình rút gọn" trong đó bạn huấn luyện bộ phân loại cho mọi mẫu giá trị bị thiếu gặp phải trong quá trình thử nghiệm. IE, để đưa ra dự đoán cho x nơi thiếu thuộc tính i'th, hãy xóa thuộc tính thứ i khỏi tất cả các trường hợp dữ liệu huấn luyện và huấn luyện về điều đó. jmlr.csail.mit.edu/ con / v8 / saar
Yaroslav Bulatov

Tôi tin rằng định nghĩa của bạn về Imputation là không chính xác trong bối cảnh hiện đại. Hiện tại, việc tranh chấp liên quan đến việc mô hình hóa dữ liệu bị thiếu dựa trên các biến khác từ tập dữ liệu. Phương pháp Imputation hiện đang được ưa chuộng là Multi Imputation, tạo ra nhiều lựa chọn thay thế cho mỗi giá trị bị thiếu (dựa trên mô hình), xử lý từng bộ dữ liệu hoàn thành thay thế và sau đó kết hợp các câu trả lời phản ánh sự thay đổi giữa các kết quả. (Trong "ngày xưa", mọi người đã làm những việc như thay thế giá trị từ một bản ghi tương tự, hoặc giá trị trung bình, v.v., nhưng không phải bây giờ.)
Wayne

@Wayne bạn có tử tế khi chỉ cho tôi một số bài viết mô tả các modernkỹ thuật này không? Cảm ơn
Enzo

Gói R micecó một bài giới thiệu hay về JSS: jstatsoft.org/article/view/v045i03 . (Bạn sẽ thấy phần giới thiệu hữu ích, ngay cả khi bạn không sử dụng R.) Và gói R Ameliacó họa tiết đẹp đi kèm với gói. Hai gói này khác nhau về chi tiết, nhưng cả hai đều sử dụng nhiều lần cắt bỏ.
Wayne

Câu trả lời:


3

Tôi đã đưa ra câu trả lời này cho một câu hỏi khác , nhưng nó cũng có thể áp dụng ở đây.

"Có một lĩnh vực nghiên cứu hợp lý mới gọi là Hoàn thành Ma trận , có lẽ là những gì bạn muốn. Một lời giới thiệu thực sự hay được đưa ra trong bài giảng này của Emmanuel Candes"

Về cơ bản, nếu tập dữ liệu của bạn có thứ hạng thấp (hoặc thứ hạng thấp xấp xỉ) tức là bạn có 100 hàng, nhưng ma trận thực tế có một số thứ hạng nhỏ, giả sử 10 (hoặc chỉ 10 giá trị số ít lớn), thì bạn có thể sử dụng Hoàn thành ma trận để điền vào chỗ còn thiếu dữ liệu.


2

Tôi có thể là một chút không chính thống ở đây, nhưng cái quái gì thế. Xin lưu ý: dòng suy nghĩ này xuất phát từ triết lý riêng của tôi để phân loại, đó là tôi sử dụng nó khi mục đích của tôi hoàn toàn dựa trên dự đoán thuần túy - không phải giải thích, mạch lạc khái niệm, v.v. Vì vậy, những gì tôi nói ở đây mâu thuẫn với cách tôi Cách tiếp cận xây dựng mô hình hồi quy.

Các cách tiếp cận phân loại khác nhau khác nhau về khả năng xử lý dữ liệu bị thiếu và tùy thuộc vào một số yếu tố khác ^, tôi có thể thử # 5: sử dụng trình phân loại sẽ không gây nghẹt thở cho các NA đó. Một phần của quyết định đi theo con đường đó cũng có thể bao gồm suy nghĩ về khả năng một tỷ lệ NA tương tự sẽ xảy ra trong dữ liệu trong tương lai mà bạn sẽ áp dụng mô hình. Nếu các NA cho một số biến nhất định sẽ ngang bằng với khóa học, thì có thể có ý nghĩa khi chỉ cuộn với chúng (nghĩa là không xây dựng mô hình dự đoán giả định nhiều dữ liệu thông tin hơn so với những gì bạn thực sự có, hoặc bạn ' sẽ tự đùa với bản thân về việc dự đoán nó sẽ diễn ra như thế nào). Trên thực tế, nếu tôi không tin rằng NA bị thiếu một cách ngẫu nhiên, tôi sẽ có xu hướng mã hóa lại một biến mới (hoặc một cấp độ mới nếu nó '

Nếu tôi có lý do chính đáng để sử dụng một trình phân loại không mất dữ liệu tốt, thì cách tiếp cận của tôi sẽ là # 1 (nhiều lần xử lý), tìm cách tìm một mô hình phân loại hoạt động tốt tương tự trên các tập dữ liệu bị tranh chấp.

^ Bao gồm: bạn có bao nhiêu thiếu sót trong các dự đoán của mình, liệu có các mẫu hệ thống (nếu có, sẽ đáng để xem xét và suy nghĩ kỹ hơn về các hàm ý cho phân tích của bạn) và tổng số dữ liệu bạn phải làm việc với tổng thể .


1

Nếu bạn có linh cảm hợp lý về quy trình tạo dữ liệu chịu trách nhiệm về dữ liệu được đề cập thì bạn có thể sử dụng các ý tưởng bayes để ước tính dữ liệu bị thiếu. Theo cách tiếp cận bayes, bạn chỉ cần giả định rằng dữ liệu bị thiếu cũng là các biến ngẫu nhiên và xây dựng phần sau cho dữ liệu bị thiếu có điều kiện trên dữ liệu được quan sát. Các phương tiện sau sẽ được sử dụng để thay thế cho dữ liệu bị thiếu.

Việc sử dụng các mô hình bayes có thể đủ điều kiện là sự buộc tội theo nghĩa rộng của thuật ngữ này nhưng tôi nghĩ đến việc đề cập đến nó vì nó không xuất hiện trong danh sách của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.