제4회 Google Colaboratory로 시작하는 기계 학습을 위한 특징량 엔지니어링 - 교호작용 특징량

소개



본 기사에서는 교호작용 특징량에 대해 설명하고 있습니다. 본 기사는 주로 「 기계 학습을 위한 특징량 엔지니어링

※본 기사에서 해설하는 프로그램은 모두 여기 에 있습니다.

교호작용 특징량이란?



복수의 특징량을 곱하여 새로운 특징량을 만드는 방법입니다. 이 중에서 특히 2개의 특징량을 조합하는 것을 페어와이즈 교호작용 특징량이라고 부릅니다. 또, 특징량이 2치인 경우는 논리적이 됩니다.
예를 들면 특징량으로서 지역과 연령층이 있는 경우에, 지역과 연령층을 곱하는 것으로 「20대」와 「도쿄 거주」의 정보로부터 「도쿄 거주의 20대」라고 하는 목적 변수를 보다 표현할 수 있는 정보를 만들 수 있습니다.

그러나 단점으로 학습 비용이 증가하고 불필요한 특징을 만들 수 있습니다. 이 학습비용의 증가와 불필요한 특징량의 문제는 특징량 선택을 함으로써 해결할 수 있다.

예를 들면 다음과 같은 특징량 데이터가 있다고 합니다.



이 데이터에 대해 교호작용 특징량을 작성하면 다음과 같은 데이터 세트가 작성되었습니다.



다음은 실제로 교호작용 특징을 구현하는 샘플 코드를 보여줍니다.
import numpy as np
import pandas as pd
import sklearn.preprocessing as preproc

##乱数固定
np.random.seed(100)

data_array1 = []
for i in range(1, 100):
  s = np.random.randint(0, i * 10, 10)
  data_array1.extend(s)


##乱数固定
np.random.seed(20)

data_array2 = []
for i in range(1, 100):
  s = np.random.randint(0, i * 10, 10)
  data_array2.extend(s)

data = pd.DataFrame({'A': data_array1, 'B': data_array2})

## 交互作用特徴量
data2 = pd.DataFrame(preproc.PolynomialFeatures(include_bias=False).fit_transform(data))
## interaction_only=Trueとすることで自身の値の二乗を除くことができます
# data2 = preproc.PolynomialFeatures(include_bias=False, interaction_only=True).fit_transform(data)


마지막으로



YouTube에서 IT 관련 동영상을 올리려고 합니다.
Youtube와 Qiita 갱신의 동기 부여에 연결되기 때문에, 좋아, 채널 등록, 고평가를 잘 부탁드립니다.
YouTube : htps //w w. 요츠베. 코 m / 찬 l / 우 Cywlrxt0 dJGYtDBPW-ぺg
트위터 : htps : // 라고 해서 r. 코 m / 갓

좋은 웹페이지 즐겨찾기