news 2026/4/3 4:43:29

Day 24 奇异值分解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 24 奇异值分解

@浙大疏锦行
作业:

import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score from sklearn.preprocessing import StandardScaler # 真实数据需标准化(SVD对尺度敏感) # 设置随机种子以便结果可重复 np.random.seed(42) # ----------------------1. 加载并预处理心脏病数据集---------------------- # 读取心脏病数据集(使用指定路径,r字符串避免转义) df = pd.read_csv(r"D:\PYTHONSTUDY\python60-days-challenge-master\heart.csv") # 分离特征(X)和目标变量(y):共303个样本,13个医学特征,目标为疾病状态(0=健康,1=患病) X = df.drop("target", axis=1).values y = df["target"].values # 标准化特征(SVD对数据尺度敏感,避免某一特征主导分解结果) scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # ----------------------2. 划分训练集和测试集---------------------- X_train, X_test, y_train, y_test = train_test_split( X_scaled, y, test_size=0.2, random_state=42 ) print(f"训练集形状: {X_train.shape}") # 输出:(242, 13)(242个样本,13个特征) print(f"测试集形状: {X_test.shape}") # 输出:(61, 13)(61个样本,13个特征) # ----------------------3. 对训练集进行SVD分解(降维核心)---------------------- U_train, sigma_train, Vt_train = np.linalg.svd(X_train, full_matrices=False) print(f"Vt_train 矩阵形状: {Vt_train.shape}") # 输出:(13, 13)(13个特征的正交基) # 选择保留的奇异值数量k:基于前期分析,k=7可保留73.5%数据信息 k = 7 Vt_k = Vt_train[:k, :] # 保留前k行(前7个主成分的基向量) print(f"保留 k={k} 后的 Vt_k 矩阵形状: {Vt_k.shape}") # 输出:(7, 13) # ----------------------4. 用训练集的SVD结果对训练/测试集降维---------------------- # 训练集降维:(242,13) @ (13,7) → (242,7) X_train_reduced = X_train @ Vt_k.T print(f"降维后训练集形状: {X_train_reduced.shape}") # 输出:(242, 7) # 测试集降维(必须用训练集的Vt_k,保证降维规则一致):(61,13) @ (13,7) → (61,7) X_test_reduced = X_test @ Vt_k.T print(f"降维后测试集形状: {X_test_reduced.shape}") # 输出:(61, 7) # ----------------------5. 训练逻辑回归模型并评估---------------------- model = LogisticRegression(random_state=42, max_iter=200) # 增加迭代次数适配真实数据 model.fit(X_train_reduced, y_train) # 测试集预测与准确率计算 y_pred = model.predict(X_test_reduced) accuracy = accuracy_score(y_test, y_pred) print(f"测试集准确率: {accuracy:.4f}") # 真实数据通常准确率在80%-90%区间 # ----------------------6. 计算训练集近似误差(评估降维效果)---------------------- X_train_approx = U_train[:, :k] @ np.diag(sigma_train[:k]) @ Vt_k error = np.linalg.norm(X_train - X_train_approx, "fro") / np.linalg.norm(X_train, "fro") print(f"训练集近似误差 (Frobenius 范数相对误差): {error:.4f}") # 约0.51(保留73.5%信息)

从结果来看,本次基于心脏病数据集的 SVD 降维与模型训练效果表现优异:先是将 13 维的原始医学特征压缩至 7 维,在实现约 46% 维度压缩的同时保留了 73.53% 的核心数据信息,对应的重构相对误差(约 51.45%)处于合理范围,降维兼顾了效率与信息完整性;而基于降维特征训练的逻辑回归模型,在测试集上达到了 88.52% 的准确率,这一成绩在心脏病预测任务中属于优秀水平,说明降维后的特征仍有效保留了区分健康 / 患病状态的关键信息,整体实现了 “维度简化” 与 “模型性能” 的良好平衡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 10:19:59

AdGuard浏览器广告拦截器完全配置手册:从安装到精通

AdGuard浏览器扩展是一款功能强大的免费广告拦截工具,能够有效屏蔽各类网络广告并提供全面的隐私保护功能。这款开源解决方案不收集用户数据,仅通过付费软件产品获得收入支持持续开发。 【免费下载链接】AdguardBrowserExtension AdGuard browser extens…

作者头像 李华
网站建设 2026/3/31 21:10:29

3步掌握国标参考文献格式:从入门到精通的实用指南

3步掌握国标参考文献格式:从入门到精通的实用指南 【免费下载链接】gbt7714-bibtex-style GB/T 7714-2015 BibTeX Style 项目地址: https://gitcode.com/gh_mirrors/gb/gbt7714-bibtex-style 你是否曾经为了论文参考文献格式而熬夜到凌晨?那些看似…

作者头像 李华
网站建设 2026/4/3 3:15:46

JSqlParser 5.3:彻底改变SQL语句处理方式的强大工具

JSqlParser 5.3:彻底改变SQL语句处理方式的强大工具 【免费下载链接】JSqlParser JSQLParser/JSqlParser: 这是一个用于解析和执行SQL语句的Java库。适合用于需要解析和执行SQL语句的场景。特点:易于使用,支持多种数据库的SQL语句解析和执行&…

作者头像 李华
网站建设 2026/3/30 16:48:26

TEKLauncher:专业级ARK游戏启动器配置与优化指南

TEKLauncher:专业级ARK游戏启动器配置与优化指南 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher TEKLauncher是一款专为ARK: Survival Evolved设计的专业级游戏启动器&#xff…

作者头像 李华
网站建设 2026/4/1 7:38:12

7天精通Zotero Format Metadata:文献管理效率提升300%的终极指南

7天精通Zotero Format Metadata:文献管理效率提升300%的终极指南 【免费下载链接】zotero-format-metadata Linter for Zotero. An addon for Zotero to format item metadata. Shortcut to set title rich text; set journal abbreviations, university places, an…

作者头像 李华
网站建设 2026/3/30 23:06:58

Zotero文献管理终极指南:从入门到精通的快速高效实践

还在为海量文献整理而烦恼吗?作为一款开源的文献管理神器,Zotero能够帮助科研人员和学生实现从文献收集、整理到引用的全流程自动化。本文将带你探索Zotero的核心技巧,让你的文献管理效率翻倍! 【免费下载链接】zotero-format-met…

作者头像 李华