通常PCA变换很容易被反转:
import numpy as np
from sklearn import decomposition
x = np.zeros((500, 10))
x[:, :5] = random.rand(500, 5)
x[:, 5:] = x[:, :5] # so that using PCA would make sense
p = decomposition.PCA()
p.fit(x)
a = x[5, :]
print p.inverse_transform(p.transform(a)) - a # this yields small numbers (about 10**-16)
Run Code Online (Sandbox Code Playgroud)
现在,如果我们尝试添加whiten = True参数,结果将完全不同:
p = decomposition.PCA(whiten=True)
p.fit(x)
a = x[5, :]
print p.inverse_transform(p.transform(a)) - a # now yields numbers about 10**15
Run Code Online (Sandbox Code Playgroud)
所以,因为我没有找到任何其他可以做到这一点的方法,所以我觉得如何才能获得原始值?或者它甚至可能吗?非常感谢您的帮助.
说,我有两个文件,想知道他们有多少相等的行.例如,file1是
1
3
2
4
5
0
10
Run Code Online (Sandbox Code Playgroud)
和file2包含
3
10
5
64
15
Run Code Online (Sandbox Code Playgroud)
在这种情况下,答案应为3(公共线为'3','10'和'5').
当然,这可以通过python完成,例如,但我很好奇从bash(使用一些标准工具或awk等其他东西).这就是我想出的:
cat file1 file2 | sort | uniq -c | awk '{if ($1 > 1) {$1=""; print $0}}' | wc -l
Run Code Online (Sandbox Code Playgroud)
这对任务来说似乎太复杂了,所以我想知道是否有更简单或更优雅的方法来实现相同的结果.
PS将公共部分的百分比输出到每个文件中的行数也很不错,但不是必需的.
UPD:文件没有重复的行
当Kinect本身没有插入时,是否可以模拟Kinect传感器(用于Kinect SDK)?
首先,我认为Kinect Studio完全符合我的要求,但现在看来Kinect Studio可以记录数据流,并可以将它们"提供"给应用程序,但无法模拟与传感器的连接.所以目前我有几个.xed文件用Kinect Studio录制,我无法启动任何启用Kinect的应用程序,而不会得到"Kinect传感器未插入"或任何消息.
有没有办法解决?我可以访问Kinect,但它不在同一个地方,我打算编写大部分代码(我非常希望用记录数据运行/调试它).
我真的很感激任何帮助.
PS也许我只是错误地使用Kinect Studio,它实际上可以模拟Kinect连接(实际上这是最好的情况).
awk ×1
bash ×1
c# ×1
emulation ×1
kinect ×1
kinect-sdk ×1
pca ×1
python-2.7 ×1
scikit-learn ×1