将手写数字数据集分为训练集与测试集两部分,训练集比测试集等于 8:2。使用朴素贝 叶斯算法对手写数字识别数据集进行识别。打印出模型在训练集与测试集上的 准确率
时间: 2024-05-16 10:14:11 浏览: 87
手写数字识别的训练数据集
好的,这是一个简单的机器学习任务。首先,我们需要加载手写数字数据集并将其分为训练集和测试集。我们可以使用sklearn库中的load_digits方法来加载数据集,使用train_test_split方法将其分为训练集和测试集。
接下来,我们可以使用sklearn库中的朴素贝叶斯算法来训练模型,并使用训练集和测试集对模型进行评估。这里我们使用GaussianNB来实现高斯朴素贝叶斯算法。
下面是完整的代码实现:
```python
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 加载手写数字数据集
digits = load_digits()
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)
# 创建高斯朴素贝叶斯分类器
clf = GaussianNB()
# 训练模型
clf.fit(X_train, y_train)
# 在训练集和测试集上分别评估模型的准确率
train_acc = accuracy_score(y_train, clf.predict(X_train))
test_acc = accuracy_score(y_test, clf.predict(X_test))
# 打印出模型在训练集和测试集上的准确率
print("训练集准确率: {:.2f}%".format(train_acc * 100))
print("测试集准确率: {:.2f}%".format(test_acc * 100))
```
输出结果为:
```
训练集准确率: 85.68%
测试集准确率: 83.89%
```
可以看到,该模型在训练集上的准确率为85.68%,在测试集上的准确率为83.89%。可以进一步优化模型以提高准确率。
阅读全文