机器学习知识点(二)各类型平均数Java实现
生活随笔
收集整理的這篇文章主要介紹了
机器学习知识点(二)各类型平均数Java实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代碼如下:
package sk.ann;import java.text.DecimalFormat; import java.util.Random;/** 功能:計(jì)算并比較各類型平均數(shù),調(diào)和<=幾何<=算術(shù)<=平方* 作者:Jason.F* 時間:2017年1月6日*/ public class Average {private final static double dmax=999;//Double.MAX_VALUE;//Double類型的最大值,太大的double值,相乘會達(dá)到無窮大private final static double dmin=Double.MIN_VALUE;//Double類型的最小值private final static int n=100;//假設(shè)求取100個doubl數(shù)的各類平均值public static void main(String[] args){Random random = new Random(); double[] x=new double[n];for(int i=0;i<n;i++){//隨機(jī)生成n個double數(shù)x[i]=Double.valueOf(Math.floor(random.nextDouble()*(dmax-dmin)));}//設(shè)置doubl字符串輸出格式,不以科學(xué)計(jì)數(shù)法輸出 DecimalFormat df=new DecimalFormat("#,##0.00");//格式化設(shè)置//計(jì)算調(diào)和平均數(shù)double dHM=HarmonicMean(x);System.out.println("調(diào)和平均數(shù)="+df.format(dHM)); //計(jì)算幾何平均數(shù)double dGM=GeometricMean(x);System.out.println("幾何平均數(shù)="+df.format(dGM)); //計(jì)算算術(shù)平均數(shù)double dAM=ArithmeticMean(x);System.out.println("算術(shù)平均數(shù)="+df.format(dAM)); //計(jì)算平方平均數(shù)double dMS=MeanSquare(x);System.out.println("平方平均數(shù)="+df.format(dMS));//計(jì)算中位數(shù),用冒泡排序double dMN=MedianNumber(x);System.out.println("中位數(shù)="+df.format(dMN));}//中位數(shù),排序后去中間值,用冒泡排序public static double MedianNumber(double[] x) { double temp; // 記錄臨時中間值 int m = x.length; // 數(shù)組大小 for (int i = 0; i < m - 1; i++) { for (int j = i + 1; j < m; j++) { if (x[i] < x[j]) { // 交換兩數(shù)的位置 temp = x[i]; x[i] = x[j]; x[j] = temp; } } } if(m%2==0) //偶數(shù)return (x[m/2]+x[m/2+1])/2;//偶數(shù)else //奇數(shù)return x[m/2+1]/2;}//算術(shù)平均數(shù):是一組數(shù)據(jù)的代數(shù)和除以數(shù)據(jù)的項(xiàng)數(shù)所得的平均數(shù)public static double ArithmeticMean(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//計(jì)算x值的倒數(shù)sum+=x[i];}return sum/m;}//平方平均數(shù):是一組數(shù)據(jù)的平方和除以數(shù)據(jù)的項(xiàng)數(shù)的開方public static double MeanSquare(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//計(jì)算x值的倒數(shù)sum+=x[i]*x[i];}return Math.sqrt(sum/m);}//幾何平均數(shù):是n個數(shù)據(jù)的連乘積的開n次方根。public static double GeometricMean(double[] x){int m=x.length;double sum=1;for(int i=0;i<m;i++){//計(jì)算x值的倒數(shù)sum*=x[i];}return Math.pow(sum,1.0/m);//返回sum的m次方根}//調(diào)和平均數(shù):一組數(shù)據(jù)的倒數(shù)和除數(shù)據(jù)的項(xiàng)數(shù)的倒數(shù)。public static double HarmonicMean(double[] x){int m=x.length;double sum=0;for(int i=0;i<m;i++){//計(jì)算x值的倒數(shù)sum+=1/x[i];}return m/sum;} }隨機(jī)執(zhí)行的一次結(jié)果:各類型平均數(shù)排序調(diào)和<=幾何<=算術(shù)<=中位<=平方 調(diào)和平均數(shù)=218.12 幾何平均數(shù)=407.75 算術(shù)平均數(shù)=534.11 平方平均數(shù)=610.11 中位數(shù)=535.00
總結(jié)
以上是生活随笔為你收集整理的机器学习知识点(二)各类型平均数Java实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习知识点(一)文本字符信息熵Jav
- 下一篇: 机器学习笔记(二)模型评估与选择