• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ClusterEvaluation类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中weka.clusterers.ClusterEvaluation的典型用法代码示例。如果您正苦于以下问题:Java ClusterEvaluation类的具体用法?Java ClusterEvaluation怎么用?Java ClusterEvaluation使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ClusterEvaluation类属于weka.clusterers包,在下文中一共展示了ClusterEvaluation类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: guessNumClusters

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
private int guessNumClusters(EM clusterer, Instances instances, int start, int end) throws Exception {
    ClusterEvaluation eval = new ClusterEvaluation();
    int bestNum = start;
    double best = Double.POSITIVE_INFINITY;
    double bic;
    for (int c = start; c <= end; c++) {
        clusterer.setNumClusters(c);
        clusterer.buildClusterer(instances);
        eval.setClusterer(clusterer);
        eval.evaluateClusterer(instances);
        bic = bic(eval.getLogLikelihood(), c, instances.numInstances());
        logger.trace("numCluster " + c + " -> BIC: " + bic);
        if (bic < best) {
            best = bic;
            bestNum = c;
            logger.trace("bestNum: " + bestNum);
        }
    }
    return bestNum;
}
 
开发者ID:mstritt,项目名称:orbit-image-analysis,代码行数:21,代码来源:TMAPoints.java


示例2: main

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
public static void main(String args[]) throws Exception{
	
	//load data
	Instances data = new Instances(new BufferedReader(new FileReader("data/bank-data.arff")));
	
	// new instance of clusterer
	EM model = new EM();
	// build the clusterer
	model.buildClusterer(data);
	System.out.println(model);
	
	double logLikelihood = ClusterEvaluation.crossValidateModel(model, data, 10, new Random(1));
	System.out.println(logLikelihood);


}
 
开发者ID:PacktPublishing,项目名称:Machine-Learning-End-to-Endguide-for-Java-developers,代码行数:17,代码来源:ClusteringTask.java


示例3: generateClassToCluster

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
public void generateClassToCluster(){
	Remove filter = new Remove();
	filter.setAttributeIndices("" + (weather.classIndex() + 1));
	try {
		filter.setInputFormat(weather);
		Instances dataClusterer = Filter.useFilter(weather, filter);
		clusterer = new EM();
		clusterer.buildClusterer(dataClusterer);
		ClusterEvaluation eval = new ClusterEvaluation();
		eval.setClusterer(clusterer);
		eval.evaluateClusterer(weather);

		System.out.println(eval.clusterResultsToString());
	} catch (Exception e) {
	}
}
 
开发者ID:PacktPublishing,项目名称:Java-Data-Science-Cookbook,代码行数:17,代码来源:WekaClassesToClusterTest.java


示例4: getResult

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
  * Gets the results for the supplied train and test datasets.
  *
  * @param train the training Instances.
  * @param test the testing Instances.
  * @return the results stored in an array. The objects stored in
  * the array may be Strings, Doubles, or null (for the missing value).
  * @exception Exception if a problem occurs while getting the results
  */
 public Object [] getResult(Instances train, Instances test) 
   throws Exception {
   
   if (m_clusterer == null) {
     throw new Exception("No clusterer has been specified");
   }
   int addm = (m_additionalMeasures != null) 
     ? m_additionalMeasures.length 
     : 0;
   int overall_length = RESULT_SIZE+addm;

   if (m_removeClassColumn && train.classIndex() != -1) {
     // remove the class column from the training and testing data
     Remove r = new Remove();
     r.setAttributeIndicesArray(new int [] {train.classIndex()});
     r.setInvertSelection(false);
     r.setInputFormat(train);
     train = Filter.useFilter(train, r);
     
     test = Filter.useFilter(test, r);
   }
   train.setClassIndex(-1);
   test.setClassIndex(-1);
     

   ClusterEvaluation eval = new ClusterEvaluation();

   Object [] result = new Object[overall_length];
   long trainTimeStart = System.currentTimeMillis();
   m_clusterer.buildClusterer(train);
   double numClusters = m_clusterer.numberOfClusters();
   eval.setClusterer(m_clusterer);
   long trainTimeElapsed = System.currentTimeMillis() - trainTimeStart;
   long testTimeStart = System.currentTimeMillis();
   eval.evaluateClusterer(test);
   long testTimeElapsed = System.currentTimeMillis() - testTimeStart;
   //    m_result = eval.toSummaryString();

   // The results stored are all per instance -- can be multiplied by the
   // number of instances to get absolute numbers
   int current = 0;
   result[current++] = new Double(train.numInstances());
   result[current++] = new Double(test.numInstances());

   result[current++] = new Double(eval.getLogLikelihood());
   result[current++] = new Double(numClusters);
   
   // Timing stats
   result[current++] = new Double(trainTimeElapsed / 1000.0);
   result[current++] = new Double(testTimeElapsed / 1000.0);
   
   for (int i=0;i<addm;i++) {
     if (m_doesProduce[i]) {
try {
  double dv = ((AdditionalMeasureProducer)m_clusterer).
    getMeasure(m_additionalMeasures[i]);
  Double value = new Double(dv);
  
  result[current++] = value;
} catch (Exception ex) {
  System.err.println(ex);
}
     } else {
result[current++] = null;
     }
   }
   
   if (current != overall_length) {
     throw new Error("Results didn't fit RESULT_SIZE");
   }
   return result;
 }
 
开发者ID:williamClanton,项目名称:jbossBA,代码行数:82,代码来源:DensityBasedClustererSplitEvaluator.java


示例5: setUpVisualizableInstances

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
 * Sets up the structure for the visualizable instances. This dataset contains
 * the original attributes plus the clusterer's cluster assignments
 * 
 * @param testInstances the instances that the clusterer has clustered
 * @param eval the evaluation to use
 * @return a PlotData2D object encapsulating the visualizable instances. The
 *         instances contain one more attribute (predicted cluster) than the
 *         testInstances
 */
public static PlotData2D setUpVisualizableInstances(Instances testInstances,
    ClusterEvaluation eval) throws Exception {

  int numClusters = eval.getNumClusters();
  double[] clusterAssignments = eval.getClusterAssignments();

  FastVector hv = new FastVector();
  Instances newInsts;

  Attribute predictedCluster;
  FastVector clustVals = new FastVector();

  for (int i = 0; i < numClusters; i++) {
    clustVals.addElement(Messages.getInstance().getString(
        "ClustererPanel_SetUpVisualizableInstances_ClustVals_Text")
        + i);
  }
  predictedCluster = new Attribute(Messages.getInstance().getString(
      "ClustererPanel_SetUpVisualizableInstances_PredictedCluster_Text"),
      clustVals);
  for (int i = 0; i < testInstances.numAttributes(); i++) {
    hv.addElement(testInstances.attribute(i).copy());
  }
  hv.addElement(predictedCluster);

  newInsts = new Instances(testInstances.relationName() + "_clustered", hv,
      testInstances.numInstances());

  double[] values;
  int j;
  int[] pointShapes = null;
  int[] classAssignments = null;
  if (testInstances.classIndex() >= 0) {
    classAssignments = eval.getClassesToClusters();
    pointShapes = new int[testInstances.numInstances()];
    for (int i = 0; i < testInstances.numInstances(); i++) {
      pointShapes[i] = Plot2D.CONST_AUTOMATIC_SHAPE;
    }
  }

  for (int i = 0; i < testInstances.numInstances(); i++) {
    values = new double[newInsts.numAttributes()];
    for (j = 0; j < testInstances.numAttributes(); j++) {
      values[j] = testInstances.instance(i).value(j);
    }
    if (clusterAssignments[i] < 0) {
      values[j] = Instance.missingValue();
    } else {
      values[j] = clusterAssignments[i];
    }
    newInsts.add(new Instance(1.0, values));
    if (pointShapes != null) {
      if (clusterAssignments[i] >= 0) {
        if ((int) testInstances.instance(i).classValue() != classAssignments[(int) clusterAssignments[i]]) {
          pointShapes[i] = Plot2D.ERROR_SHAPE;
        }
      } else {
        pointShapes[i] = Plot2D.MISSING_SHAPE;
      }
    }
  }
  PlotData2D plotData = new PlotData2D(newInsts);
  if (pointShapes != null) {
    plotData.setShapeType(pointShapes);
  }
  plotData.addInstanceNumberAttribute();
  return plotData;
}
 
开发者ID:williamClanton,项目名称:jbossBA,代码行数:79,代码来源:ClustererPanel.java


示例6: start

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
@Override
public void start() throws Exception {
    if (clusterer == null || data == null) {
        throw new Exception("Please provide data examples and clusterer.");
    }

    // Przygotuj dane -> Ustaw klasę decyzyjną
    if (data.classIndex() == -1) {
        data.setClassIndex(data.numAttributes() - 1);
    }

    // Rozdziel przykłady na dwie klasy: mniejszościową i większościową
    Instances minorityInstances = new Instances(data);
    Instances majorityInstances = new Instances(data);
    separateDecisionClasses(data, minorityInstances, majorityInstances);

    // Pokaż statystyki przykladow
    showInitialDataStatitistics(minorityInstances, majorityInstances);

    // Usuń klasę decyzyjną -> uczenie nienadzorowane
    weka.filters.unsupervised.attribute.Remove filter = new weka.filters.unsupervised.attribute.Remove();
    filter.setAttributeIndices("" + (minorityInstances.classIndex() + 1));
    filter.setInputFormat(minorityInstances);
    Instances minorityInstancesNoClass = Filter.useFilter(minorityInstances, filter);
    Instances majorityInstancesNoClass = Filter.useFilter(majorityInstances, filter);
    Instances dataNoClass = Filter.useFilter(data, filter);

    // Stwórz skupiska

    DBSCAN dbScan = new DBSCAN();
    dbScan.setDatabase_Type("weka.clusterers.forOPTICSAndDBScan.Databases.SequentialDatabase");
    dbScan.setDatabase_distanceType("weka.clusterers.forOPTICSAndDBScan.DataObjects.EuclideanDataObject");
    dbScan.setEpsilon(0.5);
    dbScan.setMinPoints(4);
    clusterer = dbScan;
    clusterer.buildClusterer(minorityInstancesNoClass);

    // Pokaż wyniki analizy skupisk
    ClusterEvaluation evaluation = new ClusterEvaluation();
    evaluation.setClusterer(clusterer);
    evaluation.evaluateClusterer(minorityInstancesNoClass);
    System.out.println(evaluation.clusterResultsToString());

    // Klasyfikuj przyklady klasy wiekszosciowej do skupisk (nie modyfukuje skupisk)
    Map<Integer, Integer> majorityHistogram = createHistogram(clusterer, majorityInstancesNoClass);

    Map<Integer, Integer> minorityHistogram = createHistogram(clusterer, minorityInstancesNoClass);

    // Pokaz statystyki
    showHistogram(majorityHistogram, "Majority");
    showHistogram(minorityHistogram, "Minority");
    showCombinedHistograms(majorityHistogram, minorityHistogram);

    Map<Integer, Instances> clustersAssigmentsMap = new TreeMap<Integer, Instances>();


}
 
开发者ID:kokojumbo,项目名称:master-thesis,代码行数:58,代码来源:DBScanImbalancedAlgorithm.java


示例7: start

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
@Override
public void start() throws Exception {
    if (clusterer == null || data == null) {
        throw new Exception("Please provide data examples and clusterer.");
    }

    // Przygotuj dane -> Ustaw klasę decyzyjną
    if (data.classIndex() == -1) {
        data.setClassIndex(data.numAttributes() - 1);
    }

    // Rozdziel przykłady na dwie klasy: mniejszościową i większościową
    Instances minorityInstances = new Instances(data);
    Instances majorityInstances = new Instances(data);
    separateDecisionClasses(data, minorityInstances, majorityInstances);

    // Pokaż statystyki przykladow
    showInitialDataStatitistics(data, minorityInstances, majorityInstances);

    // Usuń klasę decyzyjną -> uczenie nienadzorowane
    weka.filters.unsupervised.attribute.Remove filter = new weka.filters.unsupervised.attribute.Remove();
    filter.setAttributeIndices("" + (minorityInstances.classIndex() + 1));
    filter.setInputFormat(minorityInstances);
    Instances minorityInstancesNoClass = Filter.useFilter(minorityInstances, filter);
    Instances majorityInstancesNoClass = Filter.useFilter(majorityInstances, filter);
    Instances dataNoClass = Filter.useFilter(data, filter);

    // Stwórz skupiska
    String options;
    if (autoParametrizationEnable) {
        options = getParametersForKMeans(minorityInstancesNoClass, filename);
        clusterer.setOptions(weka.core.Utils.splitOptions(options));
    }

    clusterer.buildClusterer(minorityInstancesNoClass);

    // Pokaż wyniki analizy skupisk
    ClusterEvaluation evaluation = new ClusterEvaluation();
    evaluation.setClusterer(clusterer);
    evaluation.evaluateClusterer(minorityInstancesNoClass);
    System.out.println(evaluation.clusterResultsToString());

    // Klasyfikuj przyklady klasy wiekszosciowej do skupisk (nie modyfukuje skupisk)
    Map<Integer, Integer> majorityHistogram = createHistogram(clusterer, majorityInstancesNoClass);

    Map<Integer, Integer> minorityHistogram = createHistogram(clusterer, minorityInstancesNoClass);

    // Pokaz statystyki
    showHistogram(majorityHistogram, "Majority");
    showHistogram(minorityHistogram, "Minority");
    showCombinedHistograms(majorityHistogram, minorityHistogram);

    // Rozdziel przyklady z klasami decyzyjnymi wedlug wyznaczonych skupisk
    Map<Integer, Instances> clustersAssignmentsMap = createClusterAssignmentsMap(data, dataNoClass, clusterer);
    showClusterAssignmentsMap(clustersAssignmentsMap);

    //SMOTE + Klasyfikacja
    System.out.println("Classifiers");
    for (Map.Entry<Integer, Instances> entry : clustersAssignmentsMap.entrySet()) {


        FilteredClassifier fc = new FilteredClassifier();
        if (smoteEnable) {
            System.out.println("SMOTE filtering");
            SMOTE smote = new SMOTE();
            smote.setOptions(weka.core.Utils.splitOptions("-C 0 -K 5 -P " + getSMOTEPercentage(entry.getValue()) + " -S 1"));
            smote.setInputFormat(entry.getValue());
            fc.setFilter(smote);
        }
        fc.setClassifier(classifier);
        Evaluation eval = new Evaluation(entry.getValue());
        eval.crossValidateModel(fc, entry.getValue(), 10, new Random(1));

        System.out.println(eval.toSummaryString("\nResults\n======\n", false));
        System.out.println(eval.toMatrixString());

    }


}
 
开发者ID:kokojumbo,项目名称:master-thesis,代码行数:81,代码来源:ClusterImbalancedAlgorithm.java


示例8: getParametersForKMeans

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
public static String getParametersForKMeans(Instances instances, String name) {

        SimpleKMeans kmeans = new SimpleKMeans();
        String options = "-init 0 -max-candidates 100 -periodic-pruning 10000 -min-density 2.0 -t1 -1.25 -t2 -1.0 -V -N 2 -A \"weka.core.EuclideanDistance -R first-last\" -I 500 -num-slots 1 -S 10";
        try {
            kmeans.setOptions(weka.core.Utils.splitOptions(options));
            int numK = 20;
            double[] results = new double[numK];

            for (int i = 1; i <= numK; i++) {
                kmeans.setNumClusters(i);
                kmeans.buildClusterer(instances);


                double[][] centroids = new double[i][kmeans.getClusterCentroids().get(0).numAttributes()];


                double[][] stdDevs = new double[i][kmeans.getClusterStandardDevs().get(0).numAttributes()];

                for (int j = 0; j < i; j++) {
                    for (int k = 0; k < kmeans.getClusterCentroids().get(0).numAttributes(); k++) {
                        if (!Double.isNaN(kmeans.getClusterCentroids().get(j).value(k)) && !Double.isNaN(kmeans.getClusterStandardDevs().get(j).value(k))) {
                            centroids[j][k] = kmeans.getClusterCentroids().get(j).value(k);
                            stdDevs[j][k] = kmeans.getClusterStandardDevs().get(j).value(k);
                        } else {
                            centroids[j][k] = 0.0;
                            stdDevs[j][k] = 0.0;
                        }

                    }
                }


                double sum_clust = 0;
                for (int j = 0; j < centroids.length; j++) {
                    double sum_att = 0;
                    for (int k = 0; k < centroids[0].length; k++) {
                        double d = stdDevs[j][k];
                        sum_att += d;
                    }
                    sum_clust += sum_att;
                }
                results[i - 1] = sum_clust / centroids.length;

                // Pokaż wyniki analizy skupisk
                ClusterEvaluation evaluation = new ClusterEvaluation();
                evaluation.setClusterer(kmeans);
                evaluation.evaluateClusterer(instances);

                //System.out.println(evaluation.clusterResultsToString());
            }
            System.out.println(name);
            for (int i = 0; i < numK; i++) {
                System.out.println(String.format("%.3f", results[i]));
            }
            System.out.println();
        } catch (Exception e) {
            e.printStackTrace();
        }


        return "";

    }
 
开发者ID:kokojumbo,项目名称:master-thesis,代码行数:65,代码来源:ImbalancedUtils.java


示例9: main

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
public static void main(String[] args) {
    try {

        ConverterUtils.DataSource source = new ConverterUtils.DataSource("fertility_Diagnosis.arff");
        Instances instances = source.getDataSet();
        instances.deleteAttributeAt(9);



        SelfOrganizingMap som = new SelfOrganizingMap();

        som.setConvergenceEpochs(1000);

        som.setLearningRate(0.3);
        som.setOrderingEpochs(50);


        som.setWidth(3);
        som.setCalcStats(true);

        som.buildClusterer(instances);






        ClusterEvaluation eval = new ClusterEvaluation();


//
//
        eval.setClusterer(som);
        eval.evaluateClusterer(instances);
        System.out.println(eval.clusterResultsToString());

        for (int i=0;i<instances.size();i++){
            double[] dist=som.distributionForInstance(instances.get(i));
//            System.out.println(Utils.arrayToString(dist));
        }

        //
//        System.out.println(eval.clusterResultsToString());
//        System.out.println(som.toString());


//        System.out.println(som.toString());










    }catch (Exception ignored){
        ignored.printStackTrace();
    }

}
 
开发者ID:K-weka,项目名称:k-weka,代码行数:63,代码来源:Som.java


示例10: setClusterEvaluation

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
 * Sets the cluster evaluation object to use.
 * 
 * @param value the evaluation object
 */
public void setClusterEvaluation(ClusterEvaluation value) {
  m_Evaluation = value;
}
 
开发者ID:mydzigear,项目名称:repo.kmeanspp.silhouette_score,代码行数:9,代码来源:ClustererAssignmentsPlotInstances.java


示例11: getClusterEvaluation

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
 * Returns the cluster evaluation object in use.
 * 
 * @return the evaluation object
 */
public ClusterEvaluation getClusterEvaluation() {
  return m_Evaluation;
}
 
开发者ID:mydzigear,项目名称:repo.kmeanspp.silhouette_score,代码行数:9,代码来源:ClustererAssignmentsPlotInstances.java


示例12: setClusterEvaluation

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
 * Sets the cluster evaluation object to use.
 * 
 * @param value	the evaluation object
 */
public void setClusterEvaluation(ClusterEvaluation value) {
  m_Evaluation = value;
}
 
开发者ID:dsibournemouth,项目名称:autoweka,代码行数:9,代码来源:ClustererAssignmentsPlotInstances.java


示例13: getClusterEvaluation

import weka.clusterers.ClusterEvaluation; //导入依赖的package包/类
/**
 * Returns the cluster evaluation object in use.
 * 
 * @return		the evaluation object
 */
public ClusterEvaluation getClusterEvaluation() {
  return m_Evaluation;
}
 
开发者ID:dsibournemouth,项目名称:autoweka,代码行数:9,代码来源:ClustererAssignmentsPlotInstances.java



注:本文中的weka.clusterers.ClusterEvaluation类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java CasAuthenticationEntryPoint类代码示例发布时间:2022-05-22
下一篇:
Java Arrays类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap