-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnormalization.cpp
106 lines (87 loc) · 1.61 KB
/
normalization.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include<bits/stdc++.h>
using namespace std;
double calc_avg(vector<float >v);
double varience(vector<float >v);
int min_max_norm(vector<float> v);
int zscore_norm(vector<float>v);
int main()
{
vector<float>v;
int len,i;
cout<<"no. of elements:";
cin>>len;
cout<<"Enter elements:";
for(i=0;i<len;i++)
{
int x;
cin>>x;
v.push_back(x);
}
cout<<endl<<"..............................................."<<endl;
cout<<"z-score normalization:"<<endl;
zscore_norm(v);
cout<<"..............................................."<<endl;
cout<<"min-max normalization:"<<endl;
min_max_norm(v);
cout<<"..............................................."<<endl;
return 0;
}
double calc_avg(vector<float >v)
{
double avg=0;
int i;
for(i=0;i<v.size();i++)
{
avg+=v[i];
}
avg/=v.size();
return avg;
}
double varience(vector<float >v)
{
double sum=0,mean_val;
int i;
mean_val=calc_avg(v);
for(i=0;i<v.size();i++)
{
sum+=(mean_val-v[i])*(mean_val-v[i]);
}
sum/=(v.size()-1);
return sqrt(sum);
}
int min_max_norm(vector<float>v)
{
int mn,mx,i;
cout<<"Range(Min-max values respectively):- ";
cin>>mn>>mx;
sort(v.begin(),v.end());
vector< float>f;
for(i=0;i<v.size();i++)
{
f.push_back(v[i]);
f[i]=((float((v[i]-v[0])/(v[v.size()-1]-v[0])))*(mx-mn))+mn;
}
for(i=0;i<f.size();i++)
{
cout<<f[i]<<" ";
}
cout<<endl;
return 0;
}
int zscore_norm(vector<float>v)
{
double vari=varience(v),avg=calc_avg(v);
vector<double> z;
int i;
for(i=0;i<v.size();i++)
{
z.push_back((v[i]-avg)/vari);
}
sort(z.begin(),z.end());
for(i=0;i<z.size();i++)
{
cout<<z[i]<<" ";
}
cout<<endl;
return 0;
}