【Python 数据分析打怪升级之路 day01】sklearn进行数据预处理数据: 加载、划分、转换、降维

数据分析打怪升级进度:day01

一:使用sklearn转换处理数据

1:model_selection 模型选择模块
2:preprocessing 数据预处理模块
3:decompisition 特征分解模块
三大模块功能:解决数据预处理、PCA降维工作、交叉验证等功能

(一):加载datasets模块中的数据集

1:datasets模块(数据预处理、建模、数据集加载函数)
    a: load_boston(波士顿房价)
    b:load_win(葡萄酒数据集)
    c:load_iris(鸢尾花数据集)
2:Transformer(转换器:数据预处理统一接口)
3:数据集字典(data、target、feature_names、DESCR)

代码1-1:加载波士顿load_boston数据集

from sklearn.datasets import load_boston
# 加载房价数据集
boston = load_boston()
# 打印数据集长度和类型
print(f'长度:{len(boston)},类型:{type(boston)}')

代码1-2:查看boston数据集特征信息

# 数据
boston_data = boston['data']
print(f'数据:{boston_data}')
# 标签
boston_target = boston['target']
print(f'标签:{boston_target}')
# 特证名
boston_names = boston['feature_names']
print(f'特证名:{boston_names}')
# 描述信息
boston_desc = boston['DESCR']
print(f'描述信息:{boston_desc}')

(二):split训练集和测试集

1:训练集50%(估计模型)、验证集25%(确定参数)、测试集20%(检验性能)
2:K折交叉验证法(model_selection.train_test_split)
K-1训练,剩余验证,轮流选择
3:test_size(测试集占比)、random_state(随机种子编号)

代码1-3:train_test_split划分数据集

# 使用train_test_split划分数据集
print(f'原始数据形状为:{boston_data.shape}')
print(f'原始标签形状为:{boston_target.shape}')
# 导入划分数据的函数train_test_split
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(f'训练集数据形状为:{boston_data_train.shape}')
print(f'训练集标签形状为:{boston_target_train.shape}')
print(f'测试集数据形状为:{boston_data_test.shape}')
print(f'测试集标签形状为:{boston_target_test.shape}')

(三):转换器进行数据预处理与降维

1: 转换器三个方法有fit、transform、fit_transform
    a:fit(分析特征和目标值提取信息价值)
    b:transform(特征转换)
        无信息转换:不利用任何其他信息转换(指数和对数转换)
        无监督转换:只利用特征的统计信息转换(标准化和PCA降维)
        有监督转换:特征信息和目标值信息都利用(模型选择特征和LDA降维)
    c:fit_transform(先fit后transform)
 2:离差标准化(最小值、最大值范围在0到1区间)
     StandardScaler: 特征标准差标准化
     Normalizer: 特征归一化
     Binarizer: 特征二值化处理
     OneHotEncoder:特征独热编码处理
     FunctionTransformer:自定义函数变化
 3:PCA降维(特征值维度减少)
     n_components: int整数传入(原始数据降到n个维度)
              float(根据方差决定降维后的维度数)
              mle(根据MLE算法选择维度)
     copy: 若为True,原始数据不会发生任何改变
     whiten:白化(每个特征进行归一化)
     svd_solver:SVD算法
         randomized:数量量大、维度多、主成分数目比例较低的PCA降维
         full:Scipy库传统SVD算法
         arpack:直接使用Scipy库的sparse SVD
         aoto: 从上述三个选择一个合适的权衡

代码1-4:离差标准化

# 离差标准化
import numpy as np
from sklearn.preprocessing import MinMaxScaler
# 生成规则
Scaler = MinMaxScaler().fit(boston_data_train)
# 将规则应用于训练集
boston_trainScaler = Scaler.transform(boston_data_train)
# 将规则应用于测试集
boston_testScaler = Scaler.transform(boston_data_test)
print(f'离差标准化前训练集数据的最小值:{np.min(boston_data_train)}')
print(f'离差标准化后训练集数据的最小值:{np.min(boston_trainScaler)}')
print(f'离差标准化前训练集数据的最大值:{np.max(boston_data_train)}')
print(f'离差标准化后训练集数据的最大值:{np.max(boston_trainScaler)}')

代码1-5:PCA降维

# PCA降维
from sklearn.decomposition import PCA

# 生成规则
pca_model = PCA(n_components=10).fit(boston_trainScaler)
# 规则应用于训练集
boston_trainPca = pca_model.transform(boston_trainScaler)
# 规则应用于测试集
boston_testPca = pca_model.transform(boston_testScaler)
print(f'PCA前训练集数据形状:{boston_trainScaler.shape}')
print(f'PCA后训练集数据形状:{boston_trainPca.shape}')
print(f'PCA后测试集数据形状:{boston_testScaler.shape}')
print(f'PCA后测试集数据形状:{boston_testPca.shape}')
  • 在这个星球上,你很重要,请珍惜你的珍贵! ~~~夜斗小神社

你可能感兴趣的:(数据挖掘与机器学习,python,算法,机器学习,数据分析)