调用sklearn库实现对乳腺癌数据的分类,采用逻辑回归分类方法,并计算以下性能评价指标:混淆矩阵、准确率、精确率、召回率、F1值、分类报告。
时间: 2023-08-13 09:05:26 浏览: 100
Breast_Cancer_Classification:利用逻辑回归和神经网络模型基于数字化活检图像将乳腺癌肿瘤分类为恶性或良性
好的,以下是实现代码及结果解释:
``` python
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score, classification_report
# 加载乳腺癌数据
data = load_breast_cancer()
X = data.data
y = data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 初始化逻辑回归模型
lr = LogisticRegression()
# 训练模型
lr.fit(X_train, y_train)
# 预测测试集
y_pred = lr.predict(X_test)
# 计算混淆矩阵
cm = confusion_matrix(y_test, y_pred)
print("混淆矩阵:\n", cm)
# 计算准确率
acc = accuracy_score(y_test, y_pred)
print("准确率:", acc)
# 计算精确率
precision = precision_score(y_test, y_pred)
print("精确率:", precision)
# 计算召回率
recall = recall_score(y_test, y_pred)
print("召回率:", recall)
# 计算F1值
f1 = f1_score(y_test, y_pred)
print("F1值:", f1)
# 输出分类报告
report = classification_report(y_test, y_pred)
print("分类报告:\n", report)
```
运行结果:
```
混淆矩阵:
[[38 1]
[ 2 73]]
准确率: 0.9736842105263158
精确率: 0.9864864864864865
召回率: 0.9733333333333334
F1值: 0.9798657718120806
分类报告:
precision recall f1-score support
0 0.95 0.97 0.96 39
1 0.99 0.97 0.98 75
accuracy 0.97 114
macro avg 0.97 0.97 0.97 114
weighted avg 0.97 0.97 0.97 114
```
结果解释:
- 混淆矩阵:真实标签为0的样本有39个,预测正确的有38个,预测错误的有1个;真实标签为1的样本有75个,预测正确的有73个,预测错误的有2个。
- 准确率:模型在测试集上的预测准确率为0.9737。
- 精确率:模型预测为1的样本中,真实为1的比例为0.9865。
- 召回率:真实为1的样本中,模型成功预测出来的比例为0.9733。
- F1值:综合了精确率和召回率的指标,用于评估二分类模型的性能,该模型的F1值为0.9799。
- 分类报告:包括了准确率、精确率、召回率、F1值等指标,以及每个类别的支持样本数、精确率、召回率和F1值。
阅读全文