sklearn
sklearn.model_selection.train_test_split()
feature_train,feature_test,label_train,label_test = sklearn.model_selection.train_test_split(feature,label,test_size,random_state)
其中feature就是特征集,label是标签集,test_size是测试集比例,可以是小数或者数值,小数的含义是按比例划分到测试集中,数值是按数量划分到测试集中,random_state就是随机种子~
返回值按顺序分别是feature_train,feature_test,label_train,label_test
sklearn.preprocessing.MinMaxScaler()
min_max_scaler = preprocessing.MinMaxScaler()
x_train = min_max_scaler.fit_transform(feature_train)
x_test = min_max_scaler.fit_transform(feature_test)
先调用sklearn.preprocessing.MinMaxScaler()生成实例对象min_max_scaler,这个实例对象的方法fit_transform(x)就是用来对x实现最大最小值归一化的,也就是把数据放缩到[0,1]中。
注意这里的归一化,不是对整个矩阵进行归一化,而是一列一列进行的归一化,具体如下:
from sklearn import preprocessing
import numpy as np
x = np.array([[3., 3, 2., 1],
[2., 0., 0., 2],
[0., 1., 1., 3],
[1., 2., 3, 0]])
min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
print(x_minmax)
[[1,1,0.6,0.3],
[0.6,0,0,0.6],
[0,0.3,0.3,1]
[0.3,0.6,1,0]]
这样比较好,因为每一列就是一个特征,或者一个标签,我们需要在各个特征下进行归一化~
另外sklearn.preprocessing.MaxAbsScaler()是归一化到[-1,1]中,而sklearn.preprocessing.scale(x)则是实现标准化的,注意这个是直接用的,没有实例化对象,它应该是一个def.