2016-08-09 2 views
1

회귀 문제의 차원 감소 기술에는 어떤 것이 있습니까? 필자는 PCA와 Kernel PCA (scikit learn library를 사용하여) 만 알고있는 감독되지 않은 기술들을 시도해 보았지만, 이것들을 사용하여 개선 된 것을 보지 못했습니다. 아마도 이것은 분류 문제에만 적합할까요? 시도 할 수있는 다른 기술은 무엇입니까? 바람직하게는 sklearn으로 구현되는 것들.회귀 문제에 대한 치수/잡음 감소 기술

+0

dimensonality 감소는 결과를 향상시키는 것이 아닙니다. 다음 모델 (회귀 변수)이 상관 관계가있는 입력 등에 의해 산만 해지기에 충분히 약한 경우에만 그렇게 할 것입니다. 결과적으로이 모델은 모델을 만들 때 사용해야하는 것이 아닙니다. 치수가 너무 많습니다 (모델을 변경하지 않으려는 경우). 일반적으로 독립적 인 정보 손실, 차원 감소를 수행하는 대신 강력한 회귀 분석기를 구축해야합니다. – lejlot

+0

데이터 자체가 매우 시끄 럽다면 어떻게해야합니까? –

+0

더 강력한 회귀 분석기를 사용하는 것이 좋습니다. 노이즈를 제거하고 모델을 빌드 **하는 것입니다. 치수 정밀도 감소는 문제를 두 개의 독립적 인 부분으로 분리하므로 더 약합니다. – lejlot

답변

0

이것은 매우 일반적인 질문이며 기술 (또는 그 조합)의 적합성은 실제로 문제의 특성에 달려 있습니다. 일반적으로

, 차원 감소의 몇 가지 범주 (당신이 언급 한 것과 잡담이있다.

  1. 아마도 차원 감소의 가장 단순한 형태는 단지 일부 기능을 사용하는 것입니다,이 경우 우리가 정말 기능 선택에 대해 이야기 (sklearn's module 참조).

  2. 또 다른 방법은 (sklearn's를) 클러스터 및 해당 구성 요소의 집합체로 각 클러스터를 대체하는 것입니다.

  3. 마지막으로 일부 회귀 분석은 l1 형벌 및 볼록 최적화 특성을 사용하여 피쳐의 하위 집합을 동시에 선택합니다. sklearn에서는 the lasso and elastic net을 참조하십시오.

다시 한번 이것은 매우 광범위한 문제입니다. 차원 축소의 하위 집합 인 전체 책과 경연 대회도 기능 선택이 있습니다.

+0

필자는 기능 선택보다는 기능 선택/변형의 라인을 더 많이 생각하고있었습니다 (데이터 세트는 약 20 개의 기능 만 있지만 데이터는 매우 시끄 럽습니다). –

+0

@SimonZhu 그 경우 마음에 떠오르는 유일한 다른 것 sklearn은 [임의의 투영법]입니다 (http://scikit-learn.org/stable/modules/random_projection.html). –

+0

@SimonZhu 또 다른 것은 - 필자가 쓴 것처럼 피쳐 선택은 치수 감소의 특별한 경우입니다. 20이 절대적으로 크거나 작은 수는 중요하지 않습니다. 기능의 하위 집합이 예측 변수에 가장 적합한 가능성이 언제나 있습니다. –

0

@AmiTavory의 답변에 더하기 : PCA 주성분 분석을 사용할 수 있습니다. dimensionality reduction을 수행하지 않으려면 PCA의 고유 벡터 수를 입력 행렬의 크기와 동일하게 유지하십시오. 귀하의 경우 20

결과 출력은 직교 고유 벡터가됩니다. 당신이 추구하는 "변형"은 다음과 같습니다. 벡터는 입력 값을 나타내는 각각의 분산 값에 의해 순위가 매겨집니다.