请编写python代码解决应用问题:乳腺癌数据集有 569个样本 30个特征,二类类型分良性 benign 357 样本、恶性 ma1ignant 212 样本。 请使用 2 种分类方法(朴素贝叶斯分类器+更高 性能分类器)建立模型判别样本的类另到,依据划分数据集为训练集和测试集,并对比2种方法的性能。 数据集的来源:from skleam.datasets impo it load breast cancer
时间: 2024-02-17 16:59:39 浏览: 87
好的,以下是解决问题的Python代码:
```python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载乳腺癌数据集
data = load_breast_cancer()
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3, random_state=42)
# 建立朴素贝叶斯分类器并训练模型
nb_clf = GaussianNB()
nb_clf.fit(X_train, y_train)
# 使用朴素贝叶斯分类器预测测试集并计算准确率
nb_preds = nb_clf.predict(X_test)
nb_acc = accuracy_score(y_test, nb_preds)
print("朴素贝叶斯分类器的准确率为:", nb_acc)
# 建立更高性能的分类器(SVM)并训练模型
svm_clf = SVC()
svm_clf.fit(X_train, y_train)
# 使用SVM分类器预测测试集并计算准确率
svm_preds = svm_clf.predict(X_test)
svm_acc = accuracy_score(y_test, svm_preds)
print("SVM分类器的准确率为:", svm_acc)
```
这段代码实现了乳腺癌数据集的加载、数据集的划分、朴素贝叶斯分类器和SVM分类器的建立与训练、测试集的预测和准确率的计算。通过比较两种分类器的准确率,可以得出它们的性能差异。
阅读全文