In [19]:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
np.set_printoptions(precision=4)
…
In [20]:
x
from sklearn import preprocessing
…
In [21]:
dataSet_df = pd.read_table('datingTestSet2.txt', names=['feature_1', 'feature_2', 'feature_3', 'label'])
dataSet_df
Out[21]:
…
In [33]:
# ----------------------
# 标准化
'''
公式为:(X-mean)/std 计算时对每个属性/每列分别进行。
将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。
'''
standardize_x = preprocessing.scale(dataSet_df.iloc[:, :-1].values)
standardize_x
Out[33]:
…
In [52]:
int(standardize_x.mean())
Out[52]:
…
In [53]:
int(standardize_x.var())
Out[53]:
…
In [34]:
# ----------------------
# 归一化
'''
1、把数变为[0,1]之间的小数
主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
2、把有量纲表达式变为无量纲表达式
归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
'''
normalize_x = preprocessing.normalize(dataSet_df.iloc[:, :-1].values)
normalize_x
Out[34]:
…
In [48]:
len(normalize_x[(normalize_x >= 0)])
Out[48]:
…
In [54]:
len(normalize_x[( normalize_x <= 1)])
Out[54]:
…