선형 회귀에 대한 가격 데이터를 준비 중입니다. 내 기능은 요일로만 구성됩니다. 내 목표는 가격이다. 나는 예를 들어 sklearn 4.2.1의 예와 같이 내 데이터의 사전 목록을 만들었습니다. 그래서 데이터 구조는 [{'day': 'friday', 'price': 59}, {'day': 'saturday', 'price': 65}
입니다.Sklearn을 사용하여 요일에 더미 변수 만들기 DictVectorizer
위의 링크마다 sklearn의 DictVectorizer를 사용하여 요일을 더미 코드로 만들고 데이터 구조를 sklearn LinearRegression에 적합한 목록 목록으로 변환했습니다.
vec = DictVectorizer()
vec_fit = vec.fit_transform(my_data).toarray()
데이터를보기 위해 vec_fit를 인쇄하면 아래 출력이 표시됩니다.
[[ 0. 0. 0. ..., 0. 1. 59.]
[ 0. 0. 0. ..., 0. 0. 92.]
[ 1. 0. 0. ..., 0. 0. 92.]
...,
[ 0. 0. 1. ..., 0. 0. 181.]
[ 0. 0. 0. ..., 0. 0. 181.]
[ 0. 1. 0. ..., 0. 0. 181.]]
사람이 설명 할 수 (가) ...,
와 (b) 왜 7 더미 변수는주의 일이 있습니까? 내 예에서는 ...,
이 일요일과 목요일을 처리하는 것으로 보입니다.
내 기능 (sklearn 4.2.1)을 확인하려면 get_feature_names
기능을 사용했습니다.
vec.get_feature_names()
[u'day=Friday', u'day=Monday', u'day=Saturday', u'day=Sunday',
u'day=Thursday', u'day=Tuesday', u'day=Wednesday', 'price']
출력에서 볼 수 있듯이, 모든 요일이 적절하게 표현 된 것 같습니다. 나는 아직도 위의 (a)와 (b)를 혼동하고있다. FYI, 내가 할 때 LinearRegression
나는 단지 6 계수를 얻는다 (나는 7를 기대하고있다, 주마다의 매일 1) 고마워.
좋은 대답 비벡 : –
감사합니다! 게시 후, 그 생각이 내 마음에 터졌다. 하지만 10 개의 기능을 가진 테스트 파일을 만들었고 출력 할 때'..., '없이 10 개 모두에 대해 0 또는 1을 얻었습니다. – vintagedeek
@vintagedeek 테스트 용리스트 또는 numpy 배열을 작성 했습니까 –