首先说一下归一化的好处:
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>