회귀 분석을위한 높은 카디널리티 범주 기능을 사용하여 기능의 중요성 (숫자 고유 변수)


12

랜덤 포레스트의 기능 중요도를 사용하여 회귀 문제에 대한 경험적 기능 선택을 수행하려고 시도했습니다. 회귀 문제는 모든 기능이 범주 형이며 많은 기능이 많은 수준 (100-1000 정도)입니다. one-hot 인코딩은 각 레벨마다 더미 변수를 생성하므로 각 기능 (컬럼)이 아니라 각 레벨마다 기능 중요도가 중요합니다. 이러한 기능 중요도를 집계하는 좋은 방법은 무엇입니까?

기능의 모든 수준에서 합산하거나 평균 중요성을 얻는 것에 대해 생각했습니다 (아마도 전자는 더 많은 수준의 기능에 편향 될 것입니다). 이 문제에 대한 언급이 있습니까?

기능 수를 줄이기 위해 다른 무엇을 할 수 있습니까? 나는 그룹 올가미를 알고 있으며, scikit-learn에 사용하기 쉬운 것을 찾을 수 없습니다.


범주 형 변수의 각 수준의 변수 중요도를 합산하는 것이 합리적인지에 대한 질문에 누구나 대답 할 수 있습니까?
24

@ see24 아니오 당신은 단지 그들을 합계 할 수 없습니다 : stats.stackexchange.com/questions/314567/…
Dan

답변:


5

그것은 당신이 그들을 어떻게 핫 인코딩하는지에 달려 있습니다. 이를위한 많은 자동화 솔루션은 패턴으로 변환 된 모든 부울 이름을 지정하므로 값이 AZ 인 "letter"라는 범주 형 변수는 다음과 같습니다.

letter_A, letter_B, letter_C, letter_D, ....

기능의 중요도를 파악한 후 기능의 배열과 관련 가중치 / 중요도를 얻은 경우 배열을 분석하고 "letter %"로 시작하는 모든 항목의 기능 중요도 가중치를 요약합니다.


3
합계가 더 많은 레벨을 가진 기능에 이점을 제공하지 않습니까?
user90772

흠, 좋은 지적이다. 어쩌면 그것을 합한 다음 "평균"중요성을 얻기 위해 레벨 / 1 핫 인코딩 변수의 수로 나눕니다.
CalZ

2
나는 이것에 대해 좀 더 생각했고 중요성이 어떻게 평가되는지에 달려 있습니다. 경우에 따라 각 기능의 값은 전체 집합의 총합이 1 인 상대 가중치입니다.이 경우 원-핫 기능을 요약하는 것이 합리적이라고 생각합니다. 지형지 물의 점수가 회귀 계수와 비슷하고 순 효과에 대해 가중치를 적용하지 않으면 평균화가 더 나을 것입니다.
CalZ

답장을 보내 주셔서 감사합니다. 필자가이 분야를 처음 접했을 때 데이터 과학 분야의 사람들에게는 이것이 표준이라고 생각했지만 칼럼의 기능 중요성을 평가하기 위해 내가 해야하는 것이 아니 거나이 게시물이 충분한 견해를 얻지 못했습니다. 어쨌든 감사합니다!
user90772

1
많은 사람들이 모델의 내부를 블랙 박스로보고 성능을 평가한다고 주장합니다. 어떤 경우에는 (예 : 신경망) 실제로 심층 조사 할 수 없기 때문입니다. 어떤 기능이 중요한지 쉽게 볼 수있는 곳 (예 : 선형 회귀)에서는 쉽게 오도 될 수 있습니다 ( stats.stackexchange.com/questions/105114/… 참조 ). 그래서 사람들이 때때로 개인의 기능 중요도를보고 싶어하지 않습니다.
CalZ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.