`
hh.凝望
  • 浏览: 63883 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

预测算法用java实现(二)

阅读更多
   本文章接上一篇来实现预测算法,首先是简易平均法。请看代码:
package cn.netjava.simpleaverage;

import java.util.ArrayList;
import java.util.List;

public class SimpleTest {

/**
* 简易平均法
* 1.算术平均
* 2.几何平均
* 3.加权平均
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Float> ls=new ArrayList<Float>();//用来存入用户输入的原始数据
for(int i=0;i<6;i++){   //赋初值,以方便测试
     float a=i;
ls.add(a);        
}
     List<Float> ls1=new ArrayList<Float>();//求加权平均时用来存入对应的权值
     for(int j=0;j<6;j++){
      float b=(float) (j*0.1);
      ls1.add(b);
}
SimpleTest wp=new SimpleTest();
float ma= wp.mathAve(ls);
   double ge=wp.geoAve(ls);
   float we=wp.weightAve(ls, ls1);
   System.out.println("算术平均值为"+ma);
   System.out.println("几何平均值为"+ge);
   System.out.println("加权平均值为"+we);

}
//算术平均值,把输入的数据存入一个队列中然后调用,返回这个队列中所有数据的平均值
     private  float  mathAve(List<Float> ls){
    float num=0;     //求和
    for(int i=0;i<ls.size();i++){
    float a=ls.get(i);
    num=num+a;
    }
    float ave=num/ls.size();
    return ave;
     }
     //几何平均值,返回double型的值
     private double geoAve(List<Float> ls){
    float num=1;     //求各个数据的积
    for(int i=0;i<ls.size();i++){
    float  a=ls.get(i);
      num=num*a;
    }
    System.out.println("num"+num);
   double y=java.lang.StrictMath.pow(num,1.0/ls.size());//给积开n次方
    return y;
   
     }
     //加权平均,用到了两个队列,一个用来存放原始数据,另一个用来存入对应的权值
     private float weightAve(List<Float> ls,List<Float> ls1){
    float a=0,w=0,num=0;//a为原始数据,w为权值
    for(int i=0;i<ls.size();i++){
    a=ls.get(i); //得到原始数据
   
    }
    for(int j=0;j<ls1.size();j++){
    w=ls.get(j); //得到原始数据
   
     }
    num=num+a*w;
    float Ave=num/ls.size();
    return Ave;
   
   
}
    
}
这段代码运行结果如下:
算术平均值为2.5
几何平均值为0.0
加权平均值为4.1666665
   ,几何平均值怎么会是0呢?不要着急,先喝一杯 ,由于几何平均是先得到这组数据的积,再开n次方,而我们赋初值的时候第一个数是0,所以它们的积为0了,开方当然也就是0了。
   由于下午有其它事要干,所以不能继续写下去了,不过我会尽快把后面的补上去,其实大家也看到了并没有我们想象中的那么难,我始终坚信,只有想不到,没有做不到,后面的算法相对来说实现起来相对复杂,不过没关系,我还是相信我都能搞出来并尽快和大家一起分享。
分享到:
评论
2 楼 罗春桉 2010-10-07  
1 楼 javafound 2010-09-11  
嗯,好样,继续呵呵.

相关推荐

    BP.rar_BP_bp 神经网络 java 算法_bp 预测_java BP预测算法_预测算法java

    总的来说,这个BP神经网络Java实现为理解和实践预测算法提供了一个基础平台,对于学习和研究神经网络算法的开发者来说,是一个有价值的资源。通过深入研究源代码,我们可以更深入地理解BP算法的工作原理,以及如何在...

    几个推荐算法的java实现

    - Slope One是一种简单的协同过滤预测算法,它通过计算用户对物品的平均评分差来预测未知评分。具体来说,对于两个物品i和j,slope one会计算已知评分的平均差异,并用这个差异来预测用户对物品j的评分。 - 在Java...

    一次,二次,三次指数平滑预测算法java

    java代码实现指数平滑算法,其中包括一次,二次,三次

    数据趋势预测ARIMA算法实现

    总结来说,ARIMA模型是一种强大的工具,能够处理各种类型的时间序列数据,而Java实现则提供了在实际业务场景中应用此模型的可能性。理解并掌握ARIMA模型的原理和实现细节,对于进行数据趋势预测分析具有重要意义。

    时间序列算法java实现

    本篇文章将深入探讨时间序列预测的基本原理,Java实现的关键步骤,以及如何通过实际的代码示例进行实践。 时间序列数据是按特定时间顺序收集的数值序列,例如股票价格、销售数据或天气温度。这些数据具有内在的时间...

    Java 实现 时序预测 ARIMA模型 DEMO

    这个Java实现的DEMO将帮助我们理解如何在编程环境中构建和应用ARIMA模型进行时间序列预测。以下是关于ARIMA模型和Java实现的相关知识点: 1. **ARIMA模型介绍**: - **自回归项(AR)**:ARIMA模型基于历史观测值...

    arima 算法 JAVA 实现.zip

    总之,ARIMA模型是时间序列预测的重要工具,通过Java实现可以将这种统计方法集成到数据分析系统中。理解模型背后的理论,结合适当的库和编程技巧,可以在各种领域,如金融、气象预报、销售预测等,应用ARIMA模型进行...

    Java实现随机森林算法

    在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...

    决策树ID3算法(Java实现)

    总的来说,ID3算法是理解和实现机器学习基础的重要步骤,它的Java实现可以帮助开发者更深入地掌握数据分类和决策树的构建原理。通过分析和调试这个代码,可以提高对决策树算法的理解,为进一步探索更复杂的算法如C...

    预测系统的设计与实现(附预测算法源码)

    这篇博客“预测系统的设计与实现(附预测算法源码)”提供了一种深入理解如何构建预测模型和实现系统的途径,并且附带了实际的源代码,这对于学习者和开发者来说是一份宝贵的资源。 预测系统的核心是预测算法,它们...

    ARIMA模型销售预测JAVA版

    5. **JAVA实现**:在JAVA环境下实现ARIMA模型,开发者通常会使用统计计算库如JFreeChart、Apache Commons Math或者专用的预测库如Openforecast。这些库提供了方便的API接口,用于构建和训练ARIMA模型,并进行预测。 ...

    Java实现kNN算法

    总之,Java实现kNN算法涉及数据预处理、距离计算、最近邻搜索和预测等多个环节。在设计和优化算法时,需要考虑到性能、准确性和适用场景,确保算法在实际应用中的有效性。同时,理解kNN算法背后的理论基础,可以帮助...

    java实现logistic回归算法

    综上所述,Java实现Logistic回归涉及了数据处理、模型构建、优化算法等多个方面,需要对机器学习基础理论和Java编程有一定了解。在实际项目中,我们通常会结合现有的库来简化开发过程,并注重模型的评估和调优。

    SVM 算法 java 实现

    支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归分析的机器学习算法。...总的来说,Encog为Java开发者提供了一个强大且易用的SVM实现工具,使得在Java环境中应用SVM算法变得简单而高效。

    java mrp算法实现

    在这个Java实现中,MRP系统可能包括以下几个关键部分: 1. **物料数据库**:系统会维护一个包含所有物料信息的数据库,如物料编码、描述、库存量、安全库存、预测需求等。在本案例中,数据存储在MySQL数据库中,...

    SMO算法实现 java代码

    描述中提到的博客文章提供了SMO算法的Java实现,这对于学习和理解算法的内部工作原理非常有帮助。通常,一个完整的Java SMO实现会包含以下几个关键步骤: 1. 初始化:设置参数,如惩罚参数C,选择初始的拉格朗日...

    kriging插值算法java实现-Java代码类资源

    总的来说,kriging插值算法在Java中的实现提供了一种强大工具,用于处理空间数据的预测和分析,尤其在环境科学、地质学、气象学等领域有着广泛的应用。通过理解和掌握kriging方法,开发者可以更好地处理和理解复杂的...

    java实现朴素贝叶斯算法

    总结来说,Java实现朴素贝叶斯算法涉及到数据预处理、概率计算、模型建立、预测以及模型评估等多个环节。通过理解算法原理并结合Java编程技巧,我们可以创建一个高效、可扩展的分类系统。在实际应用中,还需要考虑...

    JAVA实现FIFO、LRU、OPT页面置换算法,有界面

    4. JAVA实现带界面的页面置换算法: 在这个项目中,开发者使用Java编程语言实现了上述三种页面置换算法,并提供了一个图形用户界面(GUI)。用户可以设定页面数量,生成随机页面序列,并在指定的物理块中观察页面...

    java实现朴素贝叶斯分类算法

    朴素贝叶斯分类算法是一种基于概率的机器学习方法,它基于贝叶斯定理和特征...通过以上步骤,我们可以用Java实现一个完整的朴素贝叶斯分类算法。在实践中,还需要根据具体问题进行调整和优化,以达到最佳的分类效果。

Global site tag (gtag.js) - Google Analytics