python|6.1使用scikit-learn转换器处理数据

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))

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值