📄 evaluate.java
字号:
/*
* Evaluate.java
*
* Created on 2007年11月8日, 下午12:39
*
*/
package myUtil;
import java.util.*;
/**
* tools to evaluate.
* @author yuhui_bear
*/
public class Evaluate {
public Evaluate(){}
public static double[] difference (double[] d , double[] o){
double[] temp = new double[d.length];
for (int i = 0 ; i< d.length;i++){
temp[i] = d[i] - o[i];
}
return temp;
}
public double meanDifference (double[] d , double[] o){
double[] temp = new double[d.length];
double ex=0;
for (int i = 0 ; i< d.length;i++){
temp[i] = d[i] - o[i];
}
for (int i =0;i <d.length; i++){
ex = ex +temp[i];
}
ex = ex / d.length;
return ex;
}
public static double mean(double[] d) {
double t=0;
for ( int i =0 ; i< d.length ; i++){
t += d[i];
}
t = t / d.length;
return t;
}
public static double mean(float[] d) {
double t=0;
for ( int i =0 ; i< d.length ; i++){
t += d[i];
}
t = t / d.length;
return t;
}
public static double relativeError(double[] ind, double[] outd){
double[] temp = difference(ind,outd);
for ( int i = 0 ; i < ind.length ;i++){
temp[i] = Math.abs(temp[i] / ind[i]);
}
return mean(temp);
}
public static double smoothedSlope(double[] ind){
double[] data = new double[ind.length];
for(int t=0; t<3;t++){
for(int i = 0 ; i<ind.length-1;i++){
data[i] = (ind[i] + ind[i+1])/2;
}
}
data[ind.length-1] = (ind[0]+ind[ind.length-1])/2;
double dm = 0;
double max =data[0] , min = data[0];
for ( int i = 0 ; i< data.length;i++){
if(max < data[i]){
max = data[i];
}else{
if(min > data[i]){
min = data[i];
}
}
}
dm = max - min;
for (int i = 0 ; i< ind.length ;i++){
data[i] =(data[i] - min)/dm;
}
return ((data[0] +data[1] +data[2]
- data[data.length-1] -data[ind.length -2] -data[ind.length -3])/3);
}
public static double relativeError(double[] ind, double exp){
double[] temp = new double[ind.length];
for ( int i = 0 ; i < ind.length ;i++){
temp[i] = Math.abs(1-ind[i] / exp);
}
return mean(temp);
}
public static <T extends NumberBox> double mean(ArrayList<T> al){
double tm=0;
for ( int i=0 ; i < al.size(); i++) {
tm += al.get(i).doubleData;
}
return tm / al.size();
}
public static <T extends NumberBox> double mean(T[] al){
double tm=0;
for ( int i=0 ; i < al.length; i++) {
tm += al[i].doubleData;
}
return tm / al.length;
}
public static double averageSquareError(double[] d , double[] o){
double temp=0;
for (int i =0 ; i< d.length ; i++){
temp =temp + Math.pow((d[i] - o[i]),2);
}
temp = temp /2;
return temp;
}
public static double meanSquareError(double[] d ,double exp ) {
double temp =0;
for (int i =0 ; i< d.length ; i++){
temp =temp + (Math.pow((d[i] - exp),2))/2;
}
temp = temp/d.length;
return Math.sqrt(temp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -