使用高斯朴素贝叶斯判断一个患者的肿瘤是良性还是恶性,数据集采用威斯康星乳腺肿瘤数据集的具体代码
时间: 2024-05-16 11:14:06 浏览: 83
朴素贝叶斯实现邮件分类数据集
以下是使用高斯朴素贝叶斯判断一个患者的肿瘤是良性还是恶性的代码:
```
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 加载数据集
data = pd.read_csv('wdbc.csv')
# 将诊断结果列(M/B)转换成二进制,M(恶性)为1,B(良性)为0
data['diagnosis'] = data['diagnosis'].map({'M': 1, 'B': 0})
# 删除无用的列id和Unnamed
data.drop(['id', 'Unnamed: 32'], axis=1, inplace=True)
# 将数据集分为特征和标签
X = data.iloc[:, 1:]
y = data.iloc[:, 0]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
# 创建高斯朴素贝叶斯分类器
gnb = GaussianNB()
# 训练模型
gnb.fit(X_train, y_train)
# 预测测试集
y_pred = gnb.predict(X_test)
# 计算模型准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
其中,数据集`wdbc.csv`是威斯康星乳腺肿瘤数据集,可以从网上下载。这里使用了`sklearn`库的`GaussianNB`分类器进行分类,同时使用`train_test_split`函数将数据集分为训练集和测试集,并使用`accuracy_score`函数计算模型准确率。
阅读全文