기계 학습 모델에서 월 및 시간과 같은 기능을 요소 또는 숫자로 인코딩하는 것이 더 낫습니까?
한편으로, 나는 시간이 앞으로 진행되는 과정이기 때문에 숫자 인코딩이 합리적이라고 생각하지만 (5 개월은 6 개월이 뒤 따름), 반면에 순환 인코딩으로 인해 범주 형 인코딩이 더 합리적이라고 생각합니다 연도 및 일수 (12 번째 달 다음에 첫 번째 달).
이에 대한 일반적인 해결책이나 규칙이 있습니까?
기계 학습 모델에서 월 및 시간과 같은 기능을 요소 또는 숫자로 인코딩하는 것이 더 낫습니까?
한편으로, 나는 시간이 앞으로 진행되는 과정이기 때문에 숫자 인코딩이 합리적이라고 생각하지만 (5 개월은 6 개월이 뒤 따름), 반면에 순환 인코딩으로 인해 범주 형 인코딩이 더 합리적이라고 생각합니다 연도 및 일수 (12 번째 달 다음에 첫 번째 달).
이에 대한 일반적인 해결책이나 규칙이 있습니까?
답변:
시간 변수의 (사인, 코사인) 변환 추가를 고려 했습니까? 이를 통해 예를 들어 0 시간과 23 시간이 서로 가깝게 유지되므로 변수의 주기적 특성이 빛을 발할 수 있습니다.
( 추가 정보 )
대답은 시간 기능과 대상 변수 사이에 나타내려는 관계의 종류에 따라 다릅니다.
시간을 숫자로 인코딩하면 모델에 특정 제한이 적용됩니다. 선형 회귀 모형의 경우 시간의 효과는 이제 단조로워지며 시간이 지남에 따라 대상이 증가 또는 감소합니다. 의사 결정 트리의 경우 서로 가까운 시간 값이 함께 그룹화됩니다.
범주 형 인코딩 시간은 모델에 더 많은 유연성을 제공하지만 경우에 따라 모델에 학습하기에 충분한 데이터가 없을 수도 있습니다. 유용 할 수있는 한 가지 기술은 시간 값을 몇 개의 세트로 그룹화하고 해당 세트를 범주 속성으로 사용하는 것입니다.
일부 그룹화 예 :
충분한 데이터가 주어지면 위의 각 항목을 범주 속성으로 직접 사용할 수도 있습니다. 또한, 그룹 지식은 도메인 지식 기반 접근법을 보완하기 위해 데이터 분석을 통해 발견 될 수도 있습니다.
사용중인 알고리즘에 따라 다릅니다.
임의 포리스트와 같은 트리 기반 알고리즘을 사용하는 경우이 질문을 전달하십시오. 트리 기반 알고리즘에는 범주 형 인코딩이 필요하지 않습니다.
신경망과 같은 다른 알고리즘의 경우 두 가지 방법 (연속 및 범주)을 시도하는 것이 좋습니다. 효과는 상황에 따라 다릅니다.
@raghu가 제공 한 답변 을 바꾸려면 . 범주 형과 숫자 형 특징의 한 가지 주요 차이점은 숫자의 크기가 비슷한 지, 즉 2019가 2018보다 큰지, 12 월 (12)이 3 월 (3)보다 큰지 여부입니다. 실제로는 아닙니다. 이 숫자에는 순차적 인 순서가 있지만 크기는 비교할 수 없습니다. 따라서 범주 형 값으로 변환하는 것이 더 의미가있을 수 있습니다.