Làm thế nào để xác định các thuộc tính quan trọng?


15

Giả sử một tập hợp dữ liệu có cấu trúc lỏng lẻo (ví dụ: Bảng Web / Dữ liệu mở được liên kết), bao gồm nhiều nguồn dữ liệu. Không có lược đồ chung theo sau bởi dữ liệu và mỗi nguồn có thể sử dụng các thuộc tính từ đồng nghĩa để mô tả các giá trị (ví dụ: "quốc tịch" so với "sinh ra").

Mục tiêu của tôi là tìm một số thuộc tính "quan trọng" bằng cách nào đó "định nghĩa" các thực thể mà chúng mô tả. Vì vậy, khi tôi tìm thấy cùng một giá trị cho một thuộc tính như vậy, tôi sẽ biết rằng hai mô tả rất có thể về cùng một thực thể (ví dụ: cùng một người).

Ví dụ: thuộc tính "họ" có tính phân biệt đối xử cao hơn thuộc tính "quốc tịch".

Làm thế nào tôi có thể (theo thống kê) tìm thấy những thuộc tính quan trọng hơn những thuộc tính khác?

Một giải pháp ngây thơ sẽ là lấy IDF trung bình của các giá trị của từng thuộc tính và biến đây thành yếu tố "tầm quan trọng" của thuộc tính. Một cách tiếp cận tương tự sẽ là đếm xem có bao nhiêu giá trị riêng biệt xuất hiện cho mỗi thuộc tính.

Tôi đã thấy tính năng thuật ngữ hoặc lựa chọn thuộc tính trong học máy, nhưng tôi không muốn loại bỏ các thuộc tính còn lại, tôi chỉ muốn đặt trọng số cao hơn cho các thuộc tính quan trọng nhất.

Câu trả lời:


16

Một giải pháp khả thi là tính toán mức tăng thông tin liên quan đến từng thuộc tính:

Thông tin đạt được

Ban đầu bạn có toàn bộ dữ liệu và tính toán mức tăng thông tin của từng mục. Mục có mức tăng thông tin tốt nhất là mục bạn nên sử dụng để phân vùng tập dữ liệu (xem xét các giá trị của mục). Sau đó, thực hiện các tính toán tương tự cho từng mục (nhưng các mục được chọn) và luôn chọn mục mô tả đúng nhất / phân biệt các mục từ tập dữ liệu của bạn.

Có những triển khai có sẵn cho các tính toán như vậy. Cây quyết định thường dựa trên lựa chọn tính năng của chúng dựa trên các tính năng có mức tăng thông tin tốt nhất. Bạn có thể sử dụng cấu trúc cây kết quả để tìm các mục quan trọng này .


Đây có phải là entropy? Tôi bị bối rối.
Valentas

Xin lỗi vì hồi âm muộn. Để có được thông tin là giảm entropy tổng thể; Vì vậy, về cơ bản chúng là cùng một khái niệm. Hãy xem định nghĩa của "entropy" và "thông tin thu được".
Rubens

7

Trên thực tế có nhiều hơn một câu hỏi để trả lời ở đây:

  1. Làm thế nào để làm việc trên dữ liệu schemaless / lỏng / thiếu
  2. Cách gắn nhãn một người (từ những gì tôi hiểu không được giám sát) và tạo một định danh
  3. Cách huấn luyện hệ thống của bạn để nó có thể cho bạn biết những thuộc tính nào bạn nên sử dụng để xác định người

Như Rubens đã đề cập, bạn có thể sử dụng các phương thức cây quyết định , cụ thể là Rừng ngẫu nhiên để tính toán các thuộc tính quan trọng nhất dựa trên mức tăng thông tin nếu bạn đã tìm được cách xác định cách gắn nhãn cho một người.

Tuy nhiên, nếu bạn không có bất kỳ thông tin nhãn nào, có thể bạn có thể sử dụng một số chế độ xem chuyên gia để lựa chọn thuộc tính sơ bộ. Sau đó, bạn thực hiện phân loại không giám sát để lấy nhãn của bạn. Cuối cùng, bạn có thể chọn các trường quan trọng nhất bằng cách sử dụng Rừng ngẫu nhiên hoặc các phương pháp khác như Mạng tin tưởng Bayes .

Để đạt được tất cả điều đó, bạn cũng cần tập dữ liệu đầy đủ. Nếu tập dữ liệu của bạn bị lỏng, bạn phải tìm thủ công hoặc theo cách tự tìm cách ghép các thuộc tính chỉ ra cùng một thứ với các tên khác nhau. Hơn là gì, bạn có thể sử dụng khoản tính kỹ thuật như vọng Tối đa hóa phương pháp và hoàn thành bộ dữ liệu của bạn. Hoặc bạn cũng có thể làm việc với Bayesian Networks và có thể để lại các trường bị thiếu.


2

Có rất nhiều kỹ thuật ngoài kia. Nếu hệ thống thông tin của bạn có thuộc tính quyết định hoặc nhãn đính kèm, cách tốt nhất tôi tìm thấy là sử dụng giảm thuộc tính dựa trên tập thô. Kiểm tra thuật toán giảm nhanh của Qiang Shen và Richard Jensen.

Nếu bạn có dữ liệu chưa được gắn nhãn, hãy kiểm tra Phân tích thành phần chính (PCA) .


0

Chỉ vì lợi ích của nó, sau gần 5 năm, tôi nghĩ rằng tôi có thể chia sẻ những gì tôi thực sự sử dụng trong Tiến sĩ để giải quyết vấn đề này, không phải là mới, hoặc đóng góp của Tiến sĩ, trong trường hợp nó giúp được người khác.

Thước đo mà chúng tôi sử dụng để chọn các thuộc tính quan trọng là giá trị trung bình hài hòa (còn gọi là F-đo) giữa supportdiscriminability.

Sự hỗ trợ của một thuộc tính p là trực giác tần suất các thực thể trong tập dữ liệu của chúng tôi chứa các giá trị cho thuộc tính này:

support(p) = |instances(p)|/ |D|, 

trong đó cá thể (p) là tập hợp các thực thể có giá trị cho p và | D | là số lượng thực thể trong tập dữ liệu D.

discriminability(p) = |values(p)| / |instances(p)|, 

trong đó các giá trị (p) là tập hợp các giá trị (riêng biệt, vì đó là một tập hợp) mà thuộc tính p có thể có trong tập dữ liệu của chúng tôi. Điều đó được chuẩn hóa bởi số lượng thực thể có giá trị cho thuộc tính này.

Nói cách khác, bộ phận hỗ trợ đo tần số p xuất hiện trong tập dữ liệu và tính phân biệt đối xử cho biết mức độ gần như là một "khóa" thuộc tính này.

Để biết thêm chi tiết, bạn có thể đọc luận văn của tôi (Mục 4.3.2) hoặc bạn có thể tìm thấy một phiên bản ngắn hơn trong bài báo EDBT 2019 của chúng tôi (Phần 2).

Cảm ơn tất cả các câu trả lời mang tính xây dựng 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.