最重要的特征高斯朴素贝叶斯分类器python sklearn

LN_*_*N_P 5 python classification feature-selection scikit-learn naivebayes

我正在尝试为我的GaussianNB模型获得最重要的功能。这里的代码如何获得scikit-learn分类器的大多数信息功能? 还是在这里如何获得scikit-learn分类器针对不同类别的大多数信息功能?仅在我使用MultinomialNB时有效。否则,如何为我的两个类(故障= 1或故障= 0)中的每一个计算或检索最重要的特征?我的代码是:(不适用于文本数据)

df = df.toPandas()

X = X_df.values
Y = df['FAULT'].values.reshape(-1,1)


gnb = GaussianNB() 
y_pred = gnb.fit(X, Y).predict(X)

print(confusion_matrix(Y, y_pred))
print(accuracy_score(Y, y_pred))
Run Code Online (Sandbox Code Playgroud)

其中X_df是一个数据框,其中包含我的每个功能的二进制列。

Raj*_*ram 1

这就是我试图理解高斯NB的重要特征的方式。SKlearn Gaussian NB 模型,包含参数 theta 和 sigma,它们是每个类每个特征的方差和平均值(例如:如果是二元分类问题,那么 model.sigma_ 将返回两个数组和每个类每个特征的平均值) 。

neg = model.theta_[0].argsort()
print(np.take(count_vect.get_feature_names(), neg[:10]))

print('')

neg = model.sigma_[0].argsort()
print(np.take(count_vect.get_feature_names(), neg[:10]))
Run Code Online (Sandbox Code Playgroud)

这就是我尝试使用 scikit-learn 库中的高斯朴素贝叶斯来获取该类的重要特征的方法。

  • 您介意详细说明 theta 和 sigma 与特征重要性的关系吗? (3认同)