如何使用朴素贝叶斯算法在乳腺癌数据集中进行训练与测试(假设训练集和测试集比例为7:3),同时展示训练过程中的可视化结果?
时间: 2024-11-27 10:18:51 浏览: 10
使用朴素贝叶斯算法在乳腺癌数据集上进行训练和测试,可以按照以下步骤进行:
1. **导入所需库**:
```python
import numpy as np
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report
import matplotlib.pyplot as plt
import seaborn as sns
```
2. **加载数据集**:
```python
data = load_breast_cancer()
X = data.data
y = data.target
```
3. **分割数据**:
```python
test_size = 0.3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=42)
```
4. **创建并训练朴素贝叶斯模型**:
```python
gnb = GaussianNB()
gnb.fit(X_train, y_train)
```
5. **预测并评估**:
```python
y_pred = gnb.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
print(classification_report(y_test, y_pred))
```
6. **训练过程可视化**:由于朴素贝叶斯算法本身不直接提供可视化的训练过程,我们可以展示一些概率估计的直方图或概率密度图。但在这里我们更倾向于查看混淆矩阵,这可以帮助理解模型的表现。
```python
confusion_matrix = confusion_matrix(y_test, y_pred)
sns.heatmap(confusion_matrix, annot=True, fmt="d", cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix for Naive Bayes')
plt.show()
```
以上就是使用朴素贝叶斯算法在乳腺癌数据集上的基本流程,训练过程中不会直接有可视化结果,因为我们关注的是模型的性能指标而非学习过程。
阅读全文