답변:
간단히 말해서 :
특징 추출의 예 : 이미지에서 윤곽선 추출, 텍스트에서 그림 추출, 음성 텍스트 녹음에서 음소 추출 등
형상 추출에는 형상 변환이 포함되는데, 이는 치수 축소 프로세스에서 일부 정보가 손실되기 때문에 되돌릴 수없는 경우가 많습니다.
차원 축소는 일반적으로 데이터 내에서 대부분의 차이를 설명 할 수없는 기본 또는 수학적 표현을 선택하여 관련 정보를 유지하면서이를 나타내는 데 필요한 정보의 양을 줄입니다. 이를 포함하여 이에 제한되지 이러한 작업을 수행하기위한 다양한 기술은 PCA
, ICA
하고 Matrix Feature Factorization
. 기존 데이터를 가져 와서 가장 차별화 된 구성 요소로 줄입니다. 이러한 데이터를 사용하면 데이터 세트에서 대부분의 정보를보다 적은 수의 차별화 된 기능으로 표현할 수 있습니다.
기능 선택은 매우 차별적 인 손 선택 기능입니다. 이는 분석보다 기능 엔지니어링과 더 많은 관련이 있으며 데이터 과학자 측에서 훨씬 더 많은 작업이 필요합니다. 어떤 예측에서 중요하지 않은 데이터 셋의 측면이 중요한지 이해해야합니다. 기능 추출에는 일반적으로 기존 기능의 합성 인 새로운 기능 생성이 포함됩니다. 이 두 기술은 모두 피처 엔지니어링 범주에 속합니다. 데이터 셋에 존재하지 않을 수있는 정보를 생성하고 신호 대 잡음비를 증가시키기 때문에 최상의 결과를 얻으려면 일반적으로 피처 엔지니어링이 중요합니다.
Dimensionality Reduction
조항 만에 조금 다를 Feature Engineering
사용 - 어떻게 내가 본 것은에서 유일한 Feature Extraction
: Feature Selection
개별적으로 간주됩니다. 용어의 차이 일뿐입니다.
@ damienfrancois에서와 같이 답변 선택은 기능의 하위 집합을 선택하는 것입니다. 따라서 NLP에서는 특정 단어 세트를 선택합니다 (NLP에서 일반적으로 각 단어는 단어의 빈도 또는 TF / IDF 또는 이와 유사한 것을 기반으로하는 다른 가중치와 같은 값을 가진 기능을 나타냅니다).
차원 축소는 원래 피처가 표현되는 새로운 피처 공간의 도입입니다. 새 공간은 원래 공간보다 크기가 작습니다. 텍스트의 경우 텍스트 조각이 몇 비트 (16 또는 32) 또는 바이트의 벡터로 축소되는 해싱 트릭 이 있습니다 . 놀라운 점은 공간의 지오메트리가 유지되고 (충분한 비트 수) 문서 간의 상대 거리가 원래 공간과 동일하게 유지되므로 언 바운드 (및 많은 수)를 처리하지 않고도 표준 기계 학습 기술을 배포 할 수 있습니다 of) 치수가 텍스트에 있습니다.
적절한 검토 및 정의를 위해 Feature Extraction Foundations and Applications 책 에서 Dimension Reduction vs. Variable Selection을 살펴보십시오. 특징 추출은 특징 구성 및 특징 선택의 두 단계로 분해됩니다.
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 차원 부분 공간으로 투영합니다. 이들은 새로운 속성입니다. 그것들은 일반적으로 원래의 고차원 공간에서의 분포에 기초합니다. 가장 널리 사용되는 방법은 원래 공간에서 고유 벡터를 계산하는 주성분 분석입니다. 분명히, 우리는 고유 벡터에 기초한 부분 공간에 선형 및 전역 투영만을 사용하는 것으로 제한되지 않는다. 비선형 투영법도 사용할 수 있습니다. 다음은 신경망을 사용하는 비선형 PCA의 예입니다 . 마지막 예의 속성 (치수)이 추출됩니다.신경망을 사용하는 원래 4 가지 속성에서 이 pca 방법 코드를 사용하여 다양한 홍채 데이터 세트 PCA를 실험 할 수 있습니다 .
요약 : 기능 추출 방법이 기능 선택에 비해 성능이 우수 할 수 있지만 선택은 응용 프로그램에 의해 결정됩니다. 지형지 물 추출의 속성은 일반적으로 실제 해석을 잃게되는데 이는 현재 작업에 따라 문제가 될 수도 있고 아닐 수도 있습니다. 예를 들어, 값 비싼 센서로 매우 비싼 데이터 수집 작업을 설계하고 속성 (다른 센서 수)을 절약해야하는 경우 사용 가능한 모든 센서를 사용하여 작은 파일럿 샘플을 수집 한 다음 원하는 센서를 선택 해야합니다. 빅 데이터 수집 작업에 가장 유용한 정보입니다.
scikit-learn & Tensorflow로 실습 머신 러닝에서 추출
여기 @damienfrancois의 답변에 대한 몇 가지 훌륭한 답변은 일반적인 아이디어를 간결하게 포착합니다.
그러나 관계형 또는 시계열 데이터에 대한 기능 엔지니어링의 예는 보이지 않습니다. 이 경우 데이터 과학자는 일반적으로 관계와 시간에 따른 통계 패턴을 추출합니다. 예를 들어, 전자 상거래 데이터베이스에서 고객이 앞으로 무엇을할지 예측하기 위해 평균 과거 구매 금액 또는 이전 구매 빈도와 같은 수량을 추출 할 수 있습니다.
나는이 주제에 대해 몇 가지 예를 들어 훨씬 더 자세히 설명하는 글을 썼습니다 : https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/
피쳐 추출과 피쳐 선택 및 치수 축소가 필요한 이유를 역순으로 시작하겠습니다.
주로 분류 목적을위한 특징 추출의 사용으로 시작합니다. 분류는 특정 범주에 속하는 개체를 결정하는 프로세스입니다. 여기에는 두 가지 단계가 있습니다. i) 훈련 단계. 데이터 또는 개체가 주어진 일부 프로세스 (기능 추출)를 사용하여 속성을 학습합니다. ii) 테스트 단계. 미지의 개체는 이전 (트레이닝) 단계에서 학습 한 기능을 사용하여 분류됩니다.
데이터 목표가 주어진 이름에서 알 수 있듯이 피쳐 추출 은 기본 패턴을 찾는 것입니다. 이 기본 패턴은 해당 데이터에 해당하는 기능이라고합니다. SVM (Support Vector Machine)과 같은 기능 추출을위한 다양한 방법이 있습니다.
이제 기능 추출은 다음과 같은 기능을 생성해야합니다.
기능 선택 : 특정 데이터 집합은 단일 기능 또는 기능 집합으로 나타낼 수 있습니다. 분류 과정에서 시스템은 최소한 두 개의 클래스로 훈련됩니다. 따라서 교육 시스템은 단일 기능 또는 기능 집합을 생성합니다. 이러한 기능에는 위에서 언급 한 속성이 있어야합니다.
각 클래스마다 기능 세트가 있고 일부 기능간에 상관 관계가있는 경우 문제점이 발생합니다. 이는 상관 특징들 중 하나 또는 소수가 표현하기에 충분하고 특징 선택이 사진에 나오는 곳을 의미한다. 또한, 이러한 기능은 기능 세트 메모리 요구 사항이 증가함에 따라 저장되어야합니다.
그런 다음 피처 선택 프로세스의 일부에 불과한 차원 축소 기능이 제공됩니다. 데이터를 가장 잘 설명하는 최적의 기능 세트를 선택하는 프로세스입니다. 주요 성분 분석, 독립 성분 분석 및 행렬 분해 등의 기법에는 여러 가지가 있습니다.