当前位置: 首页 > news >正文

【Python】-- 机器学习项目 - 基于逻辑回归算法的乳腺癌数据集分类

在这里插入图片描述

文章目录

文章目录

  • 01 什么是逻辑回归
  • 02 逻辑回归数学模型
  • 03 逻辑回归、线性回归、岭回归的区别?
  • 04 基于逻辑回归算法的乳腺癌数据集分类代码分析
  • 05 基于逻辑回归算法的乳腺癌数据集分类代码
  • 06 基于逻辑回归算法的乳腺癌数据集分类源码

01 什么是逻辑回归

逻辑回归(Logistic Regression)是一种用于解决二分类(或多元分类)问题的统计学习方法。虽然名字里带“回归”,但它本质上是分类算法,主要用于估计某个事件发生的概率。

假设你想预测一封邮件是否是垃圾邮件(1 = 垃圾邮件,0 = 正常邮件)。

  • 输入特征:是否包含“免费”、“中奖”、“点击链接”等关键词;
  • 输出:一个 0 到 1 之间的概率,比如 0.87,表示这封邮件有 87% 的可能性是垃圾邮件。

02 逻辑回归数学模型

在这里插入图片描述

03 逻辑回归、线性回归、岭回归的区别?

线性回归直接拟合连续值,没有任何正则化。
岭回归就是给线性回归加上 L2 惩罚,让系数变小、模型更稳。
逻辑回归虽然名字带“回归”,其实是用来算概率、做分类的。
在这里插入图片描述

04 基于逻辑回归算法的乳腺癌数据集分类代码分析

下载乳腺癌数据集。
把缺失值替换成 NaN 再删除。
用最后 9 个医学特征做 X,类别标签做 y。
80 % 训练集 + 20 % 测试集。
对特征做标准化(均值 0,方差 1)。
训练逻辑回归模型。
打印前 20 条预测值、真实值和总体准确率。

05 基于逻辑回归算法的乳腺癌数据集分类代码

print("\nStep 2: Data cleaning...")
data = data.replace("?", np.nan)
print("Missing values per column:")
print(data.isnull().sum())
data = data.dropna()
print("After dropping NA shape:", data.shape)# 2.2 Features and target
X = data.iloc[:, 1:-1]
y = data["Class"]
print("Feature shape:", X.shape, "Target shape:", y.shape)
print("Feature columns:", list(X.columns))# 2.3 Train-test split
print("\nStep 3: Train-test split...")
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=22, stratify=y
)
print("Train shape:", X_train.shape, "Test shape:", X_test.shape)
print("Train label counts:")
print(y_train.value_counts())# 3. Standardization
print("\nStep 4: Standardizing features...")
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test  = scaler.transform(X_test)
print("Feature means (train):", scaler.mean_.round(2))
print("Feature stds  (train):", scaler.scale_.round(2))# 4. Fit Logistic Regression
print("\nStep 5: Training Logistic Regression...")
clf = LogisticRegression(max_iter=1000)
clf.fit(X_train, y_train)
print("First 5 coefficients:", clf.coef_[0][:5].round(3))
print("Intercept:", clf.intercept_[0].round(3))# 5. Evaluation
print("\nStep 6: Evaluation...")
y_pred = clf.predict(X_test)
acc = clf.score(X_test, y_test)
print("Predictions (first 20):", y_pred[:20])
print("True labels  (first 20):", y_test.values[:20])
print("Test accuracy:", round(acc, 4), f"({round(acc*100, 2)}%)")

06 基于逻辑回归算法的乳腺癌数据集分类源码

提供了Python的实现代码,使得用户可以根据自己的需求进行调整和应用。
Python代码下载地址
在这里插入图片描述

http://www.dtcms.com/a/343843.html

相关文章:

  • 理解AI 智能体:智能体架构
  • DAY14-新世纪DL(DeepLearning/深度学习)战士:破(优化算法)2
  • k8sday14数据存储(2/2)
  • BigData大数据应用开发学习笔记(03)离线处理--数据仓库Hive
  • 直播预约 | CATIA MODSIM SmartCAE带练营第3期:让每轮设计迭代都快人一步!
  • 【C语言16天强化训练】从基础入门到进阶:Day 6
  • 前端查漏补缺
  • 图表组件SciChart WPF再升级:v8.9带来油气井图、新交互与可视化增强
  • PDF文档安全升级:三招实现文本转曲线(防篡改+高清输出)
  • WPF控件随窗体大宽度高度改变而改变
  • Spring Boot 集成 Swagger UI 详细教程
  • 【学习】CSMM认证与CMMI认证的对比分析
  • logback-spring.xml 文件
  • jenkins实现分布式构建并自动发布到远程服务器上 jenkins实现自动打包编译发布远程服务器
  • 逆向代码笔记
  • 51单片机-驱动步进电机模块教程
  • 移动应用青少年模式开发成本解析:原生、Flutter与Uniapp方案对比-优雅草卓伊凡
  • Redis 数据类型:List 列表的深度解析与应用
  • Apache Ozone 2.0.0集群部署
  • 潇洒郎: Python实现检测鼠标移动和音视频播放行为——打造省电脚本
  • 反催收APP开发思路:用Flutter打造证据链管理工具
  • JVM 调优全流程案例:从频繁 Full GC 到百万 QPS 的实战蜕变
  • 无线数传模块实现实时信号传输,保障煤堆设备生产进度稳定
  • 【LeetCode每日一题】238. 除自身以外数组的乘积
  • 从零开始学习JavaWeb-15
  • 一、anaconda安装与测试运用
  • AlexNet读取数据集 与VGG-11网络
  • 字节Seed-OSS开源,不卷参数卷脑子
  • 防火墙双机热备
  • 【CV】OpenCV①——图形处理简介