Python 数据分析打怪升级之路 day01sklearn进行数据预处理数据: 加载划分转换降维
Posted 夜斗小神社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 数据分析打怪升级之路 day01sklearn进行数据预处理数据: 加载划分转换降维相关的知识,希望对你有一定的参考价值。
数据分析打怪升级进度: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 数据分析打怪升级之路 day01sklearn进行数据预处理数据: 加载划分转换降维的主要内容,如果未能解决你的问题,请参考以下文章
Python 数据分析打怪升级之路 day02:行之有效的学习方法数据挖掘核心步骤
Python 数据分析打怪升级之路 day02:行之有效的学习方法数据挖掘核心步骤
如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day04:手把手教你如何分析用户数据数据分析基本概念
爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表
爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表
爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表