机器学习知识点(二)各类型平均数Java实现
生活随笔
收集整理的這篇文章主要介紹了
机器学习知识点(二)各类型平均数Java实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼如下:
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实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习知识点(一)文本字符信息熵Jav
- 下一篇: 机器学习笔记(二)模型评估与选择