统计
  • 文章总数:13 篇
  • 评论总数:0 条
  • 分类总数:3 个
  • 最后更新:4月14日

乳腺癌数据集逻辑回归实现

本文阅读 5 分钟
首页 投稿 正文
暂无AI摘要
摘要由智能技术生成

乳腺癌数据集逻辑回归实现

实验概述

本实验旨在使用逻辑回归模型对乳腺癌数据集进行分类,并评估模型的性能。乳腺癌是一种常见的恶性肿瘤,准确的分类对于早期诊断和治疗至关重要。在本实验中,我们将使用乳腺癌数据集作为样本集,其中包含了临床特征(如肿瘤大小、细胞形态学特征等)以及相应的分类标签。

实验中的主要步骤包括数据集的预处理、逻辑回归模型的训练和评估,以及结果的可视化分析。首先,我们将加载乳腺癌数据集,并将数据集划分为训练集和测试集。然后,对数据集进行特征缩放,以确保特征具有相似的尺度。接下来,我们将创建一个逻辑回归模型,并使用训练集数据和标签进行模型训练。训练完成后,我们将使用测试集数据进行预测,并计算模型的准确率、混淆矩阵和分类报告等性能指标。

为了更直观地理解模型的分类效果,我们将通过散点图可视化测试集数据的分类结果,不同类别的样本使用不同颜色进行标记。此外,我们还将绘制混淆矩阵的热力图,以直观展示模型在各个类别上的分类结果。通过对结果的讨论和解释,我们将对模型的性能进行评估,并探讨特征重要性,以了解哪些特征可能对乳腺癌分类起到关键作用。

实验环境

windows11、Python3.9、jupyter notebook

方法概述

A. 数据集预处理

  1. 数据集加载和划分:使用load_breast_cancer()函数加载乳腺癌数据集,并将数据集划分为训练集和测试集,其中测试集占比为20%。
  2. 特征和标签获取:从数据集中提取特征和标签,将特征赋值给X,将标签赋值给y
  3. 特征缩放:使用StandardScaler对特征进行缩放,以保证特征具有相似的尺度。

B. 逻辑回归模型

  1. 模型原理简介:逻辑回归是一种广义线性模型,用于解决二分类问题。它基于线性回归模型,并使用逻辑函数(如sigmoid函数)将输出映射到[0, 1]之间的概率。
  2. 模型训练过程:创建一个LogisticRegression对象,并使用训练集数据和标签进行模型训练。
  3. 预测和评估:使用训练好的模型对测试集数据进行预测,并使用accuracy_scoreconfusion_matrixclassification_report等指标评估模型的性能。

实验代码

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
from sklearn.datasets import load_breast_cancer
import matplotlib.pyplot as plt


def breast_cancer_classification():
    # 加载乳腺癌数据集
    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=23)

    # 特征缩放
    scaler = StandardScaler()
    X_train = scaler.fit_transform(X_train)
    X_test = scaler.transform(X_test)

    # 创建逻辑回归模型
    log_reg = LogisticRegression(random_state=42)

    # 训练模型
    log_reg.fit(X_train, y_train)

    # 预测
    y_pred = log_reg.predict(X_test)

    # 评估模型
    accuracy = accuracy_score(y_test, y_pred)
    conf_matrix = confusion_matrix(y_test, y_pred)
    report = classification_report(y_test, y_pred)

    print("Accuracy:", accuracy)
    print("\nConfusion Matrix:\n", conf_matrix)
    print("\nClassification Report:", report)

    # 可视化分类结果
    fig, ax = plt.subplots()
    ax.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='coolwarm')
    ax.set_title("Breast Cancer Classification Results")
    ax.set_xlabel("Feature 1")
    ax.set_ylabel("Feature 2")
    plt.show(block=False)

    # 可视化性能指标
    fig, ax = plt.subplots()
    im = ax.imshow(conf_matrix, cmap='Blues')

    ax.set_xticks(np.arange(2))
    ax.set_yticks(np.arange(2))
    ax.set_xticklabels(["Negative", "Positive"])
    ax.set_yticklabels(["Negative", "Positive"])
    plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")

    for i in range(2):
        for j in range(2):
            text = ax.text(j, i, conf_matrix[i, j], ha="center", va="center",
                           color="white" if conf_matrix[i, j] > (conf_matrix.max() / 2) else "black")

    ax.set_title("Confusion Matrix")
    fig.tight_layout()
    plt.show()




if __name__ == '__main__':
    breast_cancer_classification()

实验结果

A. 模型性能评估

  1. 准确率:计算模型在测试集上的准确率,衡量模型分类的准确程度。
  2. 混淆矩阵:绘制混淆矩阵,展示模型在各个类别上的分类结果。
  3. 分类报告:输出模型的分类报告,包括精确度、召回率、F1值等指标,提供了对模型性能更详细的评估。

image-20230626102021619

B. 可视化分析

  1. 分类结果散点图:绘制散点图展示模型对测试集数据的分类结果,不同类别的样本使用不同颜色进行标记。
  2. 混淆矩阵热力图:绘制混淆矩阵的热力图,使用颜色表示不同分类结果的数量,并在每个格子中显示对应的数值。

Figure_1

Figure_2

本文来自投稿,不代表本站立场,如若转载,请注明出处:
二十大党章600题
« 上一篇 04-12
【直播小助手v1.0】使用帮助&常见问题
下一篇 » 04-13

发表评论

发表评论
    请配置好页面缩略名选项

热门文章

标签TAG

热评文章

最近回复