我希望使用sklearn对文本进行分类。首先,我使用词袋模型来训练数据,但是词袋模型的特征非常多,超过了10000个特征,因此我使用SVD将这些特征减少到100个。
但是现在我想添加一些其他特征,比如单词数、正面单词数、代词数等。这些额外的特征只有10个,与词袋模型的100个特征相比,显得非常小。
基于这种情况,我提出了两个问题:
- 是否有sklearn中的某个函数可以改变额外特征的权重,使它们更加重要?
- 如何检查额外特征对分类器的重要性?
我希望使用sklearn对文本进行分类。首先,我使用词袋模型来训练数据,但是词袋模型的特征非常多,超过了10000个特征,因此我使用SVD将这些特征减少到100个。
但是现在我想添加一些其他特征,比如单词数、正面单词数、代词数等。这些额外的特征只有10个,与词袋模型的100个特征相比,显得非常小。
基于这种情况,我提出了两个问题:
model.feature_importances_
访问特征重要性。import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns # (optional)
def showFeatureImportance(model):
#FEATURE IMPORTANCE
# Get Feature Importance from the classifier
feature_importance = model.feature_importances_
# Normalize The Features
feature_importance = 100.0 * (feature_importance / Feature_importance.max())
sorted_idx = np.argsort(feature_importance)
pos = np.arange(sorted_idx.shape[0]) + .5
#plot relative feature importance
plt.figure(figsize=(12, 12))
plt.barh(pos, feature_importance[sorted_idx], align='center', color='#7A68A6')
plt.yticks(pos, np.asanyarray(X_cols)[sorted_idx])
plt.xlabel('Relative Importance')
plt.title('Feature Importance')
plt.show()