【发布时间】:2017-12-21 23:19:51
【问题描述】:
我有一个像这样的 DataFrame:
text_data worker_dicts outcomes
0 "Some string" {"Sector":"Finance", 0
"State: NJ"}
1 "Another string" {"Sector":"Programming", 1
"State: NY"}
它既有文本信息,又有一个作为字典的列。 (真正的worker_dicts 有更多字段)。我对二元结果列感兴趣。
我最初尝试做的是结合text_data 和worker_dict,粗略地连接两列,然后在其上运行多项式NB:
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)
但我的准确率非常差,我认为拟合两个独立模型比在两种类型的特征上拟合一个模型更好地利用数据(就像我对堆叠所做的那样)。
我将如何使用 Feature Union? worker_dicts 有点奇怪,因为它是一本字典,所以我对如何解析它感到非常困惑。
【问题讨论】:
标签: python-3.x scikit-learn feature-selection