首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PCA pca =新PCA

PCA pca =新PCA
EN

Stack Overflow用户
提问于 2011-06-12 03:57:17
回答 2查看 1.1K关注 0票数 0

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

代码语言:javascript
复制
double[][] data = new double [1][600]; 
PCA pca = new PCA(data, 20);
data = pca.getPCATransformedDataAsDoubleArray();

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

为什么?

代码语言:javascript
复制
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] + " ");
        }




   }
}
EN

回答 2

Stack Overflow用户

发布于 2011-06-12 05:08:25

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

票数 3
EN

Stack Overflow用户

发布于 2011-06-12 04:00:57

使用getPCATransformedDataAsDoubleArray方法的结果覆盖数据数组。我假设,由于构造函数arg,这是一个有20个条目的数组。我不知道,为什么所有的值都是零,我想,因为它是在PCA类中定义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6318202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档