亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? decisionstump.java

?? JAVA的一個程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    }  }  /**   * Finds best split for nominal attribute and nominal class   * and returns value.   *   * @param index attribute index   * @return value of criterion for the best split   * @throws Exception if something goes wrong   */  private double findSplitNominalNominal(int index) throws Exception {    double bestVal = Double.MAX_VALUE, currVal;    double[][] counts = new double[m_Instances.attribute(index).numValues() 				  + 1][m_Instances.numClasses()];    double[] sumCounts = new double[m_Instances.numClasses()];    double[][] bestDist = new double[3][m_Instances.numClasses()];    int numMissing = 0;    // Compute counts for all the values    for (int i = 0; i < m_Instances.numInstances(); i++) {      Instance inst = m_Instances.instance(i);      if (inst.isMissing(index)) {	numMissing++;	counts[m_Instances.attribute(index).numValues()]	  [(int)inst.classValue()] += inst.weight();      } else {	counts[(int)inst.value(index)][(int)inst.classValue()] += inst	  .weight();      }    }    // Compute sum of counts    for (int i = 0; i < m_Instances.attribute(index).numValues(); i++) {      for (int j = 0; j < m_Instances.numClasses(); j++) {	sumCounts[j] += counts[i][j];      }    }        // Make split counts for each possible split and evaluate    System.arraycopy(counts[m_Instances.attribute(index).numValues()], 0,		     m_Distribution[2], 0, m_Instances.numClasses());    for (int i = 0; i < m_Instances.attribute(index).numValues(); i++) {      for (int j = 0; j < m_Instances.numClasses(); j++) {	m_Distribution[0][j] = counts[i][j];	m_Distribution[1][j] = sumCounts[j] - counts[i][j];      }      currVal = ContingencyTables.entropyConditionedOnRows(m_Distribution);      if (currVal < bestVal) {	bestVal = currVal;	m_SplitPoint = (double)i;	for (int j = 0; j < 3; j++) {	  System.arraycopy(m_Distribution[j], 0, bestDist[j], 0, 			   m_Instances.numClasses());	}      }    }    // No missing values in training data.    if (numMissing == 0) {      System.arraycopy(sumCounts, 0, bestDist[2], 0, 		       m_Instances.numClasses());    }       m_Distribution = bestDist;    return bestVal;  }  /**   * Finds best split for nominal attribute and numeric class   * and returns value.   *   * @param index attribute index   * @return value of criterion for the best split   * @throws Exception if something goes wrong   */  private double findSplitNominalNumeric(int index) throws Exception {    double bestVal = Double.MAX_VALUE, currVal;    double[] sumsSquaresPerValue =       new double[m_Instances.attribute(index).numValues()],       sumsPerValue = new double[m_Instances.attribute(index).numValues()],       weightsPerValue = new double[m_Instances.attribute(index).numValues()];    double totalSumSquaresW = 0, totalSumW = 0, totalSumOfWeightsW = 0,      totalSumOfWeights = 0, totalSum = 0;    double[] sumsSquares = new double[3], sumOfWeights = new double[3];    double[][] bestDist = new double[3][1];    // Compute counts for all the values    for (int i = 0; i < m_Instances.numInstances(); i++) {      Instance inst = m_Instances.instance(i);      if (inst.isMissing(index)) {	m_Distribution[2][0] += inst.classValue() * inst.weight();	sumsSquares[2] += inst.classValue() * inst.classValue() 	  * inst.weight();	sumOfWeights[2] += inst.weight();      } else {	weightsPerValue[(int)inst.value(index)] += inst.weight();	sumsPerValue[(int)inst.value(index)] += inst.classValue() 	  * inst.weight();	sumsSquaresPerValue[(int)inst.value(index)] += 	  inst.classValue() * inst.classValue() * inst.weight();      }      totalSumOfWeights += inst.weight();      totalSum += inst.classValue() * inst.weight();    }    // Check if the total weight is zero    if (totalSumOfWeights <= 0) {      return bestVal;    }    // Compute sum of counts without missing ones    for (int i = 0; i < m_Instances.attribute(index).numValues(); i++) {      totalSumOfWeightsW += weightsPerValue[i];      totalSumSquaresW += sumsSquaresPerValue[i];      totalSumW += sumsPerValue[i];    }        // Make split counts for each possible split and evaluate    for (int i = 0; i < m_Instances.attribute(index).numValues(); i++) {            m_Distribution[0][0] = sumsPerValue[i];      sumsSquares[0] = sumsSquaresPerValue[i];      sumOfWeights[0] = weightsPerValue[i];      m_Distribution[1][0] = totalSumW - sumsPerValue[i];      sumsSquares[1] = totalSumSquaresW - sumsSquaresPerValue[i];      sumOfWeights[1] = totalSumOfWeightsW - weightsPerValue[i];      currVal = variance(m_Distribution, sumsSquares, sumOfWeights);            if (currVal < bestVal) {	bestVal = currVal;	m_SplitPoint = (double)i;	for (int j = 0; j < 3; j++) {	  if (sumOfWeights[j] > 0) {	    bestDist[j][0] = m_Distribution[j][0] / sumOfWeights[j];	  } else {	    bestDist[j][0] = totalSum / totalSumOfWeights;	  }	}      }    }    m_Distribution = bestDist;    return bestVal;  }  /**   * Finds best split for numeric attribute and returns value.   *   * @param index attribute index   * @return value of criterion for the best split   * @throws Exception if something goes wrong   */  private double findSplitNumeric(int index) throws Exception {    if (m_Instances.classAttribute().isNominal()) {      return findSplitNumericNominal(index);    } else {      return findSplitNumericNumeric(index);    }  }  /**   * Finds best split for numeric attribute and nominal class   * and returns value.   *   * @param index attribute index   * @return value of criterion for the best split   * @throws Exception if something goes wrong   */  private double findSplitNumericNominal(int index) throws Exception {    double bestVal = Double.MAX_VALUE, currVal, currCutPoint;    int numMissing = 0;    double[] sum = new double[m_Instances.numClasses()];    double[][] bestDist = new double[3][m_Instances.numClasses()];    // Compute counts for all the values    for (int i = 0; i < m_Instances.numInstances(); i++) {      Instance inst = m_Instances.instance(i);      if (!inst.isMissing(index)) {	m_Distribution[1][(int)inst.classValue()] += inst.weight();      } else {	m_Distribution[2][(int)inst.classValue()] += inst.weight();	numMissing++;      }    }    System.arraycopy(m_Distribution[1], 0, sum, 0, m_Instances.numClasses());    // Save current distribution as best distribution    for (int j = 0; j < 3; j++) {      System.arraycopy(m_Distribution[j], 0, bestDist[j], 0, 		       m_Instances.numClasses());    }    // Sort instances    m_Instances.sort(index);        // Make split counts for each possible split and evaluate    for (int i = 0; i < m_Instances.numInstances() - (numMissing + 1); i++) {      Instance inst = m_Instances.instance(i);      Instance instPlusOne = m_Instances.instance(i + 1);      m_Distribution[0][(int)inst.classValue()] += inst.weight();      m_Distribution[1][(int)inst.classValue()] -= inst.weight();      if (inst.value(index) < instPlusOne.value(index)) {	currCutPoint = (inst.value(index) + instPlusOne.value(index)) / 2.0;	currVal = ContingencyTables.entropyConditionedOnRows(m_Distribution);	if (currVal < bestVal) {	  m_SplitPoint = currCutPoint;	  bestVal = currVal;	  for (int j = 0; j < 3; j++) {	    System.arraycopy(m_Distribution[j], 0, bestDist[j], 0, 			     m_Instances.numClasses());	  }	}      }    }    // No missing values in training data.    if (numMissing == 0) {      System.arraycopy(sum, 0, bestDist[2], 0, m_Instances.numClasses());    }     m_Distribution = bestDist;    return bestVal;  }  /**   * Finds best split for numeric attribute and numeric class   * and returns value.   *   * @param index attribute index   * @return value of criterion for the best split   * @throws Exception if something goes wrong   */  private double findSplitNumericNumeric(int index) throws Exception {    double bestVal = Double.MAX_VALUE, currVal, currCutPoint;    int numMissing = 0;    double[] sumsSquares = new double[3], sumOfWeights = new double[3];    double[][] bestDist = new double[3][1];    double totalSum = 0, totalSumOfWeights = 0;    // Compute counts for all the values    for (int i = 0; i < m_Instances.numInstances(); i++) {      Instance inst = m_Instances.instance(i);      if (!inst.isMissing(index)) {	m_Distribution[1][0] += inst.classValue() * inst.weight();	sumsSquares[1] += inst.classValue() * inst.classValue() 	  * inst.weight();	sumOfWeights[1] += inst.weight();      } else {	m_Distribution[2][0] += inst.classValue() * inst.weight();	sumsSquares[2] += inst.classValue() * inst.classValue() 	  * inst.weight();	sumOfWeights[2] += inst.weight();	numMissing++;      }      totalSumOfWeights += inst.weight();      totalSum += inst.classValue() * inst.weight();    }    // Check if the total weight is zero    if (totalSumOfWeights <= 0) {      return bestVal;    }    // Sort instances    m_Instances.sort(index);        // Make split counts for each possible split and evaluate    for (int i = 0; i < m_Instances.numInstances() - (numMissing + 1); i++) {      Instance inst = m_Instances.instance(i);      Instance instPlusOne = m_Instances.instance(i + 1);      m_Distribution[0][0] += inst.classValue() * inst.weight();      sumsSquares[0] += inst.classValue() * inst.classValue() * inst.weight();      sumOfWeights[0] += inst.weight();      m_Distribution[1][0] -= inst.classValue() * inst.weight();      sumsSquares[1] -= inst.classValue() * inst.classValue() * inst.weight();      sumOfWeights[1] -= inst.weight();      if (inst.value(index) < instPlusOne.value(index)) {	currCutPoint = (inst.value(index) + instPlusOne.value(index)) / 2.0;	currVal = variance(m_Distribution, sumsSquares, sumOfWeights);	if (currVal < bestVal) {	  m_SplitPoint = currCutPoint;	  bestVal = currVal;	  for (int j = 0; j < 3; j++) {	    if (sumOfWeights[j] > 0) {	      bestDist[j][0] = m_Distribution[j][0] / sumOfWeights[j];	    } else {	      bestDist[j][0] = totalSum / totalSumOfWeights;	    }	  }	}      }    }    m_Distribution = bestDist;    return bestVal;  }  /**   * Computes variance for subsets.   *    * @param s   * @param sS   * @param sumOfWeights   * @return the variance   */  private double variance(double[][] s,double[] sS,double[] sumOfWeights) {    double var = 0;    for (int i = 0; i < s.length; i++) {      if (sumOfWeights[i] > 0) {	var += sS[i] - ((s[i][0] * s[i][0]) / (double) sumOfWeights[i]);      }    }        return var;  }  /**   * Returns the subset an instance falls into.   *    * @param instance the instance to check   * @return the subset the instance falls into   * @throws Exception if something goes wrong   */  private int whichSubset(Instance instance) throws Exception {    if (instance.isMissing(m_AttIndex)) {      return 2;    } else if (instance.attribute(m_AttIndex).isNominal()) {      if ((int)instance.value(m_AttIndex) == m_SplitPoint) {	return 0;      } else {	return 1;      }    } else {      if (instance.value(m_AttIndex) <= m_SplitPoint) {	return 0;      } else {	return 1;      }    }  }   /**   * Main method for testing this class.   *   * @param argv the options   */  public static void main(String [] argv) {    Classifier scheme;    try {      scheme = new DecisionStump();      System.out.println(Evaluation.evaluateModel(scheme, argv));    } catch (Exception e) {      System.err.println(e.getMessage());    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区二区| 在线视频你懂得一区| 色综合视频一区二区三区高清| 日本精品免费观看高清观看| 欧美性猛交一区二区三区精品| 久久久www免费人成精品| 精品国产一区二区三区四区四| 亚洲欧美一区二区久久| 激情伊人五月天久久综合| 在线免费不卡电影| 9人人澡人人爽人人精品| 欧美高清视频一二三区| 亚洲婷婷在线视频| 国产精品1区2区| 欧美高清性hdvideosex| 理论片日本一区| 午夜精品久久久久久久 | 99精品黄色片免费大全| 久久久久久久久99精品| 国内一区二区视频| 欧美成人video| 美腿丝袜亚洲色图| 成人精品在线视频观看| 久久精品视频在线看| 麻豆精品国产91久久久久久| 欧美丰满少妇xxxxx高潮对白| 亚洲成人免费看| 欧美伊人久久大香线蕉综合69| 亚洲免费电影在线| 95精品视频在线| 专区另类欧美日韩| 一本久久a久久免费精品不卡| 中文字幕在线观看一区二区| av中文一区二区三区| 中文字幕一区二区三区不卡在线| av在线不卡网| 日韩毛片一二三区| 色婷婷av一区二区三区软件| 亚洲激情五月婷婷| 欧美丰满少妇xxxxx高潮对白| 日本美女一区二区三区| 欧美日韩国产首页| 综合在线观看色| 在线免费观看视频一区| 亚洲曰韩产成在线| 欧美一级理论片| 精品一区二区影视| 中文av一区二区| 91亚洲国产成人精品一区二三| 国产午夜精品久久久久久久| 懂色av一区二区三区蜜臀| 中文字幕一区二区三区蜜月 | 中文一区二区完整视频在线观看| 成人免费一区二区三区视频| 色狠狠桃花综合| 偷窥少妇高潮呻吟av久久免费| 欧美久久一区二区| 国内成人自拍视频| 国产精品黄色在线观看| 亚洲激情欧美激情| 91精品国产一区二区人妖| 精品一区二区三区蜜桃| 国产精品狼人久久影院观看方式| 全国精品久久少妇| 欧美一区二区视频网站| 国产在线观看免费一区| 亚洲色图视频网| 久久精品免费观看| 欧美视频三区在线播放| 国产精品热久久久久夜色精品三区| 亚洲欧洲99久久| 成人app在线| 久久亚洲一区二区三区四区| 日日欢夜夜爽一区| 欧美视频一区在线| 偷拍与自拍一区| 99国产精品国产精品毛片| 亚洲国产日韩综合久久精品| 亚洲男人天堂av| 中文字幕制服丝袜一区二区三区| 亚洲精品一区在线观看| 精品久久久久香蕉网| 91精品国产福利| 日韩一级精品视频在线观看| 欧美男生操女生| 亚洲最色的网站| 亚洲欧洲在线观看av| 久久嫩草精品久久久久| 国产酒店精品激情| 美女脱光内衣内裤视频久久影院| 国产精品美日韩| 91天堂素人约啪| 在线看不卡av| 色久优优欧美色久优优| 99热99精品| 91老司机福利 在线| 高清视频一区二区| 国产精华液一区二区三区| 亚洲成av人片| 日本一区二区免费在线| 色综合久久中文综合久久97| av高清久久久| 国产精品系列在线观看| 91国产丝袜在线播放| 国产精品久久久久久久久免费丝袜| 国产精品热久久久久夜色精品三区| 国产亚洲欧洲997久久综合| 欧美日韩高清不卡| 日韩欧美二区三区| 欧美一区二区久久| 久久久久久久久岛国免费| 国产精品二区一区二区aⅴ污介绍| 成人丝袜高跟foot| 日韩精品亚洲专区| 99久久综合狠狠综合久久| 91亚洲永久精品| 欧美日韩三级视频| 欧美精品一区男女天堂| 中文字幕第一区二区| 亚洲动漫第一页| 国产一区999| 日本国产一区二区| 精品美女一区二区| 亚洲欧洲韩国日本视频| 日日骚欧美日韩| 国产91精品露脸国语对白| 在线观看三级视频欧美| 精品精品欲导航| 亚洲丝袜自拍清纯另类| 免费日韩伦理电影| 99热精品国产| 久久视频一区二区| 五月婷婷欧美视频| 国产91精品在线观看| 欧美高清hd18日本| 亚洲色图制服诱惑| 国产精品综合网| 欧美日韩免费在线视频| 亚洲国产电影在线观看| 免费一级欧美片在线观看| 色综合网色综合| 国产女人18水真多18精品一级做| 午夜视频久久久久久| aaa欧美日韩| 国产欧美日韩激情| 免费黄网站欧美| 欧美日韩精品一区二区三区四区| 欧美极品少妇xxxxⅹ高跟鞋| 韩国v欧美v日本v亚洲v| 欧美日韩国产综合视频在线观看 | 欧美在线视频全部完| 久久久.com| 日韩精品亚洲专区| 欧美日韩国产一级片| 亚洲综合色在线| 91小视频在线观看| 国产精品福利电影一区二区三区四区 | 久久av老司机精品网站导航| 欧美亚日韩国产aⅴ精品中极品| 久久久久久久电影| 久久精品国产精品青草| 欧美二区在线观看| 亚洲一级电影视频| 91香蕉视频mp4| 国产精品网站在线播放| 国内精品国产三级国产a久久| 欧洲一区在线观看| 婷婷久久综合九色综合伊人色| 成人app下载| 国产98色在线|日韩| 亚洲国产中文字幕在线视频综合 | 男女男精品视频网| 久久男人中文字幕资源站| 91色视频在线| 国内精品国产成人国产三级粉色| 久久久噜噜噜久噜久久综合| 91久久线看在观草草青青| 色8久久精品久久久久久蜜| 亚洲人成在线播放网站岛国| 成人av在线网站| 国产精品国产三级国产aⅴ入口| 99热这里都是精品| 一区二区三区日韩精品| 欧美图区在线视频| 午夜欧美一区二区三区在线播放| 8x福利精品第一导航| 久久精品国产久精国产爱| 久久久99久久| 91网址在线看| 午夜精品福利一区二区三区av| 欧美精品一卡两卡| 国产呦萝稀缺另类资源| 国产欧美日韩另类一区| 91精彩视频在线| 日本 国产 欧美色综合| 精品美女在线播放| 99在线精品观看| 午夜免费久久看| 精品国产乱码久久久久久影片| 丰满亚洲少妇av|