2011-06-11 7 views
0

1次元配列にPCAを適用するにはどうすればよいですか? PCA pca = new PCA

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

印刷データ配列内の値は、データアレイ内の機能は20から600に減少

が、すべての値がゼロ。

なぜですか?

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] + " "); 
     } 




    } 
} 
+0

PCA - 主成分分析ですか?これはどんな言語ですか?私たちは、あなたが私たちにもっと続けていくまで、あなたを助けることはできません。 – I82Much

+0

私はcomirva.util.PCAを使用しました。主成分分析のために、音声認識プロジェクトを研究します。音声の特徴数を減らす必要がありますか?サンプルコードを教えていただけますか? – sahini

+0

私はJAVAを使用しています – sahini

答えて

0

データ配列をgetPCATransformedDataAsDoubleArrayメソッドの結果で上書きします。私は、これはコンストラクタargのために20エントリの配列であると仮定します。私は、すべての値がゼロである理由は分かりません。PCAクラスで定義されているからです。

+0

私はcomirva.util.PCAを使用しました。主成分分析のために、音声認識プロジェクトを研究します。音声の特徴の数を減らさなければなりませんか?サンプルコードを教えていただけますか? – sahini

2

主成分分析は、問題の次元を減らすために使用されます。オーディオファイルのサイズは、個々のサンプルではなくチャンネル(左スピーカー、右スピーカーなど)です。その場合、実際にモノオーディオストリームの次元は1つだけです。したがって、サンプルの数をPCAを使用してに減らすことはありませんが、オーディオ内のチャネルの数を減らすことができます。しかし、各チャンネルのサンプルを平均化するだけで、PCAを使用せずにこれを行うことができます。だから、ステレオオーディオをモノラルに変換しようとしているのでなければ、私はあなたの問題に対して別のアプローチが必要だと思います。

+0

ひとつのawuidoファイルには600個の機能がありますが、どうすれば20に減らすことができますか? – sahini

+0

@sahini 20個の機能について話すと、ケプストラム係数を意味しますか? – kamaci