我试图通过使用截断的 SVD 计算最好的 n_components 来减少数据集的维度,但这需要很多时间。
from sklearn.decomposition import TruncatedSVD
pca = TruncatedSVD()
pca.n_components = 10048
pca_data = pca.fit_transform(X_tr)
percentage_var_explained = pca.explained_variance_ /
np.sum(pca.explained_variance_);cum_var_explained = np.cumsum(percentage_var_explained)
Run Code Online (Sandbox Code Playgroud) 考虑下面的 C 代码。
#include <stdio.h>
int main(){
unsigned int x[4][3] = {{1, 2, 3}, {4, 5, 6},
{7, 8, 9}, {10, 11, 12}};
printf("%u, %u, %u", x+3, *(x+3), *(x+2)+3);
printf("\n%u, %u, %u", x,&x,*x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,每个 printf 语句都打印相同的值,如下所述。
6356724, 6356724, 6356724
6356688, 6356688, 6356688
Process returned 0 (0x0) execution time : 0.128 s
Press any key to continue.
Run Code Online (Sandbox Code Playgroud)
我想知道每个 printf 语句的结果如何相同。这是我对二维数组内存布局的理解。

现在我相信 x+3 指的是( x + 3 * 指针算术所需的大小) = 24 和 *(x +3 ) = *(24) = 2036 …