当前位置: 首页 > news >正文

北京网站建设华网天下科技网站的重要性

北京网站建设华网天下科技,网站的重要性,手机网站跳转代码,wordpress用户权限代码来自闵老师”日撸 Java 三百行(61-70天) 日撸 Java 三百行(61-70天,决策树与集成学习)_闵帆的博客-CSDN博客 学习过程中理解算法参考了:(十三)通俗易懂理解——Adaboost算法原…

 代码来自闵老师”日撸 Java 三百行(61-70天)

日撸 Java 三百行(61-70天,决策树与集成学习)_闵帆的博客-CSDN博客

学习过程中理解算法参考了:(十三)通俗易懂理解——Adaboost算法原理 - 知乎 (zhihu.com)

 今天的代码的核心是方法adjustWeights(boolean[] paraCorrectArray, double paraAlpha)。分类正确的实例,权重调整为原值除以Math.exp(paraAlpha);分类错误的调整为原值乘以Math.exp(paraAlpha)。

测试方法里,之所以for循环到tempCorrectArray长度的一半,仅仅是为了测试。相当于设置弱分类器分类正确了一半。

package machinelearning.adaboosting;import java.io.FileReader;
import java.util.Arrays;import weka.core.Instances;/*** Weighted instances.<br>* * @author WX873**/
public class WeightedInstances extends Instances{/*** Just the requirement of some classes, any number is ok.*/private static final long serialVersionUID = 11087456L;/*** Weights*/private double[] weights;/*** *************************************************** The first constructor.* * @param paraFileReader   The given reader to read data from file.* @throws Exception* ***************************************************/public WeightedInstances(FileReader paraFileReader) throws Exception{// TODO Auto-generated constructor stubsuper(paraFileReader);setClassIndex(numAttributes() - 1);// Initialize weightsweights = new double[numInstances()];double tempAverage = 1.0/numInstances();for (int i = 0; i < weights.length; i++) {weights[i] = tempAverage;}//of for iSystem.out.println("Instances weights are: " + Arrays.toString(weights));}//of the first constructor/*** *********************************************************** The second constructor.* * @param paraInstances* ***********************************************************/public WeightedInstances(Instances paraInstances) {// TODO Auto-generated constructor stubsuper(paraInstances);setClassIndex(numAttributes() - 1);//Initialize weightsweights = new double[numInstances()];double tempAverage = 1.0/numInstances();for (int i = 0; i < weights.length; i++) {weights[i] = tempAverage;}//of for iSystem.out.println("Instances weights are: " + Arrays.toString(weights));}//of the second constructor/*** **************************************************** Getter.* * @param paraIndex   The given index.* @return    The weight of the given index.* ****************************************************/public double getWeight(int paraIndex) {return weights[paraIndex];}//of getWeight/*** ****************************************************** Adjust the weights.* * @param paraCorrectArray  Indicate which instances have been correctly classified.* @param paraAlpha   The weight of the last classifier.* ******************************************************/public void adjustWeights(boolean[] paraCorrectArray, double paraAlpha) {//Step 1. Calculate alpha.double tempIncrease = Math.exp(paraAlpha);//Step 2. Adjust.double tempWeightsSum = 0;  // For normalization.for (int i = 0; i < weights.length; i++) {if (paraCorrectArray[i]) {weights[i] /= tempIncrease;} else {weights[i] *= tempIncrease;}//of iftempWeightsSum += weights[i];}//of for i// Step 3. Normalize.for (int i = 0; i < weights.length; i++) {weights[i] /= tempWeightsSum;}//of for iSystem.out.println("After adjusting, instances weights are: " + Arrays.toString(weights));}//of adjustWeights/*** ********************************************** Test the method.* **********************************************/public void adjustWeightsTest() {boolean[] tempCorrectArray = new boolean[numInstances()];for (int i = 0; i < tempCorrectArray.length / 2; i++) {    //仅仅是测试adjustWeights()方法,因为还没有分类器,设置分类正确了一半tempCorrectArray[i] = true;}//of for idouble tempWeightedError = 0.3;adjustWeights(tempCorrectArray, tempWeightedError);     //仅仅是测试adjustWeights()方法,因为还没有分类器System.out.println("After adjusting");System.out.println(toString());}//of adjustWeightsTest/*** ********************************************************* For display.* *********************************************************/public String toString() {String resultString = "I am a weighted Instances object.\r\n" + "I have " + numInstances() + " instances and "+ (numAttributes() - 1) + " conditional attributes.\r\n" + "My weights are: " + Arrays.toString(weights)+ "\r\n" + "My data are: \r\n" + super.toString();return resultString;}//of toString/*** ************************************************************ The entrance of the program.* * @param args* ************************************************************/public static void main(String args[]) {WeightedInstances tempWeightedInstances = null;String tempFilename = "E:/Datasets/UCIdatasets/其他数据集/iris.arff";try {FileReader tempFileReader = new FileReader(tempFilename);tempWeightedInstances = new WeightedInstances(tempFileReader);tempFileReader.close();} catch (Exception exception1) {// TODO: handle exceptionSystem.out.println("Cannot read the file: " + tempFilename + "\r\n" + exception1);System.exit(0);}//of trySystem.out.println(tempWeightedInstances.toString());tempWeightedInstances.adjustWeightsTest();}//of main}//of WeightedInstances

http://www.yayakq.cn/news/527279/

相关文章:

  • 网站建设百度搜索到左边的图跨境电商东莞网站建设
  • 网站如何实现qq登录功能重庆有专业做网站的吗
  • 网络营销网站建设论文交互设计师和ui设计师的区别
  • 网站源码论坛icp备案网站名称更改
  • 小网站怎么赚钱课程商城网站模板
  • 玖壹购网站是做啥子的seo属于运营还是技术
  • 公众号开发者id潍坊seo按天收费
  • 网站后台编辑器源码wordpress 爱范儿主题
  • 网站前台 后台基础精品课程网站
  • 手机如何免费做网站如何开发app软件平台
  • 手机网站php开发互联网科技网站
  • dede 获取网站标题网站后台不能粘贴文章
  • 做非法网站湖北项目备案查询系统
  • 深圳注明企业网站设计网站制作案例图片
  • 美橙互联建站网站被截止免费网页代理浏览器1
  • 营销型网站改版河南省建设厅处长名单
  • 工信部查询网站备案如何在godaddy空间做手机网站
  • 创业给企业做网站开发设计师网站资源
  • 随意设计一个网站页面跳转html
  • 怎么做网站底部文件重庆网站建设网搜科技
  • 做外贸哪些国外网站可以推广徐州建站
  • 网络建站公司如何做市场注册了一个域名怎么做网站
  • 做网站的小图标vue 做企业网站行不
  • 网站域名解析ip查询建设部一建注册公示网站
  • 网站开发税率多少钱分销系统方案
  • 建设银行网站百度一下金麦建站官网
  • 用什么建网站 cms私人找人做网站
  • phpstudy做正式网站北京搬家公司哪家好
  • 电子商务网站系统规划 案例分析织梦网站做seo优化
  • 晋中网站建设简易软件下载