나는 같은 DataFrame 있습니다. 실제 worker_dicts
에는 더 많은 필드가 있습니다. 바이너리 결과 열에 관심이 있습니다. 내가 처음 일을하려고 무엇SkLearn :</p> <pre><code> text_data worker_dicts outcomes 0 "Some string" {"Sector":"Finance", 0 "State: NJ"} 1 "Another string" {"Sector":"Programming", 1 "State: NY"} </code></pre> <p>그것은 텍스트 정보 및 사전 인 열을 모두 가지고 특징 연합 (EU) 사전 및 텍스트 데이터는
은 조잡하게 그에 다항 NB를 실행 한 후 두 열을 연결, 두 text_data
및 worker_dict
를 결합했다 :
df['stacked_features']=df['text_data'].astype(str)+'_'+df['worker_dicts']
stacked_features = np.array(df['stacked_features'])
outcomes = np.array(df['outcomes'])
text_clf = Pipeline([('vect', TfidfVectorizer(stop_words='english'), ngram_range = (1,3)),
('clf', MultinomialNB())])
text_clf = text_clf.fit(stacked_features, outcomes)
을하지만 아주 나쁜 정확성을 가지고, 나는 피팅이 생각 독립 모델은 두 가지 유형의 피쳐에 하나의 모델을 맞추는 것보다 데이터를 더 잘 사용할 수 있습니다 (스태킹과 같이).
피쳐 유니온을 어떻게 활용할 수 있습니까? worker_dicts
은 사전이기 때문에 좀 이상합니다. 그래서 파싱을 어떻게하는지에 대해 매우 혼란 스럽습니다.
이것은 매우 유익한 대답은 (다른 많은 옵션이 있습니다, 이것은 단지 하나의 방법입니다)! 그 사이에 나는 Pandas를 사용하여 몇 가지 일을 끝내기 시작했다. 첫째, 각각의 'worker_dicts'키 ('Sector','State')를 열로 변환 한 다음, 각 열에 one-hot 인코딩을 사용했다. . 그런 다음 두 열 모두에 대해 단일 핫 인코딩의 출력 인 모든 희소 매트릭스를 쌓았습니다. 'X1'과 'X2'는 각각 '섹터'와 '상태'의 원 핫 인코딩을 포함하는 스택 드문 드문 배열을 나타냅니다. 'X3'는 벡터화 된'text_data' 칼럼을 나타냅니다. – thewhitetie
데이터를 수정하면 (X1, X2, X3) - 제안한 두 가지 방법을 수정하면 되겠습니까? – thewhitetie