model_selection模型选择模块
preprocessing数据预处理模块
decompisition特征分解模块
实现数据预处理与模型构建前的数据标准化、二值化、数据集的分割、交叉验证和PCA降维等工作
6.1.1加载datasets模块中的数据集
#加载breast_cancer数据集
from sklearn.datasets import load_breast_cancer
cancer=load_breast_cancer()#将数据集赋值给Cancer变量
print('bread_Cancer数据集的长度为:',len(cancer))
print('bread_Cancer数据集的类型为:',type(cancer))
#sklearn自带数据集内部信息获取
#1.取出数据
cancer_data=cancer['data']
print('bread_cancer数据集的数据为:\n',cancer_data)
#2.取出标签
cancer_target=cancer['target']
print('bread_cancer数据集的标签为:\n',cancer_target)
#3.取出特征名
cancer_names=cancer['feature_names']
print('bread_cancer数据集的名字为:\n',cancer_names)
#4.取出描述信息
cancer_desc=cancer['DESCR']
print('bread_cancer数据集的描述信息为:\n',cancer_desc)
6.1.2 将数据集分为训练集和测试集
#使用train_test_split划分数据集
print('原始数据集数据的形状:\n',cancer_data.shape)
print('标签的形状为:\n',cancer_target.shape)
from sklearn.model_selection import train_test_split
cancer_data_train,cancer_data_test,\
cancer_target_train,cancer_target_test=\
train_test_split(cancer_data,cancer_target,test_size=0.2,random_state=42)
print('训练集的数据形状为:\n',cancer_data_train.shape)
print('测试集的数据形状为:\n',cancer_data_test.shape)
print('训练集的标签形状为:\n',cancer_target_train.shape)
print('测试集的标签形状为:\n',cancer_target_test.shape)
6.1.3使用sklearn转换器进行数据预处理与降维
#离差标准化minmaxscaler
import numpy as np
from sklearn.preprocessing import MinMaxScaler
#minmaxscalr用来将属性缩放到一个指定的最大值和最小值(通常是1-0)之间
#sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)
scaler=MinMaxScaler().fir(cancer_data_train)
cancer_trainscaler=scaler.transform(cancer_data_train)
cancer_testscaler=scaler.transform(cancer_data_test)
print('离差标准化前训练集数据的最小值为',np.min(cancer_data_train))
print('离差标准化前训练集数据的最大值为',np.max(cancer_data_train))
print('离差标准化后训练集数据的最小值为',np.min(cancer_trainscaler))
print('离差标准化后训练集数据的最大值为',np.max(cancer_trainscaler))
print('离差标准化前测试集数据的最小值为',np.min(cancer_data_test))
print('离差标准化前测试集数据的最大值为',np.max(cancer_data_test))
print('离差标准化后测试集数据的最小值为',np.min(cancer_testscaler))
print('离差标准化后测试集数据的最大值为',np.max(cancer_testscaler))
#对bread_cancer数据集PCA降维
From sklearn.decomposition import PCA
pca_model=PCA(n_components=10).fit(cancer_trainscaler)#生成规则
cancer_trainpca=pca_model.transform(cancer_trainscaler)
cancer_testpca=pca_model.transform(cancer_testscaler)
print('PCA降维前训练集数据的形状为:',cancer_trainscaler.shape)
print('PCA降维后训练集数据的形状为:',cancer_trainpca)
print('PCA降维前测试集数据的形状为:',cancer_testscaler.shape)
print('PCA降维后测试集数据的形状为:',cancer_testpca)
#任务实现
from sklearn.datasets import load_boston
boston=load_boston()
print('boston数据集的长度为:',len(boston))
print('boston数据集的类型为:',type(boston))
boston_data=boston['data']
boston_target=boston['target']
boston_names=boston['feature_names']
print('boston数据集数据的形状为:',boston_data.shape)
print('boston数据集标签的形状为:',boston_target.shape)
print('boston数据集名字的形状:',boston_names.shape)
from sklearn.model_selection import train_test_split
boston_data_train,boston_data_test,\
boston_target_train,boston_target_test=\
train_test_split(boston_data,boston_target,test_size=0.2,random_state=42)
print('训练集的数据形状为:\n',boston_data_train.shape)
print('测试集的数据形状为:\n',boston_data_test.shape)
print('训练集的标签形状为:\n',boston_target_train.shape)
print('测试集的标签形状为:\n',boston_target_test.shape)
from sklearn.preprocessing import StandardScaler
stdscale=StandardScaler().fit(boston_data_train)#生成规则
boston_trainscaler=stdscale.transform(boston_data_train)
boston_testscaler=stdscale.transform(boston_data_test)
print('标准差标准化前训练集数据的方差为',np.var(boston_data_train))
print('标准差标准化前训练集数据的均值为',np.mean(boston_data_train))
print('标准差标准化后训练集数据的方差为',np.var(boston_trainscaler))
print('标准差标准化后训练集数据的均值为',np.mean(boston_trainscaler))
print('标准差标准化前测试集数据的方差为',np.var(boston_data_test))
print('标准差标准化前测试集数据的均值为',np.mean(boston_data_test))
print('标准差标准化后测试集数据的方差为',np.var(boston_testscaler))
print('标准差标准化后测试集数据的均值为',np.mean(boston_testscaler))