from sklearn.preprocessing import StancdardScaler
sklearn的preprocessing库:用来对数据预处理,包括无量纲化,特征二值化,定性数据量化等
主要包括14大类,为训练集数据的预处理提供接口,每个类都提供了fit(填充数据,获取数据上的特征信息并保存),transform(将fit保存的信息应用到其它数据集上,对其它数据集进行转换),fit_transform(填充数据并对数据进行转换)
目前常见的无量纲化处理方法主要有极值化、标准化、均值化以及标准差化方法,而最常使用的是标准化方法。但标准化方法处理后的各指标均值都为0,标准差都为1,它只反映了各指标之间的相互影响,在无量纲化的同时也抹杀了各指标之间变异程度上的差异,因此,标准化方法并不适用于多指标的综合评价中。而经过均值化方法处理的各指标数据构成的协方差矩阵既可以反映原始数据中各指标变异程度上的差异,也包含各指标相互影响程度差异的信息
StandardScaler
标准化:(x-列均值)/ 列标准差
reshape[-1,a] 这里的-1意味着自动计算,a变为别的值得,-1也会计算出别的值
data.drop(['a','b'],axis = 1)#去掉数据中的列名为a,b的列
特征数据构造:
X = data.ix[: , data.coulmns != 'Class']
y = data.ix[: , data.coulmns == 'Class']
from sklearn.cross_validation import train_test_spilt
-
K折交叉验证
Iteration Training setobservations Testingset observations
1 [ 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920 21 22 23 24] [0 1 2 3 4]
2 [ 0 1 2 3 4 10 11 12 13 14 15 16 17 18 1920 21 22 23 24] [5 6 7 8 9]
3 [ 0 1 2 3 4 5 6 7 8 9 1516 17 18 19 20 21 22 23 24] [10 11 1213 14]
4 [ 0 1 2 3 4 5 6 7 8 9 1011 12 13 14 20 21 22 23 24] [15 16 1718 19]
5 [ 0 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19] [20 21 2223 24]
#分出25个数据的五分之一作为测试集,剩下的作为训练集,这里没有对数据进行洗牌,所以按数据的顺序进行选择。训练-测试的组合也为五次。
Sklearn的train_test_split用法
X_train,X_test, y_train, y_test =cross_validation.train_test_split(X,y,test_size, random_state)
切分前会先洗牌
random_state:是随机数的种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。