`
it_palmer
  • 浏览: 40220 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

基于weka的优化算法

阅读更多
	/**离线优化
	 * @param wekaModel 模型
	 * @param valuesList 3个Double数组:第1个-正值为条件变量,负值为优化变量;第2个-下限;第3个-上限
	 * @param findMax true为求最大值;false为求最小值
	 * @param values 
	 * @return 优化后的值
	 */
	public double[] optimize(WekaModel wekaModel, List<Double[]> valuesList, boolean findMax){
		//最优参数
		Double[] optResult = null;
		//待优化参数
		Double[] values4Opt = valuesList.get(0);
		//参数下限
		Double[] valuesMin = valuesList.get(1);
		//参数上限
		Double[] valuesMax = valuesList.get(2);
		//最优值
		Double optValue = 0.0;
		
		//存放每个位号累计的次数
		int[] addnums = new int[values4Opt.length];	
		//每次累加后的值
		double[] newvalues = new double[values4Opt.length];	
		//是否继续遍历
		boolean isGoing = true;
		//addnums[0]为第一个参数累计次数
		for(addnums[0]=0; addnums[0]<=grading; ){
			//n为参数的个数,每个位号累计times次,下个位号+1,本位号清零
			for(int n=0; n<addnums.length-1; n++){
				//本参数的累积次数
				int addnum = addnums[n];
				//判断累加是否完毕
				if(addnum >= grading){
					//判断是否为最后一列
					if(n==addnums.length-2){
						//优化结束
						isGoing = false;
					}else{
						//下个位号+1,本位号清零
						addnums[n] -= grading;
						//如果该位号为自变量,使用已给值,不枚举
						if(values4Opt[n+1] != null){
							addnums[n+1] += grading;
						}else{
							addnums[n+1] ++;
						}
					}
				}
			}
			if(isGoing==false){
				break;	//优化结束
			}
			//用值替换位号
			for(int i=0; i<values4Opt.length-1; i++){
				//根据位号获取配置的上下限信息
				Double minValue = valuesMin[i];
				Double maxValue = valuesMax[i];
				//替换位号sql
				if(values4Opt[i] != null){
					newvalues[i] = values4Opt[i];
				}else{
					newvalues[i] = minValue
					                  +(maxValue-minValue)/(grading-1)*addnums[i];
				}
			}

			//计算优化公式
			newvalues[newvalues.length-1] = this.predict(newvalues);
			//最优结果处理
			if(newvalues[newvalues.length-1] > optValue){
				optValue = newvalues[newvalues.length-1];
			}
			
			//如果该位号为自变量,使用已给值,不枚举
			if(values4Opt[0] != null){
				addnums[0] += grading;
			}else{
				addnums[0] ++;
			}
		}
		
		return null;
	}
分享到:
评论

相关推荐

    基于weka的数据分类分析实验报告(精选)

    **基于Weka的数据分类分析实验报告** 在信息技术领域,数据挖掘是至关重要的组成部分,它从海量数据中提取有价值的信息和知识。Weka是一款强大的、开源的机器学习和数据挖掘工具,广泛应用于教育和研究领域。本实验...

    基于Weka和matlab平台的多层感知机模式识别实验.pdf

    通过基于Weka和Matlab的实验操作,学习者不仅能够掌握多层感知机模型的构建和优化过程,而且能够了解MLP在医学、生物学等多个领域的应用价值。Weka通过简单的图形界面为学习者提供了直观的模型操作方式,而Matlab...

    weka-src.rar_lovely863_weka_weka算法代码实现

    同时,通过阅读源码,还可以学习到如何优化算法性能、处理大数据集以及并行计算等方面的知识。 总的来说,这个压缩包是一份宝贵的教育资源,可以帮助开发者深入理解Weka中的各种机器学习算法,提升他们在数据科学...

    基于weka对银行客户信息的关联分析及apriori算法实现

    "基于weka对银行客户信息的关联分析及apriori算法实现"这一标题揭示了本文档的核心内容。首先,"weka"是新西兰怀卡托大学开发的一个开源数据挖掘工具,它提供了丰富的机器学习算法和数据预处理功能。在这里,weka被...

    基于WEKA平台的数据挖掘研究及二次开发

    本文专注于基于WEKA平台的数据挖掘研究与二次开发,特别是针对K-Means聚类算法的优化。 WEKA是一个强大的开源数据挖掘软件,包含了多种机器学习算法、数据预处理、分类、聚类、关联规则挖掘和可视化工具。它由...

    数据挖掘工具weka中的算法列表

    在Weka中,我们有多种选择,如IBk()实现k最近邻算法,LBR()实现了朴素贝叶斯分类,J48()则基于C4.5决策树。M5P()结合了树结构和线性回归,适用于连续数据的回归。对于单层决策树,有DecisionStump();SMO()支持向量...

    向weka中添加新算法(扩展与延伸)

    Weka的核心是Java编程语言,其算法库是基于Java类实现的。新算法的添加意味着你需要编写一个新的Java类,该类需要遵循Weka规定的接口和约定。在Weka中,分类、聚类、关联规则等不同类型的算法都有对应的基类,比如`...

    利用WEKA编写数据挖掘算法

    WEKA(Waikato Environment for Knowledge Analysis)是一个强大的数据挖掘工具,由新西兰怀卡托大学开发,...在实践中,不断学习和优化算法,有助于提升数据挖掘的效果和效率,为各种业务场景提供更精准的预测和洞察。

    基于Weka平台的决策树J48算法实验研究.pdf

    本文主要围绕基于Weka平台的J48决策树算法进行实验研究,并与其他常见决策树算法进行比较。 首先,J48算法是在ID3算法基础上的改进。ID3算法以信息熵为基础,选择最优属性来划分数据集,但其对连续属性处理能力有限...

    网格环境下基于Weka4WS的分布式聚类算法.pdf

    在探讨网格环境下基于Weka4WS的分布式聚类算法时,我们首先要了解几个核心概念。首先,“网格”是一种分布式计算基础设施,它将分散在不同地理位置的计算资源(例如处理器、存储器、数据、仪器等)有机地整合起来,...

    基于weka平台的乳腺癌诊断分类研究

    综上所述,基于Weka平台的乳腺癌诊断分类研究,利用了数据挖掘和决策树算法,通过对各种临床特征的分析,构建了有效的诊断模型。这种方法不仅有助于提高乳腺癌的早期诊断率,也为其他疾病的预测提供了有价值的参考。...

    WEKA聚类算法wine数据集分析研究报告.docx

    DBSCAN 算法是一种基于密度的空间聚类算法。它通过查找高密度区域并连接它们来形成簇。在 WEKA 中,我们设定 DBSCAN 的参数为:Eps=0.5,MinPts=5。Eps 是两个对象之间的最大距离,MinPts 是一个对象成为核心对象所...

    基于Weka的 相关数据挖掘介绍

    ### 基于Weka的数据挖掘技术深度解析 #### 一、Weka系统与数据挖掘算法的融合 《基于Weka的相关数据挖掘介绍》是一本深入探讨如何利用Weka系统进行数据挖掘的专著,由多位领域内的专家共同编写,包括Remco R. ...

    机器学习工具WEKA的使用总结,包括算法选择、属性选择、参数优化.doc

    2. 随机搜索:随机搜索是一种基于概率的参数优化方法,它通过随机选择参数来搜索最优的参数。 WEKA是一个功能强大且灵活的机器学习工具,提供了大量的机器学习算法和数据预处理方法。合适地选择算法和参数设置是...

    基于WEKA的高校学生综合测评数据挖掘 教育资料.pdf

    基于WEKA的高校学生综合测评数据挖掘 数据挖掘技术是指从大量的数据中提取或“挖掘知识”,通过数据挖掘,人们可以从大量不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含其中、事先不知道但又具有潜在...

    基于Weka的数据分类分析实验报告.pdf

    【基于Weka的数据分类分析实验】 本实验报告主要围绕使用Weka工具进行数据分类分析,目的是运用不同的分类算法,如LibSVM、C4.5决策树和朴素贝叶斯,对数据集进行训练和测试,同时理解Weka平台的基本功能和使用方法...

Global site tag (gtag.js) - Google Analytics