Dictionary에서 Feature 가져오기

Dictionary에서 Feature 가져오기

2018, Dec 23    

Dictionary의 형태의 데이터를 학습할 때 Table형태로 바꿀 필요가 있습니다. 이것을 알아서 해줄 수 있는 것이 있을까요?

물론 있습니다. sklearn을 이용하면 할 수 있습니다.

  • 필요한 라이브러리를 import 합니다.
from sklearn.feature_extraction import DictVectorizer


  • Dictionary를 만들어 보겠습니다.
men = [{'name': 'Kim', 'age': 20},
         {'name': 'Lee', 'age': 40},
         {'name': 'Park', 'age': 50}]


  • Dictionary to Vectorize 객체를 생성합니다.
vec = DictVectorizer()


  • Dictionary를 Vector 타입으로 바꿔 보겠습니다.
vec.fit_transform(men).toarray()
>>>array([[20.,  1.,  0.,  0.],
       [40.,  0.,  1.,  0.],
       [50.,  0.,  0.,  1.]])


오 뭔가 바뀐건 같지요? 나이관련 field도 있는 것 같고 one-hot vector 타입도 생긴것 같습니다. 그러면 각 field가 어떤 의미를 가지는지 알아보겠습니다.

vec.get_feature_names()
>>> ['age', 'name=Kim', 'name=Lee', 'name=Park']


첫 field는 age를 나타내고 나머지는 각 사람의 이름을 one-hot으로 나타낸것을 확인할 수 있습니다.

전체 코드는 다음과 같습니다.

from sklearn.feature_extraction import DictVectorizer

men = [{'name': 'Kim', 'age': 20},
         {'name': 'Lee', 'age': 40},
         {'name': 'Park', 'age': 50}]

vec = DictVectorizer()
vec.fit_transform(men).toarray()

vec.get_feature_names()


도움이 되셨다면 광고 한번 클릭 부탁 드립니다. 꾸벅.