중요한 속성을 지정하는 방법?


15

많은 데이터 소스로 구성된 느슨하게 구조화 된 데이터 세트 (예 : 웹 테이블 / 링크 된 공개 데이터)를 가정하십시오. 데이터 뒤에 공통 스키마가 없으며 각 소스는 동의어 속성을 사용하여 값을 설명 할 수 있습니다 (예 : "nationality"vs "bornIn").

내 목표는 그들이 설명하는 개체를 어떻게 든 "정의"하는 "중요한"속성을 찾는 것입니다. 따라서 그러한 속성에 대해 동일한 값을 찾으면 두 설명이 동일한 엔티티 (예 : 동일한 사람)에 대해 가장 가능성이 높다는 것을 알 수 있습니다.

예를 들어, "lastName"속성은 "nationality"속성보다 구별이 쉽습니다.

다른 사람들보다 더 중요한 속성을 (통계적으로) 어떻게 찾을 수 있습니까?

순진한 해결책은 각 속성 값의 평균 IDF를 가져 와서이를 속성의 "중요도"요인으로 만드는 것입니다. 비슷한 접근 방식은 각 속성에 대해 몇 개의 고유 값이 나타나는지를 계산하는 것입니다.

기계 학습에서 기능 또는 속성 선택이라는 용어를 보았지만 나머지 속성을 버리고 싶지 않고 가장 중요한 속성에 가중치를 더하고 싶습니다.

답변:


16

가능한 해결책은 각 속성과 관련된 정보 획득 을 계산하는 것입니다.

정보 획득

처음에는 전체 데이터 세트가 있으며 각 항목의 정보 획득을 계산합니다. 정보 게인이 가장 좋은 항목은 데이터 집합을 분할하는 데 사용해야하는 항목입니다 (항목 값 고려). 그런 다음 각 항목에 대해 동일한 계산을 수행하고 (선택한 항목) 항상 데이터 세트에서 항목 을 가장 잘 설명 / 차별 하는 것을 선택하십시오 .

이러한 계산에 사용 가능한 구현이 있습니다. 의사 결정 트리는 일반적으로 최상의 정보 획득 기능을 갖춘 기능을 기반으로 기능을 선택합니다. 결과 트리 구조를 사용하여 이러한 중요한 항목 을 찾을 수 있습니다.


이 엔트로피입니까? 혼란 스러워요.
Valentas

늦은 답변 죄송합니다. 정보 를 얻는 것은 전체 엔트로피 를 줄이는 것 입니다. 기본적으로 같은 개념입니다. "엔트로피"와 "정보 게인"의 정의를 살펴보십시오 .
Rubens

7

실제로 여기에 대답 할 질문이 두 개 이상 있습니다.

  1. 스키마없는 / 느슨한 / 누락 된 데이터 작업 방법
  2. 사람에게 라벨을 붙이는 방법 (내가 감독하지 않은 것으로 이해)에서 식별자를 만드는 방법
  3. 사람을 식별하기 위해 사용해야하는 속성을 알려줄 수 있도록 시스템을 훈련시키는 방법

Rubens가 언급했듯이 의사 결정 트리 방법, 특히 임의 포리스트 를 사용하여 사람 레이블을 지정하는 방법을 이미 식별 한 경우 정보 획득을 기반으로 가장 중요한 속성을 계산할 수 있습니다.

그러나 레이블 정보가없는 경우 예비 속성 선택에 전문가보기를 사용할 수 있습니다. 그런 다음 라벨을 검색하기 위해 감독되지 않은 분류 를 만듭니다 . 마지막으로 Random Forest 또는 Bayesian Belief Networks 와 같은 다른 방법을 사용하여 가장 중요한 필드를 선택할 수 있습니다 .

이 모든 것을 달성하기 위해서는 완전한 데이터 세트가 필요합니다. 데이터 세트가 느슨한 경우 수동으로 또는 경험적으로 동일한 이름을 나타내는 속성을 다른 이름으로 결합하는 방법을 찾아야합니다. 또한 기대 최대화 방법과 같은 대치 기술을 사용 하고 데이터 세트를 완성 할 수 있습니다. 또는 베이지안 네트워크를 사용하여 누락 된 필드를 그대로 둘 수도 있습니다.


2

많은 기술이 있습니다. 정보 시스템에 의사 결정 속성이나 레이블이 첨부되어 있으면 내가 찾은 가장 좋은 방법은 대략적인 세트 기반 속성 축소를 사용하는 것입니다. Qiang Shen과 Richard Jensen의 빠른 축소 알고리즘을 확인하십시오.

레이블이 지정되지 않은 데이터가있는 경우 주성분 분석 (PCA)을 확인하십시오 .


0

그것을 위해, 거의 5 년 후, 나는이 문제를 해결하기 위해 박사 학위에서 실제로 사용한 것을 공유 할 수 있다고 생각했습니다.

중요한 속성을 선택하는 데 사용한 측정 값은 support과 사이의 고조파 평균 (일명 F- 측정) discriminability입니다.

속성 p의 지원은 데이터 셋의 엔터티가이 속성에 대한 값을 포함하는 빈도를 직관적으로 나타냅니다.

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

여기서 instances (p)는 p에 대한 값을 가진 엔티티 세트이며 | D | 데이터 세트 D의 엔터티 수입니다.

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

여기서 values ​​(p)는 데이터 집합에서 속성 p가 가질 수있는 (집합이므로 구별되는) 값의 집합입니다. 실제로이 속성에 대한 값을 갖는 엔티티 수에 의해 정규화됩니다.

다시 말해, 지원은 데이터 집합에 p가 나타나는 빈도를 측정하고 식별 가능성은이 특성이 "키"에 얼마나 근접한지를 나타냅니다.

자세한 내용은 논문 (4.3.2 단원)을 읽 거나 EDBT 2019 논문 (섹션 2) 에서 더 짧은 버전을 찾을 수 있습니다 .

건설적인 답변에 감사드립니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.