数据降维(代码片段)

megachen megachen     2023-01-20     421

关键词:

数据降维

分类

  • PCA(主成分分析降维)
  • 相关系数降维

PCA 降维(不常用)

实现思路

  • 对数据进行标准化
  • 计算出数据的相关系数矩阵(是方阵, 维度是nxn, n是特征的数量)
  • 计算出相关系数矩阵的特征值和特征向量(虽然这里说的是向量, 但是是矩阵, 这个矩阵的每一列都是特征值或者特征向量, 是nxn), 特征值是每一个特征的特征值的集合, 但是在特征向量是每一个特征的特征向量的集合, 前者我们提到的特征值和特征向量是集合
  • 多特征值进行降序排序
  • 根据已经得到的特征值计算出贡献率和累计贡献率(主要看累计贡献率, 单单一个贡献率指的是一个主成分保存的原始特征的信息, 累计贡献率是总共保存的原始特征信息)
  • 设置信息阈值T, 一般设置为0.9, 如果大于T, 则记录下来当前的位置k(k也就是我们选择的主成分的个数, 主成分就是特征, 也就是一列)
  • 根据k选择主成分对应的特征向量
  • 将标准化之后的数据(矩阵)右乘在上一步中选择出来的特征向量(在这一步得到的矩阵就是m x new_n维度的了), 得到的就是主成分的分数, 也就是降维之后的数据集合

伪代码

X = load(‘data.xlsx‘, ‘B1:I11‘);
m = size(X, 1); % m 表示样本的数量
n = size(X, 2); % n 表示特征的数量
% 数据标准化
for i = 1:m
    SX(:, i) = (X(:, i) - mean(X(:, i))) / std(X(:, i));
end

% 计算相关系数
CM = corrcoef(SX);
% V 是特征向量, D 是特征值
[V D] = eig(CM);

% 对D特征值进行降序排序, 将结果保存到DS的第一列
for i = 1:n
    DS(:, 1) = D(n + 1 - i, n + 1 - i);
end

% 计算贡献率和累计贡献率
for i = 1:n
    % 第二列为当前单个, 每一个, 主成分的贡献率
    DS(:, 2) = D(i, 1) / sum(D(:, 1));
    % 第三列为到当前主成分的累计贡献率
    DS(:, 3) = sum(D(1:i, 1)) / sum(D(:, 1));
end

% 选择主成分
T = 0.9;
for i = 1:n
    if DS(:, i) > T
        k = i;
        break;
    end
end

% 获取主成分对应的特征向量
for i = 1:n
    PV(:, i) = DS(:, n + 1 - i);
end

% 获取新的特征样本
X_new = SX * PV;

相关系数降维

  • 公式: [r=sum_j=1^m(x_j-overlinex_j)(y_j-overliney_j)overstd(x_j)std(y_j)]
  • 如果|r|在[0.7, 1]时表示强线性关系, 说明x和y有很紧密的线性关系
  • 如果|r|在[0.5, 0.7]时表示中线性关系
  • 如果|r|在[0.2, 0.5]时表示低线性关系
  • 如果|r|在[0, 0.2]时表示没有关系
  • r > 0表示正相关, r < 0表示负关系

数据降维(dimensionalityreduction)(代码片段)

数据降维(Dimensionalityreduction)应用范围无监督学习图片压缩(需要的时候在还原回来)数据压缩数据可视化数据压缩(DataCompression)将高维的数据转变为低维的数据,这样我们存储数据的矩阵的列就减少了,那么我们需要存储的数据就减... 查看详情

[c9]降维(待整理)(代码片段)

十四、降维(DimensionalityReduction)14.1动机一:数据压缩参考视频:14-1-MotivationI_DataCompression(10min).mkv这个视频,我想开始谈论第二种类型的无监督学习问题,称为降维。有几个不同的的原因使你可能想要做降维。一是数据压缩,后面... 查看详情

数据挖掘鸢尾花分析实验与数据降维(代码片段)

鸢尾花分析实验与数据降维相关性分析特征工程-特征降维低方差特征过滤相关系数皮尔逊相关系数(PearsonCorrelationCoefficient)斯皮尔曼相关系数(RankIC)主成分分析(PCA)实验目的:用鸢尾花数据,先进行可视化,然后算达到... 查看详情

特征选择与特征降维(代码片段)

...selectionimportVarianceThresholdfromsklearn.decompositionimportPCA‘‘‘数据降维:特征的数量减少(即columns减少)1、特征选择原因:1、数据冗余:部分特征的相关度高,容易消耗计算机性能2、噪声:部分特征对预测结果有影响2、特征选择方... 查看详情

机器学习特征工程-特征降维(代码片段)

...方式2.特征选择2.1定义2.2方法2.3低方差特征过滤2.3.1API2.3.2数据计算2.4相关系数2.4.1皮尔逊相关系数(PearsonCorrelationCoefficient)2.4.2斯皮尔曼相关系数(RankIC)3.主成分分析3.1什么是主成分分析(PCA)3.2API3.3数据计算4.小结学习目标了解降维... 查看详情

机器学习实战基础(二十七):sklearn中的降维算法pca和svdpca对手写数字数据集的降维(代码片段)

PCA对手写数字数据集的降维1.导入需要的模块和库fromsklearn.decompositionimportPCAfromsklearn.ensembleimportRandomForestClassifierasRFCfromsklearn.model_selectionimportcross_val_scoreimportmatplotlib.pyplotaspltimportpandas 查看详情

降维案例(代码片段)

一、数据集介绍 该案例描述的是一段时间内客户的订单,预测用户下一次将会买那些订单。数据集的信息如下:products.csv 商品信息order_products__prior.csv订单与商品关系信息orders.csv订单信息aisles.csv商品所属的具体类别1、&n... 查看详情

再探mlpy,降维分类可视化(代码片段)

一个非常常见的问题就是遇到的数据是多维度数据,维度过高会导致模型极度的复杂,折衷的法案就是降维,然后再Q聚类、分类、回归。降维强调在不损失准确性的前提下来降低维度(选出最优特征)PCA是最常见降维算法,它... 查看详情

跟我学算法-pca(降维)(代码片段)

pca是一种黑箱子式的降维方式,通过映射,希望投影后的数据尽可能的分散,因此要保证映射后的方差尽可能大,下一个映射的方向与当前映射方向正交pca的步骤:第一步:首先要对当前数据(去均值)求协方差矩阵,协方差矩阵=... 查看详情

机器学习特征降维(代码片段)

...分析5.1什么是主成分分析(PCA)5.1.1计算案例理解5.1.2API5.1.3数据计算5.2案例:探究用户对物品类别的喜好细分降维5.2.1需求5.2.2分析5.2.3完整代码1特征降维目标知道特征选择的嵌入式、过滤式以及包裹氏三种方式 查看详情

第四节数据降维案列(代码片段)

importpandasaspdfromsklearn.decompositionimportPCA#数据地址:https://www.kaggle.com/c/instacart-market-basket-analysis/data#读取表prior=pd.read_csv(r"E:360DownloadsSoftware降维案列数据order_products__prior.csv")products=pd.read_csv(r"E:360DownloadsSoftware降维案列数据products.csv... 查看详情

机器学习中必知必会的8种降维技术,最后一款超硬核!(代码片段)

欢迎关注,专注Python、数据分析、数据挖掘、好玩工具!探索性数据分析是数据科学模型开发管道的重要组成部分。数据科学家将大部分时间花在数据清洗、特征工程和执行其他数据整理技术上。降维是数据科学家在执... 查看详情

机器学习-3.数据特征预处理与数据降维(代码片段)

...理定义:通过特定的统计方法(数学方法)将数据转换成算法要求的数据。处理方法数值型数据:标准缩放(1.归一化,2.标准化);缺失值。类别型数据:one-hot编码。时间类型:时间的切... 查看详情

python实现tsne检验tsne降维代码(代码片段)

python如何实现TSNE检验并绘图一般而言TSNE就是一种数据可视化的工具,能够将高维数据降到2-3维(降维),然后画成图。现在也有蛮多可以直接使用的套件,如sklearn.manifold(具体可看:SklearnTSNE官网ÿ... 查看详情

python实现tsne检验tsne降维代码(代码片段)

python如何实现TSNE检验并绘图一般而言TSNE就是一种数据可视化的工具,能够将高维数据降到2-3维(降维),然后画成图。现在也有蛮多可以直接使用的套件,如sklearn.manifold(具体可看:SklearnTSNE官网ÿ... 查看详情

[bpnet识别mnist03]mnist数据降维以及神经网络建立(代码片段)

写在前面之前已经完成了MNIST数据的获取,机器学习的数据预处理中包括数据清理(离散缺失值等处理),数据合成(将多个数据集合成单个数据集等处理),数据归约(降维等操作),数... 查看详情

0x25numpy实战,pca降维(代码片段)

...相关性,使特征之间更加的独立     3.减少噪声对数据的影响,使模型更加的稳定     4.方便数据的可视化  简单步骤:    1.对数据进行零均值化处理    2.计算协方差矩阵    3.计算特征值和特征... 查看详情

pca降维以及维数的确定(代码片段)

...指标转换为少数的几个综合指标。主成分分析是一种简化数据集的技术,它是一个线性变换。这个线性变化把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标上(称为第一主成分),第二个大的方... 查看详情