1、获取样本数据
from sklearn import datasets
boston = datasets.load_boston() # Bunch部含有多个属性
# boston.data, boston.target
# housing = datasets.fetch_california_housing() # 适用于较大数据集,需外部下载
2、创建样本数据
from sklean import datasets # datasets.make_*?
# 创建回归数据
reg_data = datasets.make_regression() # 参数自行设置
blobs = datasets.make_blobs() # 创建聚类数据
3.1、把数据调整为标准正态分布
数学公式: X_new = (X_i - E(data)) / Std(data)
数据标准化在机器学习中很有必要,有些模型对数据标准较敏感。例如SVM经过数据标准化后性能明显提高。
from sklearn import preprocessing
from sklearn import datasets
X, Y = boston.data, boston.target
# 将数据标准正态话->preprocessing.scale,转换后数据均值为0,方差为1
print(X[:, :5].mean(axis=0))
print(X[:, :5].std(axis=0), '\n')
X_pre = preprocessing.scale(X) # 参数自行设置
print(X_pre[:, :5].mean(axis=0))
print(X_pre[:, :5].std(axis=0))
my_scaler = preprocessing.StandardScaler() # 中心化与标准化类
my_scaler.fit(X[:, :3])
print(my_scaler.transform(X[:, :3]).mean(axis=0)) # 将数据转化为均值为0, 标准差为1
print(my_scaler.transform(X[:, :3]).std(axis=0))
3.2、数据缩放映射到一个范围,MinMaxScale类,通常缩放到(0, 1)
数学公式: X_new = (X_i - Min(data)) / (Max(data)-Min(data))
min_max_scale = preprocessing.MinMaxScaler(feature_range=(0 ,1)) # 指定数据范围
min_max_scale.fit(X[:, :5])
new_data = min_max_scale.transform(X[:, :5])
new_data.min(axis=0)
3.3、正态化方法:将每个样本长度标准化为1, 该方法不在乎向量的长度,只和角度有关,在求欧式距离时此变换很有必要
normalized_X = preprocessing.normalize(X[:, :5])
以上就是数据变换的主要常用方法。
4、管道命令
组合多个步骤并成一个对象执行
未完待续......