python朴素贝叶斯分类MNIST数据集
时间: 2023-09-03 12:12:00 浏览: 144
在Python中,可以使用scikit-learn库来实现朴素贝叶斯分类器,并且该库已经内置了MNIST数据集。下面是一个简单的示例代码:
```python
from sklearn.datasets import fetch_openml
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 加载MNIST数据集
mnist = fetch_openml('mnist_784')
X, y = mnist.data, mnist.target
# 划分训练集和测试集
train_size = 60000
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 训练朴素贝叶斯分类器
clf = GaussianNB()
clf.fit(X_train, y_train)
# 对测试集进行预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```
首先,我们使用`fetch_openml`函数加载MNIST数据集。该函数返回一个字典,其中包含数据和标签。我们将数据存储在X变量中,将标签存储在y变量中。
然后,我们将数据集划分为训练集和测试集。在这个例子中,我们将前60000个样本作为训练集,其余的作为测试集。
接下来,我们创建一个`GaussianNB`对象,它是一个高斯朴素贝叶斯分类器。我们使用训练集来训练分类器。
一旦分类器训练完成,我们使用测试集来评估模型的性能。我们使用`predict`方法来预测测试集中每个样本的类别,并将预测结果存储在`y_pred`变量中。
最后,我们使用`accuracy_score`函数计算预测准确率,并将结果打印出来。注意,在这个例子中,我们使用了高斯朴素贝叶斯分类器,如果你想使用其他类型的朴素贝叶斯分类器,可以在`sklearn.naive_bayes`模块中找到它们。
阅读全文