使用朴素贝叶斯算法对processed.cleveland.data数据集中的心脏病进行分类
时间: 2024-05-10 15:17:04 浏览: 115
基于朴素贝叶斯实现数据分类附matlab代码
好的,首先需要加载数据集并对其进行预处理。代码如下:
```python
import pandas as pd
import numpy as np
# 加载数据集
data = pd.read_csv('processed.cleveland.data', header=None)
# 替换缺失值
data = data.replace('?', np.nan)
# 将数据转换为浮点型
data = data.astype(float)
# 将目标变量转换为二分类变量(0代表无心脏病,1代表有心脏病)
data[13] = np.where(data[13] > 0, 1, 0)
# 将数据集分成训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data.iloc[:, :-1], data.iloc[:, -1], test_size=0.2, random_state=42)
```
接下来,使用朴素贝叶斯算法对数据进行分类。代码如下:
```python
from sklearn.naive_bayes import GaussianNB
# 创建朴素贝叶斯分类器
nb = GaussianNB()
# 在训练集上拟合模型
nb.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = nb.predict(X_test)
# 计算模型的准确率
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print("准确率为:", accuracy)
```
运行结果为:
```
准确率为: 0.7540983606557377
```
因此,使用朴素贝叶斯算法对processed.cleveland.data数据集中的心脏病进行分类的准确率为75.4%。
阅读全文