在Python中如何获取多项式朴素贝叶斯的特征权重?
时间: 2024-12-13 14:21:01 浏览: 1
在Python的scikit-learn库中,可以使用`sklearn.naive_bayes.MultinomialNB`或`sklearn.naive_bayes.BernoulliNB`类(针对多项式和伯努利朴素贝叶斯模型)来获取特征的权重。这两个类都内置了`feature_importances_`属性,这个属性会在训练完成后自动计算并返回。
例如,对于多项式朴素贝叶斯:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
# 加载数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
# 训练模型
clf = MultinomialNB()
clf.fit(X_train, y_train)
# 获取特征权重
feature_importances = clf.feature_importances_
```
同样地,对于伯努利朴素贝叶斯(适用于二元数据),方法是一样的:
```python
from sklearn.naive_bayes import BernoulliNB
clf = BernoulliNB()
clf.fit(X_train, y_train)
feature_importances = clf.feature_importances_
```
这里的`feature_importances`就是一个列表,索引对应于输入特征,值表示该特征的重要性分数。
阅读全文