声明:版权所有,转载请联系作者并注明出处  http://blog.csdn.net/u013719780?viewmode=contents


博主简介:风雪夜归子(英文名: Allen),机器学习算法攻城狮,喜爱钻研Machine Learning的黑科技,对Deep Learning和Artificial Intelligence充满兴趣,经常关注kaggle数据挖掘竞赛平台,对数据、Machine Learning和Artificial Intelligence有兴趣的各位童鞋可以一起探讨哦,个人CSDN博客: http://blog.csdn.net/u013719780?viewmode=contents


用PCA降维

本章我们将介绍一种降维方法,PCA(Principal Component Analysis,主成分分析)。降维致力于解决三类问题。第一,降维可以缓解维度灾难问题。第二,降维可以在压缩数据的同时让信息损失最小化。第三,理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解。下面,我们用PCA将一个高维数据降成二维,方便可视化,之后,我们建一个脸部识别系统。

PCA简介

第三章,特征提取与处理里面,涉及高维特征向量的问题往往容易陷入维度灾难。随着数据集维度的增加,算法学习需要的样本数量呈指数级增加。有些应用中,遇到这样的大数据是非常不利的,而且从大数据集中学习需要更多的内存和处理能力。另外,随着维度的增加,数据的稀疏性会越来越高。在高维向量空间中探索同样的数据集比在同样稀疏的数据集中探索更加困难。

主成分分析也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结构的技术。PCA通常用于高维数据集的探索与可视化。还可以用于数据压缩,数据预处理等。PCA可以把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分( principal components)。新的低维数据集会经可能的保留原始数据的变量。

PCA将数据投射到一个低维子空间实现降维。例如,二维数据集降维就是把点投射成一条线,数据集的每个样本都可以用一个值表示,不需要两个值。三维数据集可以降成二维,就是把变量映射成一个平面。一般情况下,n维数据集可以通过映射降成k维子空间,其中k是选取的主成分数目。

假如你是一本养花工具宣传册的摄影师,你正在拍摄一个水壶。水壶是三维的,但是照片是二维的,为了更全面的把水壶展示给客户,你需要从不同角度拍几张图片。下图是你从四个方向拍的照片:

wateringcan

第一张图里水壶的背面可以看到,但是看不到前面。第二张图是拍前面,可以看到壶嘴,这张图可以提供了第一张图缺失的信息,但是壶把看不到了。从第三张俯视图里无法看出壶的高度。第四张图是你打算放进目录的,水壶的高度,顶部,壶嘴和壶把都清晰可见。

PCA的设计理念与此类似,它可以将高维数据集映射到低维空间的同时,尽可能的保留更多变量。PCA旋转数据集与其主成分对齐,将最多的变量保留到第一主成分中。假设我们有下图所示的数据集:

dataset

数据集看起来像一个从原点到右上角延伸的细长扁平的椭圆。要降低整个数据集的维度,我们必须把点映射成一条线。下图中的两条线都是数据集可以映射的,映射到哪条线样本变化最大?

datasetline

显然,样本映射到虚线的变化比映射到点线的变化。实际上,这条虚线就是第一主成分。第二主成分必须与第一主成分正交,也就是说第二主成分必须是在统计学上独立的,会出现在与第一主成分垂直的方向,如下图所示:

orthogonal

后面的每个主成分也会尽量多的保留剩下的变量,唯一的要求就是每一个主成分需要和前面的主成分正交。

现在假设数据集是三维的,散点图看起来像是沿着一个轴旋转的光盘。

threedimensional

这些点可以通过旋转和变换使光盘完全变成二维的。现在这些点看着像一个椭圆,第三维上基本没有变量,可以被忽略。

当数据集不同维度上的方差分布不均匀的时候,PCA最有用。如果是一个球壳行数据集,PCA不能有效的发挥作用,因为各个方向上的方差都相等;没有丢失大量的信息维度一个都不能忽略。

PCA计算步骤

在介绍PCA的运行步骤之前,有一些术语需要说明一下。

方差,协方差和协方差矩阵

方差(Variance)是度量一组数据分散的程度。方差是各个样本与样本均值的差的平方和的均值:


协方差(Covariance)是度量两个变量的变动的同步程度,也就是度量两个变量线性相关性程度。如果两个变量的协方差为0,则统计学上认为二者线性无关。注意两个无关的变量并非完全独立,只是没有线性相关性而已。计算公式如下:


如果协方差不为0,如果大于0表示正相关,小于0表示负相关。当协方差大于0时,一个变量增大是另一个变量也会增大。当协方差小于0时,一个变量增大是另一个变量会减小。协方差矩阵(Covariance matrix)由数据集中两两变量的协方差组成。矩阵的第 (i,j) 个元素是数据集中第i和第j个元素的协方差。例如,三维数据的协方差矩阵如下所示:

C=cov(x1,x1)cov(x2,x1)cov(x3,x1)cov(x1,x2)cov(x2,x2)cov(x3,x2)cov(x1,x3)cov(x2,x3)cov(x3,x3)

让我们计算下表数据的协方差矩阵:

X1 X2 X3
2 0 −1.4
2.2 0.2 −1.5
2.4 0.1 −1
1.9 0 −1.2

三个变量的样本均值分别是2.125,0.075和-1.275。用Numpy计算协方差矩阵如下:

In [1]:
import numpy as np
X = [[2, 0, -1.4],[2.2, 0.2, -1.5],[2.4, 0.1, -1],[1.9, 0, -1.2]]
print(np.cov(np.array(X).T))
[[ 0.04916667  0.01416667  0.01916667][ 0.01416667  0.00916667 -0.00583333][ 0.01916667 -0.00583333  0.04916667]]

特征向量和特征值

向量是具有大小(magnitude)和方向(direction)的几何概念。特征向量(eigenvector)是一个矩阵的满足如下公式的非零向量:


其中,是特征向量,A是方阵,
λ
是特征值。经过A变换之后,特征向量的方向保持不变,只是其大小发生了特征值倍数的变化。也就是说,一个特征向量左乘一个矩阵之后等于等比例放缩(scaling)特征向量。德语单词eigen的意思是属于...或...专有( belonging to or peculiar to);矩阵的特征向量是属于并描述数据集结构的向量。

特征向量和特征值只能由方阵得出,且并非所有方阵都有特征向量和特征值。如果一个矩阵有特征向量和特征值,那么它的每个维度都有一对特征向量和特征值。矩阵的主成分是其协方差矩阵的特征向量,按照对应的特征值大小排序。最大的特征值就是第一主成分,第二大的特征值就是第二主成分,以此类推。

让我们来计算下面矩阵的特征向量和特征值:

A=[1223]

根据前面的公式A乘以特征向量,必然等于特征值乘以特征向量。我们建立特征方程求解:



|AλI|=[1223][λ00λ]=0

从特征方程可以看出,矩阵与单位矩阵和特征值乘积的矩阵行列式为0:

[1λ223λ]=(λ+1)(λ+1)=0

矩阵的两个特征值都等于-1。现在再用特征值来解特征向量。


首先,我们用特征方程:

把数据代入:


我们把特征值代入方程可得如下方程:


任何满足方程的非零向量都可以作为特征向量,我们取其特征向量为

                                                                                                 

PCA需要单位特征向量,也就是L2范数等于1的特征向量:


那么把前面的特征向量带入可得  L2范数为



于是单位特征向量是:


我们可以通过Numpy检验我们手算的特征向量。eig函数返回特征值和特征向量的元组:

In [8]:
import numpy as np
w, v = np.linalg.eig(np.array([[1, -2], [2, -3]]))
print('特征值:{}\n特征向量:{}'.format(w,v))
特征值:[-0.99999998 -1.00000002]
特征向量:[[ 0.70710678  0.70710678][ 0.70710678  0.70710678]]
 

用PCA降维

让我们用PCA方法把下表二维数据降成一维:

X1 X2
0.9 1
2.4 2.6
1.2 1.7
0.5 0.7
0.3 0.7
1.8 1.4
0.5 0.6
0.3 0.6
2.5 2.6
1.3 1.1

PCA第一步是用解释变量减去样本均值:

X1 X2
0.9 - 1.17 = -0.27 1 - 1.3 = -0.3
2.4 - 1.17 = 1.23 2.6 - 1.3 = 1.3
1.2 - 1.17 = 0.03 1.7 - 1.3 = 0.4
0.5 - 1.17 = -0.67 -0.7 - 1.3 = 0.6
0.3 - 1.17 = -0.87 -0.7 - 1.3 = 0.6
1.8 - 1.17 = 0.63 1.4 - 1.3 = 0.1
0.5 - 1.17 = -0.67 0.6 - 1.3 = -0.7
0.3 - 1.17 = -0.87 0.6 - 1.3 = -0.7
2.5 - 1.17 = 1.33 2.6 - 1.3 = 1.3
1.3 - 1.17 = 0.13 1.1 - 1.3 = -0.2

然后,我们计算数据的主成分。前面介绍过,矩阵的主成分是其协方差矩阵的特征向量,按照对应的特征值大小排序。主成分可以通过两种方法计算。第一种方法是计算数据协方差矩阵。因为协方差矩阵是方阵,所有我们可以用前面的方法计算特征值和特征向量。第二种方法是用数据矩阵的奇异值分解(singular value decomposition)来找协方差矩阵的特征向量和特征值的平方根。我们先介绍第一种方法,然后介绍scikit-learn的PCA实现,也就是第二种方法。上述数据集的解释变量协方差矩阵如下:

C=[0.68677777780.60666666670.60666666670.5977777778]

用前面介绍过的方法,特征值是1.250和0.034,单位特征向量是:

[0.732514540.680751380.680751380.73251454]

下面我们把数据映射到主成分上。第一主成分是最大特征值对应的特征向量,因此我们要建一个转换矩阵,它的每一列都是主成分的特征向量。如果我们要把5维数据降成3维,那么我们就要用一个3维矩阵做转换矩阵。在本例中,我们将把我们的二维数据映射成一维,因此我们只需要用特征向量中的第一主成分。最后,我们用数据矩阵点乘转换矩阵。下面就是第一主成分映射的结果:

0.271.230.030.670.870.630.670.871.330.130.31.30.40.60.60.10.70.71.30.2[0.732514540.68075138]=0.402004341.785969680.294275990.082333910.228836820.52955930.967310711.113813621.859221130.04092339

通过Numpy的dot函数计算如下:

In [12]:
a = [[-0.27, -0.3],
[1.23, 1.3],
[0.03, 0.4],
[-0.67, 0.6],
[-0.87, 0.6],
[0.63, 0.1],
[-0.67, -0.7],
[-0.87, -0.7],
[1.33, 1.3],
[0.13, -0.2]]b = [[0.73251454], [0.68075138]]np.dot(a,b)
Out[12]:
array([[-0.40200434],[ 1.78596968],[ 0.29427599],[-0.08233391],[-0.22883682],[ 0.5295593 ],[-0.96731071],[-1.11381362],[ 1.85922113],[-0.04092339]])

许多PCA的实现方法,包括scikit-learn的实现方法都是用奇异值分解计算特征值和特征向量。SVD计算公式如下:

X=UVT

列向量U称为数据矩阵的左奇异值向量,V称为数据矩阵的右奇异值向量,的对角线元素是它的奇异值。矩阵的奇异值向量和奇异值在一些信号处理和统计学中是十分有用的,我们只对它们与数据矩阵特征向量和特征值相关的内容感兴趣。具体来说,左奇异值向量就是协方差矩阵的特征向量,的对角线元素是协方差矩阵的特征值的平方根。计算SVD超出本博客范围,不过用SVD找特征向量的方法与通过协方差矩阵解析方法类似,详细内容见线性代数教程。

用PCA实现高维数据可视化

二维或三维数据更容易通过可视化发现模式。一个高维数据集是无法用图形表示的,但是我们可以通过降维方法把它降成二维或三维数据来可视化。

Fisher1936年收集了三种鸢尾花分别50个样本数据(Iris Data):Setosa、Virginica、Versicolour。解释变量是花瓣(petals)和萼片(sepals)长度和宽度的测量值,响应变量是花的种类。鸢尾花数据集经常用于分类模型测试,scikit-learn中也有。让我们把iris数据集降成方便可视化的二维数据:

In [5]:
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris

首先,我们导入鸢尾花数据集和PCA估计器。PCA类把主成分的数量作为超参数,和其他估计器一样,PCA也用fit_transform()返回降维的数据矩阵:

In [6]:
data = load_iris()
y = data.target
X = data.data
pca = PCA(n_components=2)
reduced_X = pca.fit_transform(X)

最后,我们把图形画出来:

In [9]:
red_x, red_y = [], []
blue_x, blue_y = [], []
green_x, green_y = [], []for i in range(len(reduced_X)):if y[i] == 0:red_x.append(reduced_X[i][0])red_y.append(reduced_X[i][1])elif y[i] == 1:blue_x.append(reduced_X[i][0])blue_y.append(reduced_X[i][1])else:green_x.append(reduced_X[i][0])green_y.append(reduced_X[i][1])plt.scatter(red_x, red_y, c='r', marker='x')
plt.scatter(blue_x, blue_y, c='b', marker='D')
plt.scatter(green_x, green_y, c='g', marker='.')
plt.show()


降维的数据如上图所示。每个数据集中三个类都用不同的符号标记。从这个二维数据图中可以明显看出,有一个类与其他两个重叠的类完全分离。这个结果可以帮助我们选择分类模型。

PCA脸部识别

现在让我们用PCA来解决一个脸部识别问题。脸部识别是一个监督分类任务,用于从照片中认出某个人。本例中,我们用剑桥大学AT&T实验室的Our Database of Faces数据集,这个数据集包含40个人每个人10张照片。这些照片是在不同的光照条件下拍摄的,每张照片的表情也不同。照片都是黑白的,尺寸为92 x 112像素。虽然这些图片都不大,但是每张图片的按像素强度排列的特征向量也有10304维。这些高维数据的训练可能需要很多样本才能避免拟合过度。而我们样本量并不大,所有我们用PCA计算一些主成分来表示这些照片。

我们可以把照片的像素强度矩阵转换成向量,然后用所有的训练照片的向量建一个矩阵。每个照片都是数据集主成分的线性组合。在脸部识别理论中,这些主成分称为特征脸(eigenfaces)。特征脸可以看成是脸部的标准化组成部分。数据集中的每张脸都可以通过一些标准脸的组合生成出来,或者说是最重要的特征脸线性组合的近似值。

In [1]:
from os import walk, path
import numpy as np
import mahotas as mh
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import cross_val_score
from sklearn.preprocessing import scale
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_reportX = []
y = []

下面我们把照片导入Numpy数组,然后把它们的像素矩阵转换成向量:

In [6]:
for dir_path, dir_names, file_names in walk('mlslpic/att-faces/'):for fn in file_names:if fn[-3:] == 'pgm':image_filename = path.join(dir_path, fn)X.append(scale(mh.imread(image_filename, as_grey=True).reshape(10304).astype('float32')))y.append(dir_path)X = np.array(X)

然后,我们用交叉检验建立训练集和测试集,在训练集上用PCA:

In [3]:
X_train, X_test, y_train, y_test = train_test_split(X, y)
pca = PCA(n_components=150)

我们把所有样本降到150维,然后训练一个逻辑回归分类器。数据集包括40个类;scikit-learn底层会自动用one versus all策略创建二元分类器:

In [4]:
X_train_reduced = pca.fit_transform(X_train)
X_test_reduced = pca.transform(X_test)
print('训练集数据的原始维度是:{}'.format(X_train.shape))
print('PCA降维后训练集数据是:{}'.format(X_train_reduced.shape))
classifier = LogisticRegression()
accuracies = cross_val_score(classifier, X_train_reduced, y_train)
训练集数据的原始维度是:(300, 10304)
PCA降维后训练集数据是:(300, 150)

最后,我们用交叉验证和测试集评估分类器的性能。分类器的平均综合评价指标(F1 score)是0.88,但是需要花费更多的时间训练,在更多训练实例的应用中可能会更慢。

In [7]:
print('交叉验证准确率是:{}\n{}'.format(np.mean(accuracies), accuracies))
classifier.fit(X_train_reduced, y_train)
predictions = classifier.predict(X_test_reduced)
print(classification_report(y_test, predictions))
交叉验证准确率是:0.823104855161
[ 0.84210526  0.79        0.8372093 ]precision    recall  f1-score   supportmlslpic/att-faces/s1       1.00      1.00      1.00         1
mlslpic/att-faces/s10       1.00      1.00      1.00         2
mlslpic/att-faces/s11       1.00      0.83      0.91         6
mlslpic/att-faces/s12       1.00      1.00      1.00         2
mlslpic/att-faces/s13       1.00      1.00      1.00         3
mlslpic/att-faces/s14       0.33      1.00      0.50         2
mlslpic/att-faces/s15       1.00      1.00      1.00         4
mlslpic/att-faces/s17       1.00      1.00      1.00         2
mlslpic/att-faces/s18       1.00      1.00      1.00         2
mlslpic/att-faces/s19       1.00      1.00      1.00         2
mlslpic/att-faces/s2       0.00      0.00      0.00         0
mlslpic/att-faces/s20       1.00      1.00      1.00         2
mlslpic/att-faces/s21       1.00      1.00      1.00         3
mlslpic/att-faces/s22       1.00      1.00      1.00         3
mlslpic/att-faces/s23       1.00      1.00      1.00         1
mlslpic/att-faces/s24       1.00      1.00      1.00         3
mlslpic/att-faces/s25       1.00      1.00      1.00         4
mlslpic/att-faces/s26       1.00      1.00      1.00         4
mlslpic/att-faces/s27       1.00      1.00      1.00         3
mlslpic/att-faces/s28       0.00      0.00      0.00         1
mlslpic/att-faces/s29       1.00      0.50      0.67         2
mlslpic/att-faces/s3       1.00      1.00      1.00         3
mlslpic/att-faces/s30       1.00      1.00      1.00         3
mlslpic/att-faces/s31       0.75      1.00      0.86         3
mlslpic/att-faces/s32       1.00      0.75      0.86         4
mlslpic/att-faces/s33       0.00      0.00      0.00         1
mlslpic/att-faces/s34       0.75      1.00      0.86         3
mlslpic/att-faces/s35       1.00      1.00      1.00         2
mlslpic/att-faces/s36       0.50      1.00      0.67         1
mlslpic/att-faces/s37       1.00      0.17      0.29         6
mlslpic/att-faces/s38       1.00      1.00      1.00         2
mlslpic/att-faces/s39       1.00      1.00      1.00         2
mlslpic/att-faces/s4       1.00      1.00      1.00         1
mlslpic/att-faces/s40       0.00      0.00      0.00         1
mlslpic/att-faces/s5       0.80      0.80      0.80         5
mlslpic/att-faces/s6       1.00      1.00      1.00         2
mlslpic/att-faces/s7       1.00      1.00      1.00         2
mlslpic/att-faces/s8       1.00      1.00      1.00         4
mlslpic/att-faces/s9       1.00      1.00      1.00         3avg / total       0.93      0.88      0.88       100

总结

本章,我们介绍了降维问题。高维数据不能轻易可视化。估计器训练高维数据集时,也可能出现维度灾难。我们通过主成分分析法缓解这些问题,将可能解释变量具有相关性的高维数据集,通过将数据映射到一个低维子空间,降维成一个线性无关的低维数据集。我们用主成分分析将四维的鸢尾花数据集降成二维数据进行可视化,还建立了一个脸部识别系统。下一章,我们将回到监督学习方法,介绍一种分类算法——感知器(perceptron),本系列的最后两章都是建立在感知器的基础上。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. myeclipse6.5 反编译工具 jadclipse jad java反编译

     http://download.csdn.net/download/chenhu520/2707596MyEclipse6.5和eclipse3.3 的反编译插件的安装 以下介绍我的安装步骤,请根据自己实际路径稍作更改: MyEclipse6.5的安装目录是C:\Program Files\MyEclipse 6.5 第一步:下载jadclipse_3.3.0.zip里边有jad.exe和net.…...

    2024/4/13 1:31:17
  2. 分享java反编译工具,超级好用

    百度云盘链接:https://pan.baidu.com/s/1jxDQVwIqzFIjX13Av4bgCQ...

    2024/5/9 11:35:05
  3. PCA的原理简述

    PCA的实质就是要根据样本向量之间的相关性排序,去掉相关性低的信息,也就是冗余的特征信息。 我们都知道噪声信号与待测量的信号之间实际上是没有相关性的,所以我我们利用这个原理就可以将与待测量无关的噪声信号PCA去噪PCA的原理也就是它的简单的实现过程就是: 首先将样本数…...

    2024/5/9 18:20:34
  4. 配置java反编译工具及添加源码

    先记下:添加源码,在eclipse的preference-->Java-->Build Path-->user library,点开想要添加的jar文件,选择“添加源文件” 一、下载: 下载插件: jadclips插件网站: http://jadclipse.sourceforge.net/ 下载Jad反编译工具:http://www.kpdus.com/jad.html#dow…...

    2024/4/17 23:25:58
  5. PCA使用SVD解决

    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 主成分分析在上一节里面也讲了一些,这里主要谈谈如何用SVD去解PCA的问题。PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描述的是一个变量的信息量,我们在讲…...

    2024/5/9 13:16:09
  6. 数据分析:主成分分析(PCA)1

    目录: 文章目录目录:主成分分析1K-L变换(卡洛南-洛伊(Karhunen-Loeve)变换):最优正交变换小结一下:2pca分析 #前言怕什么真理无穷,进一寸有一寸的欢喜——胡适学以致用,以学促用。 最近在分析数据,发现几大分析方法,PCA,ICA,CCA,在学后发觉看过读过是没有用的,…...

    2024/4/13 1:31:48
  7. 机器学习实战——PCA(主成分分析)

    本章关于PCA的代码虽少,但涉及到的知识却很多,由于数学知识比较浅薄,所以在看这章时提前查找资料复习了很多的概率论和统计学知识和python基础知识,这里记录的很多都是关于PCA的相关知识或理论(例如:特征向量、协方差矩阵等),由于部分知识涉及较多,讲的有点详细所以文…...

    2024/4/8 20:26:19
  8. PCA算法入门级讲解到深度挖掘

    PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文…...

    2024/4/13 1:31:48
  9. ubuntu 10.04 安装java反编译工具 jd-gui

    想看一下自己混淆后的apk被反编译后的效果,反编译出jar包后,下了一个java反编译工具jd-gui,在我的64位ubuntu系统的打不开,用命令行打开发现缺少几个依赖包,baidu了一个现成的答案,解决了sudo apt-get install libgtk2.0-0:i386 libxxf86vm1:i386 libsm6:i386 lib32stdc+…...

    2024/4/13 1:31:48
  10. PCA 的数学原理和可视化效果

    本文结构:什么是 PCA 数学原理 可视化效果1. 什么是 PCAPCA (principal component analysis, 主成分分析) 是机器学习中对数据进行降维的一种方法。例如,我们有这样的交易数据,它有这几个特征:(日期, 浏览量, 访客数, 下单数, 成交数, 成交金额),从经验可知,“浏览量”和…...

    2024/4/15 19:47:21
  11. pca数据降维和k-means聚类

    pca和k-means属于机器学习中无监督学习,PCA(principal components analysis)即主成分分析技术,又称主分量分析。主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在统计学中,主成分分析PCA是一种简化数据集的技术。它是一个线性变换。这个…...

    2024/4/17 7:11:18
  12. 利用PCA+KNN在MNIST数据集上达到97%准确率

    利用PCA+KNN在MNIST数据集上达到97%准确率写在前面算法实现1、引用必要的库文件2、读入数据3、利用主成分分析对数据进行降维4、KNN的实现5、结果测试 写在前面本文的工作基于python,利用主成分分析(PCA)和K近邻算法(KNN)在MNIST手写数据集上进行了分类。 由于skeleton库中…...

    2024/4/19 23:26:42
  13. 理解主成分分析 (PCA)

    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。 其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。书的购买链接书的勘误,优化,源代码资…...

    2024/4/13 1:32:18
  14. 基于主成分变换(PCA)的图像融合

    参考资料:https://blog.csdn.net/u013165921/article/details/78339942 基于 IHS 变换和主成分分析变换的图像融合 PCA变换 PCA变换也称霍特林变换或K-L变换,是一种基于信息量的正交线性变换,该变换主要是采用线性投影的方法将数据投影到新的坐标空间中,从而使得新的成分按信…...

    2024/4/13 1:31:58
  15. 【反编译工具】JD-GUI、Luyten(Java反编译)

    JD-GUI 是属于 Java Decompiler 项目(JD项目)下的图形化运行方式的反编译器, 这是它的官网地址:http://jd.benow.ca/如果出现 INTERNAL ERROR 的错误提示,说明反编译失败,转用 Luyten。Luyten 和 JD-GUI 的图形界面差不多,使用时候互为补充。...

    2024/4/13 1:32:18
  16. PCA和LDA以及之间的区别

    Season请您先思考: PCA与矩阵有什么关系? LDA与瑞利商有什么关系? PCA和LDA在降维世界里,谁是赢家?一、PCA1、思想 主成分分析(Principal components analysis),是一种降维方法,在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用,需要我们找出数…...

    2024/4/13 1:31:53
  17. Python3 PCA理解小攻略

    主成分分析(Principal Component Analysis,PCA), 是一种多元统计方法,也广泛应用于机器学习和其它领域。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。它的主要作用是对高维数据进行降维。PCA把原先的n个特征用数目更少…...

    2024/4/18 19:05:47
  18. java 反编译 支持泛型 luyten

     Java反编译器luyten luyten是github上的一个开源项目,目前支持.exe、.jar、.dmg和源代码下载,Jd-Gui显示INTERNAL ERROR的class文件可以用这个可以打开。 但在使用Mac版的luyten时,import类的完整包名会显示不了,并且也跳转不了,反编译时可结合Jd-Gui一起使用。 项目…...

    2024/4/20 8:54:28
  19. Android Java 反编译工具:jadx

    对于Android 的Java 反编译工具,我最先用的是Dex2Jar, 这个工具用了很长时间,也非常好用。为了有更多的选择,扩展视野,此篇介绍另一个开源的反编译工具jadx! 开源地址:https://github.com/skylot/jadx 我是一个懒人,直接copy开源文档如下,自己凑合着看吧,相信大家看懂…...

    2024/4/17 10:22:52
  20. 一目了然之 PCA SVD 协方差 相关系数及区分

    一、数据降维技术 主要有三种:PCA(主成分分析法)、FA(因子分析法)、ICA(独立成分分析法),应用最广范、最广为人知的就是PCA方法,这里主要分析PCA方法。二、PCA 首先要知道的是PCA降维的原理和目的是什么? 原理:最大化投影后数据的方差,表示为在某一维度的…...

    2024/4/5 1:42:03

最新文章

  1. 智能商品计划系统:引领未来零售业的革新之路

    随着科技的飞速发展,人工智能(AI)和大数据技术已成为推动各行业革新的关键动力。在零售行业中,智能商品计划系统的出现,正逐步改变着传统的商品规划与管理方式,为品牌注入新的活力与竞争力。本文将对智能商…...

    2024/5/9 20:14:35
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 数据结构——二叉树——二叉搜索树(Binary Search Tree, BST)

    目录 一、98. 验证二叉搜索树 二、96. 不同的二叉搜索树 三、538. 把二叉搜索树转换为累加树 二叉搜索树:对于二叉搜索树中的每个结点,其左子结点的值小于该结点的值,而右子结点的值大于该结点的值 一、98. 验证二叉搜索树 给你一个二叉树的…...

    2024/5/8 18:39:40
  4. Kafka架构概述

    Kafka的体系结构 Kafka是由Apache软件基金会管理的一个开源的分布式数据流处理平台。Kafka具有支持消息的发布/订阅模式、高吞吐量与低延迟、持久化、支持水平扩展、高可用性等特点。可以将Kafka应用于大数据实时处理、高性能数据管道、流分析、数据集成和关键任务应用等场景。…...

    2024/5/6 22:36:40
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/9 7:32:17
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57