특성 교차는 두 개 이상의 입력 특성을 곱하여 특성 공간에서 비선형성을 인코딩하는 합성 특성이다. 교차라는 용어는 교차 곱에서 따온 것으로 과 를 교차하여 이라는 특성 교차를 만들어 보겠다.
새로 만든 특성 교차는 다른 특성과 마찬가지로 취급하며 선형 수식은 다음과 같다.
선형 알고리즘에서 및 와 마찬가지로 의 가중치를 학습할 수 있다. 다시 말해 이 비선형 정보를 인코딩해도 그 값을 결정하기 위해 선형 모델의 학습 방식을 변경하지 않아도 됨을 의미한다.
여러 종류의 특성 교차를 만들 수 있으며 그 예는 다음과 같다.
확률적 경사하강법을 활용하여 선형 모델을 효율적으로 학습시킬 수 있다. 결과적으로 예전부터 조정된 선형 모델을 특성 교차로 보완하는 방법으로 모델을 대규모 데이터 세트에 효율적으로 학습시켜 왔다.
이제까지는 별개의 두 부동 소수점 특성의 특성 교차에 초점을 맞추었다. 그러나 실제로 머신러닝 모델에서 연속 특성을 교차하는 경우는 거의 없다. 하지만 원-핫 특성 벡터를 교차하는 경우는 많다.
원-핫 특성 벡터의 특성 교차는 논리적 결합이라고 생각하면 쉽다. 예를 들어 국가와 언어, 두 특성이 있다고 가정합니다. 각 특성을 원-핫 인코딩하면 country=USA, country=France 또는 language=English, language=Spanish로 해석할 수 있는 이진 특성이 포함된 벡터가 생성되고, 그런 다음 이러한 원-핫 인코딩의 특성을 교차하면 다음과 같이 논리적 결합으로 해석할 수 있는 이진 특성이 생성된다.
country:usa AND language:spanish
다른 예로 위도와 경도를 비닝하여 다섯 개의 요소로 구성된 별도의 원-핫 특성 벡터를 만든다고 가정한다. 예를 들어 지정된 위도와 경도는 다음과 같이 나타낼 수 있다.
binned_latitude = [0, 0, 0, 1, 0]
binned_longitude = [0, 1, 0, 0, 0]
이 두 특성 벡터의 특성 교차를 만든다고 가정한다.
binned_latitude X binned_longitude
이 특성 교차는 25개의 요소로 구성된 원-핫 벡터입니다(24개의 0과 1개의 1). 교차에 있는 1개의 1은 위도와 경도의 특정 결합을 나타냅니다. 그런 다음 모델에서 해당 결합의 특정 연결을 학습할 수 있습니다.
위도와 경도를 다음과 같이 훨씬 더 넓은 간격으로 비닝한다고 가정한다.
binned_latitude(lat) = [
0 < lat <= 10
10 < lat <= 20
20 < lat <= 30
]
binned_longitude(lon) = [
0 < lon <= 15
15 < lon <= 30
]
이 간격이 넓은 빈의 교차 특성을 만들면 다음과 같은 의미의 합성 특성이 생성된다.
binned_latitude_X_longitude(lat, lon) = [
0 < lat <= 10 AND 0 < lon <= 15
0 < lat <= 10 AND 15 < lon <= 30
10 < lat <= 20 AND 0 < lon <= 15
10 < lat <= 20 AND 15 < lon <= 30
20 < lat <= 30 AND 0 < lon <= 15
20 < lat <= 30 AND 15 < lon <= 30
]
이제 모델에서 두 특성을 기반으로 개 주인이 개에 만족하는 정도를 예측해야 한다고 가정한다.
두 특성의 특성 교차를 만들면
[behavior type X time of day]
특성 하나만 사용하는 경우보다 훨씬 더 효과적으로 예측할 수 있다. 예를 들어 주인이 퇴근하는 오후 5시에 개가 (기쁘게) 울면 주인이 아주 만족할 것이라고 예측할 수 있다. 주인이 깊이 잠든 오전 3시에 (아마도 구슬프게) 울면 주인이 아주 만족하지 못할 것이라고 예측할 수 있다.
선형 학습자는 대량의 데이터에 적합하게 확장된다. 대량의 데이터에 특성 교차를 사용하면 매우 복잡한 모델을 효율적으로 학습할 수 있으며 신경망을 통해 다른 전략을 사용할 수도 있다.
.
.
.
실습 링크 : 구글 머신러닝 단기집중과정