【发布时间】:2021-12-08 17:23:23
【问题描述】:
我需要使用词袋 (BOW) 生成的特征,以及随机森林模型中的额外特征(例如 Grp 和评分)。
-
由于 BOW 是一个稀疏矩阵,我如何添加额外的特征来创建一个新的稀疏矩阵?目前,我将稀疏矩阵转换为密集矩阵并连接额外的特征来创建一个df(例如df 2)。有没有办法将额外的特征添加到 BOW 稀疏矩阵中?
-
如果我们使用稀疏矩阵作为 X 训练,我如何识别具有特征重要性的项目?目前我使用的是df2的列。
谢谢
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.ensemble import RandomForestClassifier
bards_words =["The fool doth think he is wise,",
"man fool"]
vect = CountVectorizer()
bow=vect.fit_transform(bards_words)
vocab=vect.vocabulary_
new_vocab = dict([(value, key) for key, value in vocab.items()])
df0 = pd.DataFrame(bow.toarray())
df0.rename(columns=new_vocab , inplace=True)
df1 = pd.DataFrame({'Grp': ['3' , '10'],
'Rating': ['1', '2']
})
df2=pd.concat([df0, df1], axis=1)
X_train=df2.values
forest = RandomForestClassifier(n_estimators = 500, random_state=0)
forest = forest.fit(X_train, y_train)
feature_importances = pd.DataFrame(forest.feature_importances_, index = df2.columns, columns=['importance']).sort_values('importance', ascending=False)
【问题讨论】:
标签: python random-forest