我做了一个自己的随机数据,它包含一个18行5列的文本文件,所有的条目都是整数。
我成功地做了PCA,但现在卡住了。我无法做散点图。下面是我的代码:
f=open(r'<path>mydata.txt')
print(f.read()) #reading from a file
with open(r'<path>mydata.txt') as f:
emp= []
for line in f:
line = line.split()
if line:
line = [int(i) for i in line]
emp.append(line)
from sklearn.decomposition import PCA
import pylab as pl
from itertools import cycle
X = emp
pca = PCA(n_components=3, whiten=True).fit(X)
X_pca = pca.transform(X) #regular PCA
现在,PCA已经完成,方差已知,我该如何绘图?
下面是我的数据集中的样本数据:
2 1 2 3 0
2 3 2 3 0
1 3 1 1 0
1 5 2 1 0
2 3 1 1 0
3 3 0 1 0
7 1 1 1 1
7 2 2 1 1
1 1 1 4 1
3 2 3 2 1
2 2 2 2 1
1 3 2 3 1
2 3 2 1 2
2 2 1 1 2
7 5 3 2 2
3 4 2 4 2
2 1 1 1 2
7 1 3 3 2
2条答案
按热度按时间pvabu6sv1#
这就是你想要的吗?
三个不同数据集的结果如下所示:
编辑:
希望我现在能更好地理解你的问题。下面是新代码:
我将作业分别命名为
'A', 'B', and 'C'
,id为0, 1, and 2
。从emp
的最后一行,我创建了一个numpy
数组来保存这些索引。在关键的绘图命令中,我通过作业id屏蔽了数据。希望这能有所帮助。结果图如下所示:
编辑2:
如果你只想要一个图,比如说,X_pca的第一列和第二列相互关联,代码变得简单得多:
结果如下:
我强烈建议您阅读这些示例中使用的函数的文档。
4ktjp1zp2#
根据你的评论,你想得到这个(https://i.stack.imgur.com/VsicE.jpg),这里是如何使用sklearn库:
在这个例子中,我使用虹膜数据:
第1部分:仅绘制散点图
结果1
第2部分:如果你想绘制著名的双标图
结果2