1
daweii 2022-02-12 11:47:05 +08:00 via iPhone
降维也是一种学习。举个例子,学生的成绩有语文,数学,长跑,跳高。本来衡量学生成绩有四个数据,如果用 pca 降到两维的话,就被压缩成了智力和体育两维。如此以后,对于新的学生,我们可以通过 pca 预测学生的智力与体育成绩,从而更直观地评价学生。
|
2
huzhikuizainali OP @daweii 对于新的学生,我们可以通过 pca 预测学生的智力与体育成绩,从而更直观地评价学生。---------通过你举得例子,我觉得 PCA 只完成了工作的前半部分“压缩”的任务。在“预测”部分我没有看出 PCA 出力。可否再启发一下我?
|
3
daweii 2022-02-12 19:36:53 +08:00
我知道你问的是什么了。我忘了看问题的后半部分了。
> PCA 呢,你给一个 mxn 图片降维后,得到一组新空间的基底。你再给一个 mxn 的新图片降维,又会生成一组新空间的基底。假设我们都保留 95%的方差,这两组基底的数量可能不同吧?两组基底的第一主成分向量方向也可能不同吧?第一主成分保留的方差百分比也不同吧?所以好像也没有什么比较固定的训练成果保留下来啊。 说实话没看懂你说的基底是什么。你所说的 [生成一组新空间的基底] 是什么意思? 打个比方有一组二维数据里面三个点(-2,-2 ),( 0,0 ),( 2,2 )。 这个很明显的 X=Y, 画出来就是一条对角线。 我们可以用这一条对角线来描述这组数据。这个就是 PCA 学到的东西。 比如说新来了一个点( 1,1 ),它离原点的距离是 1.414 ,所以我们把它映射到这条新的坐标轴后,可以用 1.414 代替这个数据。尽管训练数据里没有这点。 ```python import numpy as np from sklearn.decomposition import PCA X = np.array([[-2, -2], [0, 0], [2, 2]]) pca = PCA(n_components=1) pca.fit(X) data = [[1,1]] pca.transform(data).round(3) # output array([[1.414]]) ``` |
4
ALLROBOT 2022-03-16 14:22:42 +08:00 via Android
吴恩达机器学习课程有涉及 PCA ,楼主可以去看看 [[中英字幕]吴恩达机器学习系列课程-哔哩哔哩] https://b23.tv/MQJ3gHm ,课程位置位于 14-7
|