数据挖掘实验报告
——最小最大规范化、
小数定标、z_score 规范化算法
指导老师:刘建伟
学院:理学院
班级:091001
学号:091001106
姓名:马昊
数据挖掘实验报告
——最 小 最 大 规 范 化 、小 数 定 标 、
z_score 规范化算法
一、实验目的
1.加强对最小最大规范化、小数定标、z_score 规范化算法的理解;
2.锻炼分析问题、解决问题并动手实践的能力;
二、实验原理
最小最大规范化:支持向量回归会发现,归一化之后的预测结果
和 没有归一化之后的预测精度很不一样。所以归一化是重要的。归
一化 的方法有很多,一般用最小最大值规范化的情况比较多.
小数定标:表示小数可采用数的定标来实现。
z_score 规范化:提供这个函数也是用来对 pls 数据进行预处理
的,即归一化的。其实 zscore 的原理很简单,就是原数据减去均值,
再除以标准差就可以了
执行代码就是 z = (x–mean(x))./std(x)
三、实验内容
运用 java 编程语言实现求最小最大规范化、小数定标、z_score
规范化的算法。
四、源代码
package com.zz.rule;
import java.util.Iterator;
import java.util.List;
import java.util.Collections;
public class Rule {
//最小最大规范化
public static double min_max(double min,double max,double
v,double new_max,double new_min){
double newv = 0;
newv = (v-min)*(new_max-new_min)/(max-min)+new_min;
return newv;
}
//z-score 规范化
static
public
double
z_score(double
avg,double
standardmin,double v){
double newv = 0;
newv = (v - avg)/standardmin;
return newv;
}
//小数定标
public static double point(double min,double max, int v){
double minabs = Math.abs(min);
double maxabs = Math.abs(max);
double absmax = minabs>=maxabs?minabs:maxabs;
double newv = 0;
int i = 0;
for(int j = 0;;j++){
if(absmax/(Math.pow(10,j))<1){
i = j;
break;
}
}
newv = (v/Math.pow(10, i));
return newv;
}
//求标准差
public static double standard(List list){
double standardmin = 0;
double powsum = 0;
double sum = 0;
double mean = 0;
for(Iterator ite = list.iterator();ite.hasNext();){
sum+=ite.next();
}
mean = sum/list.size();
for(Iterator it = list.iterator();it.hasNext();){
double d = it.next();
powsum += Math.pow(d-mean,2);
}
standardmin = Math.sqrt(powsum);
return standardmin;
}
public static void main(String[] args){
double v = min_max(12000, 98000, 73600, 1.0, 0);
System.out.println("最小最大规范化:");
System.out.println(v);
v = point(-986,917,-986);
System.out.println("小数定标:");
System.out.println(v);
v = z_score(54000, 16000, 73600);
System.out.println("z_score 规范化:");
System.out.println(v);
}
}
实验结果
最小最大规范化:0.7162790697674418
小数定标: -0.986
z_score规范化:
1.225
五、实验总结
通过本次实验,我了解了java最小最大规范化、小数定标、z_score
规范化的算法,更加深入的学习到了java的应用方法。