使用sk-learn中的朴素贝叶斯算法对手写数字数据集进行分类
时间: 2024-11-29 07:36:18 浏览: 0
基于sk-learn实现机器学习算法源码(包含手写数字识别+SVM+决策树+集成学习+模型训练).zip
5星 · 资源好评率100%
在Python的sklearn库中,朴素贝叶斯(Naive Bayes)是一种常用的机器学习算法,特别适合文本分类任务,但也可以用于其他类型的分类,比如图像分类。对于手写数字数据集(如MNIST),你可以按照以下步骤使用朴素贝叶斯:
1. **导入必要的库**:
```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
```
2. **加载数据**:
```python
digits = load_digits()
X = digits.data # 特征矩阵
y = digits.target # 类别标签
```
3. **数据预处理**(如果需要),例如标准化数值特征:
```python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
4. **划分训练集和测试集**:
```python
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
```
5. **创建并训练模型**:
```python
model = GaussianNB() # 使用高斯朴素贝叶斯
model.fit(X_train, y_train)
```
6. **预测和评估**:
```python
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```
阅读全文