机器学习知识点(三)方差和标准差Java实现
生活随笔
收集整理的這篇文章主要介紹了
机器学习知识点(三)方差和标准差Java实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、方差:方差是各個數據與平均數之差的平方的平均數。
2、標準差:
標準差(Standard Deviation)?
各數據偏離平均數的距離(離均差)的平均數,它是離差平方和平均后的方根。用σ表示。因此,標準差也是一種平均數
標準差是方差的算術平方根。
標準差能反映一個數據集的離散程度。平均數相同的,標準差未必相同。
3、參考代碼:
package sk.ann;import java.text.DecimalFormat; import java.util.Random;public class VarianceAndStandardDiviation {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)));System.out.println(x[i]);}//設置doubl字符串輸出格式,不以科學計數法輸出 DecimalFormat df=new DecimalFormat("#,##0.00");//格式化設置//計算方差double dV=Variance(x);System.out.println("方差="+df.format(dV));//計算標準差double dS=StandardDiviation(x);System.out.println("標準差="+df.format(dS));}//方差s^2=[(x1-x)^2 +...(xn-x)^2]/npublic static double Variance(double[] x) { int m=x.length;double sum=0;for(int i=0;i<m;i++){//求和sum+=x[i];}double dAve=sum/m;//求平均值double dVar=0;for(int i=0;i<m;i++){//求方差dVar+=(x[i]-dAve)*(x[i]-dAve);}return dVar/m;}//標準差σ=sqrt(s^2)public static double StandardDiviation(double[] x) { int m=x.length;double sum=0;for(int i=0;i<m;i++){//求和sum+=x[i];}double dAve=sum/m;//求平均值double dVar=0;for(int i=0;i<m;i++){//求方差dVar+=(x[i]-dAve)*(x[i]-dAve);}return Math.sqrt(dVar/m); } } 隨機執行的結果: 方差=80,345.83 標準差=283.45總結
以上是生活随笔為你收集整理的机器学习知识点(三)方差和标准差Java实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习笔记(二)模型评估与选择
- 下一篇: 关于微信小程序的好奇和多事