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

课程网站开发背景和意义求网址直接能看的2021

课程网站开发背景和意义,求网址直接能看的2021,如何建设一个不备案的网站,建筑工程网库DAY 20 奇异值SVD分解 知识点回顾: 线性代数概念回顾(可不掌握)奇异值推导(可不掌握)奇异值的应用 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现…

DAY 20 奇异值SVD分解

知识点回顾:

  1. 线性代数概念回顾(可不掌握)
  2. 奇异值推导(可不掌握)
  3. 奇异值的应用
    1. 特征降维:对高维数据减小计算量、可视化
    2. 数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高,但图像质量损失越大)
    3. 降噪:通常噪声对应较小的奇异值。通过丢弃这些小奇异值并重构矩阵,可以达到一定程度的降噪效果。
    4. 推荐系统:在协同过滤算法中,用户-物品评分矩阵通常是稀疏且高维的。SVD (或其变种如 FunkSVD, SVD++) 可以用来分解这个矩阵,发现潜在因子 (latent factors),从而预测未评分的项。这里其实属于特征降维的部分。

知识点回顾:

对于任何矩阵(如结构化数据可以变为:样本*特征的矩阵,图像数据天然就是矩阵),均可做等价的奇异值SVD分解,对于分解后的矩阵,可以选取保留前K个奇异值及其对应的奇异向量,重构原始矩阵,可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。\

应用:结构化数据中,将原来的m个特征降维成k个新的特征,新特征是原始特征的线性组合,捕捉了数据的主要方差信息,降维后的数据可以直接用于机器学习模型(如分类、回归),通常能提高计算效率并减少过拟合风险。

ps:在进行 SVD 之前,通常需要对数据进行标准化(均值为 0,方差为 1),以避免某些特征的量纲差异对降维结果的影响。

作业:尝试利用svd来处理心脏病预测,看下精度变化

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")plt.rcParams['font.sans-serif'] = ['SimHei']  
plt.rcParams['axes.unicode_minus'] = False    
data = pd.read_csv('heart.csv')
data.head()
data.isnull().sum()from sklearn.model_selection import train_test_split
X = data.drop(['target'], axis=1)  
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# 对训练集和测试集进行标准化
X_train = scaler.fit_transform(X_train)
X_test= scaler.transform(X_test)
print(f"训练集形状: {X_train.shape}")
print(f"测试集形状: {X_test.shape}")
# 对训练集进行 SVD 分解
U, S, Vt = np.linalg.svd(X_train, full_matrices=False)
print(f"Vt 的形状: {Vt.shape}")
#选择适合的k值
for k in range(1, 14):explained_variance_ratio = np.cumsum(S**2) / np.sum(S**2)print(f"前 {k} 个奇异值的累计方差贡献率: {explained_variance_ratio[k-1]}")
#前 1 个奇异值的累计方差贡献率: 0.20725750322157355
#前 2 个奇异值的累计方差贡献率: 0.33159835641408375
#前 3 个奇异值的累计方差贡献率: 0.4261041158536957
#前 4 个奇异值的累计方差贡献率: 0.514568264455282
#前 5 个奇异值的累计方差贡献率: 0.5948361578090908
#前 10 个奇异值的累计方差贡献率: 0.8987659293980155
#前 11 个奇异值的累计方差贡献率: 0.9394914234782586
#前 12 个奇异值的累计方差贡献率: 0.9728991519151069
#前 13 个奇异值的累计方差贡献率: 1.0
# 选择保留的奇异值数量 k
k = 11
Vt_k = Vt[:k, :]
print(f"保留 k={k} 后的 Vt_k 矩阵形状: {Vt_k.shape}")
# 降维训练集:X_train_reduced = X_train @ Vt_k.T
X_train_reduced = X_train @ Vt_k.T
print(f"降维后训练集形状: {X_train_reduced.shape}")
# 使用相同的 Vt_k 对测试集进行降维:X_test_reduced = X_test @ Vt_k.T
X_test_reduced = X_test @ Vt_k.T
print(f"降维后测试集形状: {X_test_reduced.shape}")
# 训练模型(以lgb为例)
import lightgbm as lgb
from sklearn.metrics import accuracy_score
lgb_model = lgb.LGBMClassifier(random_state=42)
lgb_model.fit(X_train_reduced,y_train)
lgb_pred = lgb_model.predict(X_test_reduced)
accuracy = accuracy_score(y_test, lgb_pred)
print(f"测试集准确率: {accuracy}")
#对比未降维
lgb_model0 = lgb.LGBMClassifier(random_state=42)
lgb_model0.fit(X_train,y_train)
lgb_pred0 = lgb_model0.predict(X_test)
accuracy0 = accuracy_score(y_test, lgb_pred0)
print(f"测试集准确率0: {accuracy}")
# 计算训练集的近似误差(可选,仅用于评估降维效果)
X_train_approx = U[:, :k] @ np.diag(S[:k]) @ Vt_k
error = np.linalg.norm(X_train - X_train_approx, 'fro') / np.linalg.norm(X_train, 'fro')
print(f"训练集近似误差 (Frobenius 范数相对误差): {error}")
#测试集准确率: 0.8360655737704918
#训练集近似误差 (Frobenius 范数相对误差): 0.24598491116680557

数据集特征太小,未发挥SVD效能,用于图像处理是个很好的选择.

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

相关文章:

  • 做服务网站个人域名备过案了做电影网站会查吗
  • 简洁物流网站模板学wordpress要多久
  • 建网站卖虚拟资源需要怎么做建筑人才网筑才网
  • 网站建设的需求客户公司变更登记申请表
  • 卫计网站建设工作总结指定网站建设前期规划方案
  • 科技网站内容设计湖南中霸建设公司官网
  • 网站怎么做聚合深圳鸿天顺网站建设
  • 网站建设 上传媒网站设计
  • 接网站开发私活如何签合同动漫制作专业名人作品展示
  • 网站建设类公网络营销促销形式
  • 怎么做免费的网站宁波网站建设详细策划
  • 石狮网站定制国内类似wordpress
  • 如何建设音乐网站龙岩天宫山海拔高度多少
  • 招商网站怎么做旅游网站组织结构图怎么做
  • 建设银行网网站打不开百度对wordpress
  • 南京市网站seo整站优化公司网站做优化少钱
  • flash 网站搜索引擎营销推广方案
  • 网站建设价格多少深圳网站设计服务找哪家
  • 万户做网站怎么样校园二手交易网站开发
  • 浏览器怎么做能不拦截网站西安网络营销公司排名
  • 深圳做网站的网络文化宣传 加强网站建设 创办网站
  • 宜昌做网站公司天津网站建站
  • 开发app的网站免费咨询电话
  • 云浮营销建站公司营销团队找产品合作
  • 周口建设局网站工地模板
  • 2小时wordpress建站百度手机端排名
  • 用织梦做网站费用机械加工网站有哪些
  • 手机网站开发一个多少钱百度应用商店下载安装
  • 网站开发源代码修改办公室装修风格
  • 鹤壁市淇滨区建设局网站网站服务器爆满怎么挤进去