首先说一下归一化的好处:
1 收敛速度加快
2 提高精确度
原因参考网上的两个图:
归一化前 归一化后:
我的数据格式为:
5.4,3.4,1.7,0.2
5.1,3.7,1.5,0.4
4.6,3.6,1.0,0.2
5.1,3.3,1.7,0.5
4.8,3.4,1.9,0.2
5.0,3.0,1.6,0.2
归一化后的数据为
1 , 0.673469, 0.244898, 0
1, 0.595745, 0.255319, 0
1, 0.666667, 0.244444, 0
1, 0.659091, 0.295455, 0
1, 0.708333, 0.25, 0
ofstream outfile; outfile.open("one.txt"); if(!outfile) cout<<"error"<<endl; for (int i=0;i<60;i++) { float dMaxValue = *max_element(features[i].begin(),features[i].end()); //求最大值 float dMinValue = *min_element(features[i].begin(),features[i].end()); //求最小值 for (int f = 0; f < 4; f++) //features[0].size() { features[i][f] = (float)((features[i][f]-dMinValue)/(dMaxValue-dMinValue)); if(f!=0&&f%3==0){ //四个数据换行 outfile<<features[i][f]<<" "; outfile<<"\n"; }else { outfile<<features[i][f]<<","; } } } outfile.close();//关闭文件,保存文件。 cout<<"转入one.txt成功..."; features.clear();//删除容器
用到的头文件
#include<iostream> #include <vector> #include<algorithm> #include <fstream>