차원 축소 란 무엇입니까? 기능 선택과 추출의 차이점은 무엇입니까?


58

위키 백과에서

차원 축소 또는 차원 축소는 고려중인 랜덤 변수의 수를 줄이는 프로세스이며 기능 선택과 기능 추출로 나눌 수 있습니다.

기능 선택과 기능 추출의 차이점은 무엇입니까?

자연어 처리 작업에서 차원 축소의 예는 무엇입니까?

답변:


51

간단히 말해서 :

  • 기능 선택 : 원래 기능 세트의 서브 세트를 선택합니다. 동안
  • 기능 추출 : 원래 기능 세트에서 새로운 기능 세트를 빌드합니다.

특징 추출의 예 : 이미지에서 윤곽선 추출, 텍스트에서 그림 추출, 음성 텍스트 녹음에서 음소 추출 등

형상 추출에는 형상 변환이 포함되는데, 이는 치수 축소 프로세스에서 일부 정보가 손실되기 때문에 되돌릴 수없는 경우가 많습니다.


2
이 두 가지 모두 수동으로 피처를 생성하거나 선택하는 것과 관련하여 피처 엔지니어링 범주에 속합니다. 차수 감소는 일반적으로 기준의 변화 또는 데이터의 다른 수학적 재 표현을 포함
ragingSloth

1
@ragingSloth, 첫 번째 기능은 기능 선택이 아니라 기능 선택이라고 생각합니다. 이미지와 텍스트 처리 예는 참으로 기능 공학 것으로 보이지만
알렉세이 Grigorev

내가 찾은 방식으로, 일부 피쳐 추출의 경우에도 원래 치수를 대략 재구성 할 수 있습니다. 그러나 형상 선택의 경우 쓸모없는 치수를 제거 했으므로 재구성이 없습니다.

16

차원 축소는 일반적으로 데이터 내에서 대부분의 차이를 설명 할 수없는 기본 또는 수학적 표현을 선택하여 관련 정보를 유지하면서이를 나타내는 데 필요한 정보의 양을 줄입니다. 이를 포함하여 이에 제한되지 이러한 작업을 수행하기위한 다양한 기술은 PCA, ICA하고 Matrix Feature Factorization. 기존 데이터를 가져 와서 가장 차별화 된 구성 요소로 줄입니다. 이러한 데이터를 사용하면 데이터 세트에서 대부분의 정보를보다 적은 수의 차별화 된 기능으로 표현할 수 있습니다.

기능 선택은 매우 차별적 인 손 선택 기능입니다. 이는 분석보다 기능 엔지니어링과 더 많은 관련이 있으며 데이터 과학자 측에서 훨씬 더 많은 작업이 필요합니다. 어떤 예측에서 중요하지 않은 데이터 셋의 측면이 중요한지 이해해야합니다. 기능 추출에는 일반적으로 기존 기능의 합성 인 새로운 기능 생성이 포함됩니다. 이 두 기술은 모두 피처 엔지니어링 범주에 속합니다. 데이터 셋에 존재하지 않을 수있는 정보를 생성하고 신호 대 잡음비를 증가시키기 때문에 최상의 결과를 얻으려면 일반적으로 피처 엔지니어링이 중요합니다.


2
대부분 정확성에 동의합니다. 기능 선택은 수동으로 수행 할 필요가 없으며 자동으로 수행 할 수 있습니다. 예를 들어 Lasso 메소드 ( en.wikipedia.org/wiki/Least_squares#Lasso_method )를 참조하십시오 .
jrouquie

나는 당신의 동의 Dimensionality Reduction조항 만에 조금 다를 Feature Engineering사용 - 어떻게 내가 본 것은에서 유일한 Feature Extraction : Feature Selection개별적으로 간주됩니다. 용어의 차이 일뿐입니다.
javadba

7

@ damienfrancois에서와 같이 답변 선택은 기능의 하위 집합을 선택하는 것입니다. 따라서 NLP에서는 특정 단어 세트를 선택합니다 (NLP에서 일반적으로 각 단어는 단어의 빈도 또는 TF / IDF 또는 이와 유사한 것을 기반으로하는 다른 가중치와 같은 값을 가진 기능을 나타냅니다).

차원 축소는 원래 피처가 표현되는 새로운 피처 공간의 도입입니다. 새 공간은 원래 공간보다 크기가 작습니다. 텍스트의 경우 텍스트 조각이 몇 비트 (16 또는 32) 또는 바이트의 벡터로 축소되는 해싱 트릭 이 있습니다 . 놀라운 점은 공간의 지오메트리가 유지되고 (충분한 비트 수) 문서 간의 상대 거리가 원래 공간과 동일하게 유지되므로 언 바운드 (및 많은 수)를 처리하지 않고도 표준 기계 학습 기술을 배포 할 수 있습니다 of) 치수가 텍스트에 있습니다.


5

특징 선택은 통계적 점수에 기초하여 특징 중 일부를 선택하는 것에 관한 것이지만, 특징 추출은 푸리에 변환 (Fourier transform)을 사용하여 신호의 흥미로운 주파수와 같은 데이터로부터 일부 제 2 계층 정보를 추출하는 기술을 사용하고있다.

[x1,...,xn]


이 내가 여러 데이터 과학 및 ML 플랫폼 팀에서 무엇을 본 적이 한 가장 일치 사용할 수있는 답변 중
javadba

3

Damien의 답변을 완성하기 위해 NLP의 차원 축소 예는 주제 모델 이며, 여기서 구성 주제의 가중치를 나타내는 벡터로 문서를 나타냅니다.



2

A1. 차원 축소 란 무엇입니까? 행이 인스턴스이고 열이 속성 (또는 특징) 인 행렬의 데이터를 생각하면 차원 축소는이 데이터 행렬을 더 적은 열을 가진 새 행렬에 매핑합니다. 시각화를 위해 각 행렬 열 (속성)을 피처 공간의 차원으로 생각하면 차원 감소는 더 높은 차원 공간 (더 많은 열)에서 더 낮은 차원의 하위 공간 (더 적은 열)으로 인스턴스를 투영하는 것입니다. 차원 축소는 부분 공간 투영입니다 이 변환의 일반적인 목표는 (1) 계산 복잡성을 줄이면서 데이터 매트릭스에 정보를 보존하는 것입니다. (2) 데이터에서 다른 클래스의 분리 성을 향상시킵니다.

A2. 특징 선택 또는 특징 추출로서 차원 축소 : 유비쿼터스 아이리스 데이터 셋을 사용할 것인데, 이는 데이터 과학의 'hello world'일 것입니다. 간단히 말해, Iris 데이터 셋에는 3 개의 클래스와 4 개의 속성 (열)이 있습니다. Iris 데이터 셋 차원을 4에서 2로 줄이는 작업을위한 기능 선택 및 추출에 대해 설명하겠습니다.

seaborn이라는 Python의 라이브러리를 사용 하여이 데이터 세트의 페어 단위 공분산을 계산합니다. 코드는 다음과 같습니다 : sns.pairplot (iris, hue = "species", markers = [ "o", "s", "D"]) 내가 얻는 그림 은 제공하는 속성 쌍 (2 차원)을 선택할아이리스 페어 플롯 수 있다는 것입니다 나는 아이리스 데이터 셋에서 3 개의 클래스 (종) 사이의 가장 큰 분리입니다. 기능 선택의 경우입니다.

다음은 기능 추출입니다. 여기서는 Iris의 4 차원 피처 공간을 원래의 공간과 축이 정렬되지 않은 새로운 2 차원 부분 공간으로 투영합니다. 이들은 새로운 속성입니다. 그것들은 일반적으로 원래의 고차원 공간에서의 분포에 기초합니다. 가장 널리 사용되는 방법은 원래 공간에서 고유 벡터를 계산하는 주성분 분석입니다. SVD를 사용한 PCA 분명히, 우리는 고유 벡터에 기초한 부분 공간에 선형 및 전역 투영만을 사용하는 것으로 제한되지 않는다. 비선형 투영법도 사용할 수 있습니다. 다음은 신경망을 사용하는 비선형 PCA의 예입니다 NN을 사용한 비선형 PCA . 마지막 예의 속성 (치수)이 추출됩니다.신경망을 사용하는 원래 4 가지 속성에서 이 pca 방법 코드를 사용하여 다양한 홍채 데이터 세트 PCA를 실험 할 수 있습니다 .

요약 : 기능 추출 방법이 기능 선택에 비해 성능이 우수 할 수 있지만 선택은 응용 프로그램에 의해 결정됩니다. 지형지 물 추출의 속성은 일반적으로 실제 해석을 잃게되는데 이는 현재 작업에 따라 문제가 될 수도 있고 아닐 수도 있습니다. 예를 들어, 값 비싼 센서로 매우 비싼 데이터 수집 작업을 설계하고 속성 (다른 센서 수)을 절약해야하는 경우 사용 가능한 모든 센서를 사용하여 작은 파일럿 샘플을 수집 한 다음 원하는 센서를 선택 해야합니다. 빅 데이터 수집 작업에 가장 유용한 정보입니다.


1

scikit-learn & Tensorflow로 실습 머신 러닝에서 추출

  1. 데이터 정리 : 특이 치를 수정하거나 제거합니다 (선택 사항). 결 측값을 채우거나 (예 : 0, 평균, 중앙값…) 행 (또는 열)을 삭제하십시오.
  2. 기능 선택 (선택 사항) : 작업에 유용한 정보를 제공하지 않는 속성을 삭제하십시오.
  3. 적절한 경우 기능 엔지니어링 : 연속 기능을 분리합니다. 기능을 분해합니다 (예 : 범주, 날짜 / 시간 등). 유망한 기능 변환을 추가하십시오 (예 : log (x), sqrt (x), x ^ 2 등). 기능을 유망한 새 기능으로 집계하십시오.
  4. 기능 스케일링 : 기능을 표준화 또는 표준화합니다.

0

여기 @damienfrancois의 답변에 대한 몇 가지 훌륭한 답변은 일반적인 아이디어를 간결하게 포착합니다.

그러나 관계형 또는 시계열 데이터에 대한 기능 엔지니어링의 예는 보이지 않습니다. 이 경우 데이터 과학자는 일반적으로 관계와 시간에 따른 통계 패턴을 추출합니다. 예를 들어, 전자 상거래 데이터베이스에서 고객이 앞으로 무엇을할지 예측하기 위해 평균 과거 구매 금액 또는 이전 구매 빈도와 같은 수량을 추출 할 수 있습니다.

나는이 주제에 대해 몇 가지 예를 들어 훨씬 더 자세히 설명하는 글을 썼습니다 : https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

피쳐 추출과 피쳐 선택 및 치수 축소가 필요한 이유를 역순으로 시작하겠습니다.

주로 분류 목적을위한 특징 추출의 사용으로 시작합니다. 분류는 특정 범주에 속하는 개체를 결정하는 프로세스입니다. 여기에는 두 가지 단계가 있습니다. i) 훈련 단계. 데이터 또는 개체가 주어진 일부 프로세스 (기능 추출)를 사용하여 속성을 학습합니다. ii) 테스트 단계. 미지의 개체는 이전 (트레이닝) 단계에서 학습 한 기능을 사용하여 분류됩니다.

데이터 목표가 주어진 이름에서 알 수 있듯이 피쳐 추출 은 기본 패턴을 찾는 것입니다. 이 기본 패턴은 해당 데이터에 해당하는 기능이라고합니다. SVM (Support Vector Machine)과 같은 기능 추출을위한 다양한 방법이 있습니다.

이제 기능 추출은 다음과 같은 기능을 생성해야합니다.

  • 건장한
  • 차별적 인
  • 최적의 기능 세트

기능 선택 : 특정 데이터 집합은 단일 기능 또는 기능 집합으로 나타낼 수 있습니다. 분류 과정에서 시스템은 최소한 두 개의 클래스로 훈련됩니다. 따라서 교육 시스템은 단일 기능 또는 기능 집합을 생성합니다. 이러한 기능에는 위에서 언급 한 속성이 있어야합니다.

각 클래스마다 기능 세트가 있고 일부 기능간에 상관 관계가있는 경우 문제점이 발생합니다. 이는 상관 특징들 중 하나 또는 소수가 표현하기에 충분하고 특징 선택이 사진에 나오는 곳을 의미한다. 또한, 이러한 기능은 기능 세트 메모리 요구 사항이 증가함에 따라 저장되어야합니다.

그런 다음 피처 선택 프로세스의 일부에 불과한 차원 축소 기능이 제공됩니다. 데이터를 가장 잘 설명하는 최적의 기능 세트를 선택하는 프로세스입니다. 주요 성분 분석, 독립 성분 분석 및 행렬 분해 등의 기법에는 여러 가지가 있습니다.


-3

예를 들어 ... 농지가있는 경우 해당 토지의 특정 지역을 선택하면 지형지 물 선택이됩니다. 해당 지역에서 영향을받는 식물을 찾으려면 공통된 특정 지형지 물을 기준으로 각 식물을 관찰해야합니다. 각 식물에서 이상을 발견하기 위해 ...이 u는 특징 추출을 고려할 것입니다.이 예에서 원래 농업 토지는 차원 축소에 해당합니다.


아니요, 특히 공간 데이터와 관련이 없습니다. 시간적, 시공간적 및 기타 종류의 데이터에도 적용 가능합니다.
Emre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.