데이터 사전 처리를 위한 단일 핫 코딩(One-Hot Encoding)

5107 단어
문제의 유래
많은 기계 학습 임무에서 특징은 항상 연속값이 아니라 분류값일 수도 있다.
예를 들어, 다음 세 가지 피쳐를 고려합니다.
["male","female"]
["from Europe","from US","from Asia"]
["uses Firefox","uses Chrome","uses Safari","uses Internet Explorer"]

이러한 피쳐를 숫자로 표시하면 효율성이 훨씬 높아집니다.예를 들면 다음과 같습니다.
["male","from US","uses internet Explorer"]   [0,1,3]
["female","from Asia","uses Chrom"]   [1,2,1]

그러나 디지털 표시로 전환된 후에도 상술한 데이터는 우리의 분류기에 직접 사용할 수 없다.분류기는 기본 데이터가 연속적이고 질서정연하기 때문이다.그러나 우리가 상술한 바와 같이 수조는 질서가 있는 것이 아니라 무작위로 분배된 것이다.
단일 열 코딩
이러한 문제를 해결하기 위해 가능한 해결 방법 중 하나는 One-Hot Encoding(One-Hot Encoding)
독열 인코딩은 One-Hot 인코딩이고 유효 인코딩이라고도 부른다. 그 방법은 N 비트 레지스터를 사용하여 N 개의 상태를 인코딩하는 것이다. 모든 상태는 그가 독립된 저장 비트이고 임의의 경우 그 중 한 개만 유효하다.
예를 들어 위의'성별'특징은 두 가지 가능한 분류가 있는데 그것이 바로male,female이다.그러면 두 자리 인코딩으로 10,01을 표시할 수 있습니다. 한 번에 한 자리만 활성화됩니다.
Europe, US, Asia 등 3가지 범주로 분류할 수 있습니다.그러면 세 자리 인코딩으로 100010001을 표시하고 한 번에 한 자리만 활성화됩니다.
'브라우저 사용'은 네 가지 가능한 분류가 있는데 그것이 바로 Firefox, Chrome, Safari,IE이다. 그러면 4자리 인코딩으로 10000100001, 매번 한 자리만 활성화된다.
예를 들면 다음과 같습니다.
["male","Asia","Safari"],         :[1,0,0,0,1,0,0,1,0]

이렇게 이해할 수 있다. 모든 특징에 대해 만약에 m개의 가능한 값이 있다면 독열 인코딩을 거친 후에 m개원 특징을 프로그래밍했다.또한 이러한 피쳐는 한 번에 한 개만 활성화되어 상호 배타적입니다.따라서 데이터는 희소해진다.
이렇게 하는 장점은 주로 다음과 같다.분류기가 속성 데이터를 처리하기 어려운 문제를 해결하였다
2. 어느 정도 특징을 확충하는 역할을 한다
예를 들다.
from sklearn import preprocessing
enc=preprocessing.OneHotEncoder()
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])
enc.transfrom([[0,1,3]]).toarray()

결과 출력:
array([1, 0,0,1,0,0,0,0,1])

이산형 특징과 연속형 특징이 병존하는 상황을 처리하고 어떻게 귀일화할 것인가
예를 들어 얻은 원시적인 특징은 반드시 각 특징에 대해 각각 귀일화해야 한다. 예를 들어 특징 A의 수치 범위는 [-10001000]이고 특징 B의 수치 범위는 [-1,1]이다.
만약logistic회귀를 사용한다면 w1*x1+w2*x2는 x1의 수치가 너무 커서 x2는 기본적으로 작용하지 못한다.따라서 반드시 특징의 귀일화를 하고 모든 특징을 단독으로 귀일화해야 한다.
연속적 특징 귀일화의 상용 방법: 1.선형 축소 [-1,1]
2. 균일치가 0으로 축소하고 방차는 1이다
 
이산적 특징의 처리 방법: 이산적 특징에 대해 기본적으로 One-Hot 인코딩에 따라 이 이산적 특징에 대한 수치가 얼마나 되는지 몇 차원으로 이 특징을 표시한다.
 
One-Hot 인코딩을 사용하여 이산적 피쳐를 처리하는 이유는 무엇입니까?
1. One-Hot 인코딩을 사용하여 이산적 특징의 수치를 유럽식 공간으로 확장하고 이산적 특징의 특정한 수치는 유럽식 공간의 특정한 점에 대응한다.
2. 이산적 특징을 One-Hot 인코딩을 통해 유럽식 공간에 비추는 이유는 회귀, 분류, 분류 등 기계 학습 알고리즘에서 특징 간 거리의 계산이나 싱크로율 계산이 매우 중요하기 때문이다. 우리가 자주 사용하는 거리와 싱크로율 계산은 모두 유럽식 공간의 싱크로율 계산이고 여현의 싱크로율을 계산하는데 그 기초가 바로 유럽식 공간이다.
3. 이산 특징을 One-Hot 인코딩을 사용하면 특징 간의 거리를 더욱 합리적으로 계산할 수 있다.그러나 특징이 분리되고 One-Hot 인코딩을 하지 않아도 거리를 합리적으로 계산할 수 있다면 One-Hot 인코딩을 할 필요가 없다. 예를 들어 이 분리된 특징은 모두 1000개의 수치가 있는데 우리는 두 그룹으로 나뉘어 각각 400과 600이다. 두 그룹 간의 거리는 적당한 정의가 있고 그룹 내의 거리도 적당한 정의가 있으면 One-Hot 인코딩을 할 필요가 없다.
이산적 특징을 One-Hot 인코딩한 후에 인코딩된 특징은 사실 각 차원의 특징은 연속적 특징으로 볼 수 있고 연속적 특징에 대한 귀일화 방법과 같이 각 차원에 대한 귀일화를 할 수 있다.예를 들어 [-1,1]로 귀일화하거나 균일치는 0이고 방차는 1이다
 
피쳐의 귀일화가 필요하지 않은 경우도 있습니다.
나무를 바탕으로 하는 방법은 특징의 귀일화를 할 필요가 없다. 예를 들어 무작위 삼림,baggin과boosting 등이다. 파라미터를 바탕으로 하는 모델이나 거리를 바탕으로 하는 모델은 모두 특징의 귀일화를 해야 한다.
 
전재 대상:https://www.cnblogs.com/zhibei/p/9578203.html

좋은 웹페이지 즐겨찾기