站长杂谈

香港服务器的weka数据挖掘实例

时间:2017-04-12 16:53 点击:

  香港服务器的weka数据挖掘实例

  在现如今进行数据挖掘已经有了许多可以选择的方案,例如决策树以及神经网络等等一系列的业已成熟的方案供我们选择,而且对于香港服务器的使用者来说,服务器的强大的处理能力,使得开发人员可以在不用考虑计算机处理能力的情况下方便的调用各种开发工具进行数据挖掘,例如我们经常提到的weka变提供了许多可以直接调用的api供我们使用。

  首先我们先来介绍一下weka中的分类器的使用方法,在所有的分类器中我们首先介绍一下J48决策树分类器的使用,训练分类器使用J48的buildClassifier,在进行分类数据的时候用J48类中的classifyInstance方法,在下面的实例中我们所使用的数据集为weka自带的数据文件contact-lenses.arff,最后我们得到的分类结果为2.0,对于最终的结果为2.0,我们做出以下解释,首先用文本编辑器打开数据集,我们可以看到有一行为@attributecontact-lenses{soft,hard,none},而第一个样本为young,myope,no,reduced,none,最后一列为类别,通过观察第一个样本我们发现它的类别为none,在属性说明中none为第二个所以最后的分类结果为2.0。

  相关代码的展示为:

  publicclassClassifierTest

  {

  privateInstancesm_instances=null;

  publicvoidgetFileInstances(StringfileName)throwsException

  {

  FileReaderfrData=newFileReader(fileName)

  m_instances.setClassIndex(m_instances.numAttributes()-1);

  }

  publicvoidclassify()throwsException

  {

  J48classifier=newJ48();

  System.out.println(classifier.classifyInstance(m_instances.instance(0)));

  }

  publicstaticvoidmain(String[]args)throwsException

  {

  ClassifierTestctest=newClassifierTest();

  ctest.getFileInstances("F://ProgramFiles//Weka-3-4//data//contact-lenses.arff");

  }

  }

  接下来我们介绍一下Evaluation类的使用方法,在上面的例子之中,我们仅仅是得到了一个实例的分类结果,这当然是不满足数据挖掘的基本要求的,在进行数据挖掘的时候我们往往需要得到数据的详细信息,这个时候我们可以通过Evaluation类进行实现,当然在这里我们只是讲一下最简单的用法,首先我们需要初始化一个Evaluation对象,在Evaluation类中没有无参的构造函数,一般认为Instances对象为传入的参数,通过传入Instances对象,我们便可以得到相应的构造函数。

  如果在进行数据挖掘的时候没有足够的数据,仅仅是只能够提供训练集,这个时候就可以使用CrossValidation方法进行构造,Evaluation中crossValidateModel方法存在四个参数,他们分别分类器、在某个数据集上评价的数据集、交叉检验的次数,以及一个随机数对象。

  如果数据量足够的大,可以分为训练集和测试集,便可以使用Evaluation类中的evaluateModel方法,此方法中存在两个参数:分别为一个训练过的分类器以及某个数据集上评价的数据集。在下面的例子中我们由于数据量并不是十分的大,所以我们使用训练集做为测试集,下面我们便进行相关代码的展示,

  publicclassEvaluationTest

  {

  privateInstancesm_instances=null;

  publicvoidgetFileInstances(StringfileName)throwsException

  {

  FileReaderfrData=newFileReader(fileName);

  m_instances.setClassIndex(m_instances.numAttributes()-1);

  }

  publicvoidcrossValidation()throwsException

  {

  J48classifier=newJ48();

  eval.crossValidateModel(classifier,m_instances,10,newRandom(1));

  System.out.println(eval.toMatrixString());

  }

  publicvoidevaluateTestData()throwsException

  {

  J48classifier=newJ48();

  classifier.buildClassifier(m_instances);

  Evaluationeval=newEvaluation(m_instances);

  System.out.println(eval.toMatrixString());

  }

  publicstaticvoidmain(String[]args)throwsException

  {

  EvaluationTestetest=newEvaluationTest();

  etest.getFileInstances("F://ProgramFiles//Weka-3-4//data//contact-lenses.arff");

  etest.crossValidation();

  etest.evaluateTestData();

  }

  }

  如果您还有什么不明确或者是不懂的地方,欢迎来新世界主机咨询了解,详情请咨询Skype:vpssj.net@hotmail.com 。我们必将竭诚为您服务。