我正在尝试从这里编译ISO-SQL 2003语法 http://www.antlr3.org/grammar/1304304798093/SQL2003_Grammar.zip.它的所有三个版本都可以在http://www.antlr3.org/grammar/list.html找到.
这些是我遵循的步骤,
ANTLRDemo.java文件:
import org.antlr.runtime.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ANTLRDemo {
static String readFile(String path) throws IOException
{
byte[] encoded = Files.readAllBytes(Paths.get(path));
return new String(encoded, "UTF-8");
}
public static void main(String[] args) throws Exception {
ANTLRStringStream in = new ANTLRStringStream( readFile(args[0]) );
sql2003Lexer lexer = new sql2003Lexer(in);
CommonTokenStream tokens = new CommonTokenStream(lexer);
sql2003Parser parser = …Run Code Online (Sandbox Code Playgroud) 当第一个组件覆盖超过PCA分析总方差的99%时,它意味着什么/意味着什么?我有一个大小为500X1000的特征向量,我使用Matlab的pca函数返回[coeff,score,latent,tsquared,explain].变量'explain'返回每个组件所涵盖的方差百分比.
我有一个500x1000的特征向量,主成分分析表明,第一个成分涵盖了超过99%的总方差.因此,我将1000维点替换为1维点,给出500x1特征向量(使用Matlab的pca函数).但是,我的分类器精度最初约为80%,1000个特征现在降至30%,其中1个特征即使超过99%的方差由此特征计算.可能是什么解释或我的方法错了?
(这个问题部分来自我之前的问题,即PCA中第一个成分所涵盖的99%的方差的意义)
编辑:我使用weka的主成分方法来执行降维和支持向量机(SVM)分类器.