gpt4 book ai didi

java - PCA pca = 新PCA

转载 作者:行者123 更新时间:2023-12-02 08:16:26 27 4
gpt4 key购买 nike

我们如何将 PCA 应用于一维数组?

double[][] data = new double [1][600]; 
PCA pca = new PCA(data, 20);
data = pca.getPCATransformedDataAsDoubleArray();

当打印数据数组中的值时,数据数组中的特征减少 600 到 20,但所有值都为零。

为什么?

package VoiceRecognation;

import Jama.Matrix;
import comirva.data.DataMatrix;
import comirva.util.PCA;


import javax.print.attribute.standard.Finishings;
import java.io.File;

/**
* Created by IntelliJ IDEA.
* User: SAHIN
* Date: 11.06.2011
* Time: 19:33
* To change this template use File | Settings | File Templates.
*/
public class Deneme {
public static void main(String[] args) {

int[] group = Groups.getGroups();
File[] files = Files.getFiles();
double[][] data = FindMfccOfFiles.findMFCCValuesOfFiles(files);
PCA pca = new PCA(data, 20);
data = pca.getPCATransformedDataAsDoubleArray();


File file = new File("src/main/resources/Karisik/E-Mail/(1).wav");
double[] testdata = MFCC.getMFCC(file);

double[][] result = new double[1][600];
result[0] = testdata;

PCA p = new PCA(result, 20);
double [][] sum = p.getPCATransformedDataAsDoubleArray();
for (int i = 0; i < sum[0].length; i++) {
System.out.print(sum[0][i] + " ");
}




}
}

最佳答案

主成分分析用于减少问题的维数。音频文件的尺寸是 channel (例如左扬声器、右扬声器),而不是单个样本。在这种情况下,单声道音频流实际上只有一个维度。因此,您不会使用 PCA 减少样本数量,但可以减少音频中的 channel 数量。但您可以在不使用 PCA 的情况下通过对每个 channel 上的样本进行平均来实现这一点。因此,除非您尝试将立体声音频转换为单声道,否则我认为您需要采用不同的方法来解决问题。

关于java - PCA pca = 新PCA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318202/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com