机器学习知识点(二)各类型平均数Java实现
来源:互联网 发布:mac桌面不见 编辑:程序博客网 时间:2024/05/18 03:16
代码如下:
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
0 0
- 机器学习知识点(二)各类型平均数Java实现
- 机器学习知识点(四)最小二乘法Java实现
- 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
- 机器学习知识点(七)决策树学习算法Java实现
- 机器学习知识点(十六)集成学习AdaBoost算法Java实现
- 机器学习知识点(一)文本字符信息熵Java实现
- 机器学习知识点(三)方差和标准差Java实现
- 机器学习知识点(五)梯度下降法Java实现
- 机器学习知识点(八)感知机模型Java实现
- 机器学习知识点(九)BP神经网络Java实现
- 机器学习知识点(三十)LDA话题模型Java实现
- 机器学习知识点(六)增广矩阵求解拉格朗日乘子法的Java实现
- 机器学习知识点(十八)密度聚类DBSCAN算法Java实现
- 机器学习知识点学习
- 机器学习知识点学习
- 机器学习知识点学习
- 机器学习知识点学习
- 使用apache配置基于IP地址的虚拟主机
- 【Android基础笔记06】Activity管理及Intent七大属性
- Android Chronometer Format问题
- appstore审核的那些事 --2. IPv6环境下的支持
- 我的职场经验分享 - 黄勇
- 机器学习知识点(二)各类型平均数Java实现
- Jmeter之Bean shell使用
- Caffe-SSD 安装过程
- opencv创建滚动条+canny
- 我的PHP,Python和Ruby之路
- 多点登录限制,禁止单用户多点在线
- iOSiOS UINavigationBar跳转页面的导航条隐藏或者出现空挡不完整
- 【PHP兴趣部落-09】递归转义
- 推荐:深入浅出的自然语言处理书单!