Cách tốt nhất để phân loại bộ dữ liệu với các loại thuộc tính hỗn hợp


13

Tôi muốn biết cách tốt nhất để phân loại một tập dữ liệu bao gồm các loại thuộc tính hỗn hợp, ví dụ, văn bản và số. Tôi biết tôi có thể chuyển đổi văn bản sang boolean, nhưng từ vựng rất đa dạng và dữ liệu trở nên quá thưa thớt. Tôi cũng đã cố gắng phân loại các loại thuộc tính riêng biệt và kết hợp các kết quả thông qua các kỹ thuật siêu học, nhưng nó không hoạt động tốt.

Câu trả lời:


11

Câu trả lời của Christopher có vẻ rất hợp lý. Các phương thức dựa trên cây đặc biệt làm tốt với loại dữ liệu này vì chúng phân nhánh trên các tính năng phân biệt đối xử. Thật khó để nói mà không biết ứng dụng cụ thể của bạn, nhưng nói chung nếu bạn nghĩ rằng một số tính năng của bạn có thể phân biệt đối xử đáng kể hơn những tính năng khác, bạn có thể thử một số kỹ thuật giảm kích thước để làm sạch điều này một chút.

Ngoài ra, nếu bạn sử dụng kỹ thuật giảm kích thước, cuối cùng bạn sẽ có được định dạng mạnh hơn một chút cho vectơ đặc trưng của mình (chúng thường kết thúc là vectơ số thẳng thay vì các loại dữ liệu hỗn hợp), có thể cho phép bạn tận dụng các phương pháp khác nhau. Bạn cũng có thể nhìn vào các tính năng kỹ thuật tay. Với các tính năng Random Forestđược thiết kế bằng tay đúng cách sẽ giúp bạn rất gần với trạng thái nghệ thuật trên hầu hết các nhiệm vụ.


2
Một phiếu khác cho giảm kích thước. Chỉ cần một số bổ sung: Principal Component Analysishoặc Non-Negative Matrix Factorizationsẽ giảm số lượng biến, làm phong phú dữ liệu thưa thớt và chuyển đổi tất cả các biến thành định lượng. Hơn nữa, đánh giá chất lượng của mô hình giảm kích thước, tác giả câu hỏi có thể ước tính tính hữu ích của các biến văn bản.
sobach

@indico câu trả lời tuyệt vời. Bạn có thể cho chúng tôi một tài liệu tham khảo trong một cuốn sách hoặc một bài báo, các thuật toán dựa trên cây đó hoạt động tốt hơn với dữ liệu hỗn hợp (dữ liệu phân loại và định lượng)?
ZelelB

6

Thật khó để trả lời câu hỏi này mà không biết thêm về dữ liệu. Điều đó nói rằng, tôi sẽ cung cấp lời khuyên sau đây:

Hầu hết các kỹ thuật máy học có thể xử lý dữ liệu kiểu hỗn hợp. Các phương thức dựa trên cây (như AdaBoost và Rừng ngẫu nhiên) làm tốt với loại dữ liệu này. Vấn đề quan trọng hơn thực sự là tính chiều, về điều mà bạn đúng cần được quan tâm.

Tôi sẽ đề nghị bạn làm một cái gì đó để giảm chiều hướng đó. Ví dụ: tìm các từ hoặc cụm từ tách dữ liệu tốt nhất và loại bỏ các từ khác (lưu ý: phương pháp dựa trên cây làm điều này tự động).


2

Với ít thông tin bạn đã cung cấp liên quan đến bản chất của dữ liệu của bạn, tôi sẽ khuyên bạn nên làm theo phương pháp sau:

  1. Chuyển đổi dữ liệu văn bản thành các thể loại. Bạn có thể thử các lựa chọn thay thế khác nhau để biết có bao nhiêu thông tin mà các danh mục nên chứa, nhưng các danh mục cụ thể phải tồn tại cho mỗi biến. Ví dụ, tôi sẽ giả sử một biến xuất phát từ trường văn bản của bảng câu hỏi khảo sát liên quan đến cách mọi người thích hợp hơn để đi làm.

    Đầu tiên, chúng ta cần đảm bảo rằng các câu trả lời có ý nghĩa tương tự được viết trên cùng một cách và thuộc cùng một loại (ví dụ: "bằng xe đạp", "đi xe đạp", "bằng xe đạp" đều có cùng một nghĩa). Sau đó, bạn có thể thử hợp nhất thêm vào các danh mục ít chi tiết hơn (ví dụ: hợp nhất "xe điện", "tàu điện ngầm" và "xe buýt" thành "Phương tiện giao thông công cộng") hoặc thậm chí nhiều hơn (ví dụ: "Đi bộ", "Chạy bộ", "Đi xe đạp" vào " Hoạt động thể chất ") tùy thuộc vào những gì bạn đang cố gắng tìm hiểu.

    Bạn thậm chí có thể đặt một số kết hợp khác nhau trong tập dữ liệu của mình và sau đó các bước tiếp theo sẽ xác định những kết hợp nào sẽ được sử dụng để phân tích. Trong trường hợp dữ liệu văn bản có thể được "dịch" theo các biến được sắp xếp, hãy đảm bảo bạn làm điều này (ví dụ: nếu bạn có "nhỏ, trung bình, cao" hãy chuyển đổi nó thành "1,2,3").

  2. Biến các biến phân loại của bạn (không phải biến thứ tự) thành biến giả (nhị phân). Hầu hết các thuật toán lựa chọn phân loại / tính năng thực hiện điều này một cách tự động, nhưng hãy chắc chắn rằng đây là trường hợp với các thuật toán bạn chọn. Tôi nhận ra rằng tính chiều của dữ liệu sẽ trở nên khá lớn tại thời điểm này, nhưng điều này sẽ được xử lý trong bước tiếp theo.

  3. Áp dụng một lựa chọn tính năng / kỹ thuật giảm kích thước trên dữ liệu của bạn. Bạn có thể tìm thấy một đánh giá hữu ích của các kỹ thuật như vậy ở đây . Nếu bạn đang sử dụng Python, các công cụ sklearn cung cấp cho bạn rất nhiều tùy chọn (xem thêm chi tiết tại đây ). Hãy chắc chắn rằng bạn sử dụng một kỹ thuật cũng xem xét tính đa hình. Tôi sẽ thử Phân tích thành phần chính hoặc thuật toán dựa trên cây.

  4. Để phân loại dữ liệu, tôi sẽ đi với Trình phân loại cây quyết định (cũng có sẵn thông qua sklearn ). Nó cũng thực hiện trọng lượng thiết lập lựa chọn tính năng đối với các tính năng. Bạn có thể đặt mức độ chi tiết trên cây được tạo tùy thuộc vào các tùy chọn của bạn (ví dụ: max_depth, min_samples_split) Đảm bảo điều chỉnh mức độ chi tiết dựa trên xác thực chéo để tránh bị quá mức.

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.