代码如下:

package sk.ann;import java.text.DecimalFormat;
import java.util.Random;/** 功能:计算并比较各类型平均数,调和<=几何<=算术<=平方* 作者:Jason.F* 时间:2017年1月6日*/
public class Average {private final static double dmax=999;//Double.MAX_VALUE;//Double类型的最大值,太大的double值,相乘会达到无穷大private final static double dmin=Double.MIN_VALUE;//Double类型的最小值private final static int n=100;//假设求取100个doubl数的各类平均值public static void main(String[] args){Random random = new Random(); double[] x=new double[n];for(int i=0;i<n;i++){//随机生成n个double数x[i]=Double.valueOf(Math.floor(random.nextDouble()*(dmax-dmin)));}//设置doubl字符串输出格式,不以科学计数法输出    DecimalFormat df=new DecimalFormat("#,##0.00");//格式化设置//计算调和平均数double dHM=HarmonicMean(x);System.out.println("调和平均数="+df.format(dHM)); //计算几何平均数double dGM=GeometricMean(x);System.out.println("几何平均数="+df.format(dGM)); //计算算术平均数double dAM=ArithmeticMean(x);System.out.println("算术平均数="+df.format(dAM)); //计算平方平均数double dMS=MeanSquare(x);System.out.println("平方平均数="+df.format(dMS));//计算中位数,用冒泡排序double dMN=MedianNumber(x);System.out.println("中位数="+df.format(dMN));}//中位数,排序后去中间值,用冒泡排序public static double MedianNumber(double[] x) {   double temp; // 记录临时中间值   int m = x.length; // 数组大小   for (int i = 0; i < m - 1; i++) {   for (int j = i + 1; j < m; j++) {   if (x[i] < x[j]) { // 交换两数的位置   temp = x[i];   x[i] = x[j];   x[j] = temp;   }   }   }   if(m%2==0) //偶数return (x[m/2]+x[m/2+1])/2;//偶数else //奇数return x[m/2+1]/2;}//算术平均数:是一组数据的代数和除以数据的项数所得的平均数public static double ArithmeticMean(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//计算x值的倒数sum+=x[i];}return sum/m;}//平方平均数:是一组数据的平方和除以数据的项数的开方public static double MeanSquare(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//计算x值的倒数sum+=x[i]*x[i];}return Math.sqrt(sum/m);}//几何平均数:是n个数据的连乘积的开n次方根。public static double GeometricMean(double[] x){int m=x.length;double sum=1;for(int i=0;i<m;i++){//计算x值的倒数sum*=x[i];}return Math.pow(sum,1.0/m);//返回sum的m次方根}//调和平均数:一组数据的倒数和除数据的项数的倒数。public static double HarmonicMean(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//计算x值的倒数sum+=1/x[i];}return m/sum;}
}

随机执行的一次结果:各类型平均数排序调和<=几何<=算术<=中位<=平方

调和平均数=218.12
几何平均数=407.75
算术平均数=534.11
平方平均数=610.11
中位数=535.00

机器学习知识点(二)各类型平均数Java实现相关推荐

  1. 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库

    1.隐马尔可夫模型HMM的应用场景,关乎于序列和状态变化的都可以.    发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载.     2.jahmm是java开发隐马尔科夫模型的一个j ...

  2. 机器学习知识点(二十)矩阵奇异值分解基础知识及Java实现

    1.奇异值分解基础知识 特征值分解提取矩阵特征只适用于方阵,对于N * M的矩阵要用奇异值分解: 假设A是一个N * M的矩阵,奇异值分解得到的U是一个N * N的方阵(里面的向量是正交的,U里面的向 ...

  3. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  4. 机器学习知识点(三)方差和标准差Java实现

    1.方差:方差是各个数据与平均数之差的平方的平均数. 2.标准差: 标准差(Standard Deviation) 各数据偏离平均数的距离(离均差)的平均数,它是离差平方和平均后的方根.用σ表示.因此 ...

  5. (转载)机器学习知识点(二十九)LDA入门级学习笔记

    入门级学习笔记 1.1文本建模相关 统计文本建模的目的其实很简单:就是估算一组参数,这组参数使得整个语料库出现的概率最大.这是很简单的极大似然的思想了,就是认为观测到的样本的概率是最大的. 建模的目标 ...

  6. 机器学习知识点(二十七)先验概率和后验概率理解

    对于统计学只是皮毛认识,在学校时根本不重视,如今机器学习几乎以统计学为基础发展起来的,头疼的紧,如今还得琢磨基础概念. 1.我自己的理解: 1)先验:统计历史上的经验而知当下发生的概率: 2)后验:当 ...

  7. 机器学习知识点(七)决策树学习算法Java实现

    为理解机器学习第四章节决策树学习算法,通过网上找到的一份现成代码,主要实现了最优划分属性选择和决策树构造,其中最优划分属性选择采用信息增益准则.决策树构造采用递归实现,代码如下: package sk ...

  8. 机器学习知识点(二十一)特征选择之岭回归和LASSO

    特征选择,也就是特征缩减,是通过对损失函数(即优化目标)加入惩罚项,使得训练求解参数过程中会考虑到系数的大小,通过设置缩减系数(惩罚系数),会使得影响较小的特征的系数衰减到0,只保留重要的特征.嵌入式 ...

  9. 机器学习知识点(一)文本字符信息熵Java实现

    用熵来评价整个随机变量平均的信息量,而平均最好的量度就是随机变量的期望 ,即熵的定义如下: 计算字符的信息熵,参考代码如下: package sk.ann;import java.util.Scann ...

最新文章

  1. monty python喜剧-如何评价英国喜剧团体 Monty Python?
  2. 阿里面试 Java 都问什么?万字总结!
  3. 哪些深度相机有python接口_python 从深度相机realsense生成pcl点云
  4. 怎么中文读_这些中文名字如果用日语念出来会怎样?!
  5. Python 简单网页爬虫学习
  6. 步步为营 .NET 代码重构学习笔记 七
  7. 38个MySQL数据库的小技巧
  8. mysql 禁用swap_MySQL如何避免使用swap
  9. 机器学习Scikit-Learn基本操作实战
  10. vue 事件调用 传参_高效开发小程序,Vue 和微信小程序的区别你该了解一下
  11. 解决Promise.all一个被rejected,整个都被rejected的缺陷
  12. 创建parquet类型的hive外表
  13. 【封面】数字经济引领中国产业改革
  14. Rabbitmq 定时任务
  15. MuMu模拟器连接AndroidStudio脚本
  16. CTF基础知识-Web
  17. 初学VUE 走马灯效果
  18. SAP 的成本中心与利润中心的关系
  19. 织梦cms模板-织梦自适应模板-织梦模板
  20. 删除u盘插拔记录linux,Linux清除U盘(USB)使用记录

热门文章

  1. java 进入catch,JAVA + try catch(FileNotFoundException e)进入catch(Exception e)?
  2. sudoers修改_Ubuntu修改sudoers文件导致sudo命令无法使用的拯救方法
  3. JavaWeb之过滤器(Filter)
  4. 05_传智播客iOS视频教程_类对象的使用
  5. Linux 主机被入侵后的处理案例
  6. 事件委托能够优化js性能
  7. JavaScript学习笔记(备忘录)
  8. asp.net FileUpload上传文件
  9. ubuntu16.04 server unrar解压rar文件提示command not found和解压tar.bz2文件
  10. Android 4.1.2系统添加重启功能