您好,登录后才能下订单哦!
这篇文章跟大家分析一下“如何分析sklearn基础及数据处理”。内容详细易懂,对“如何分析sklearn基础及数据处理”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何分析sklearn基础及数据处理”的知识吧。
sklearn 库整合了多种机器学习算法,可在数据分析过程快速建立模型。通过 pandas 库虽然已经提供数据合并、清洗、标准化(离差标准化、标准差标准化、小数定标标准化),为构建机器学习模型对数据特征还需处理更多预处操作,因此 sklearn 将相关预处理功能封装为统一接口 --- 转换器( Transformer )。使用 sklearn 转换器能够实现对传入的 NumPy 数组进行标准化处理、二值化、 PCA 将为等操作。
说到转换数据,实际上 padas 库也有提供了哑变量处理类别数据、离散化连续数据等功能。这也是为什么仅学 SQL 无法完全替代的 pandas 功能的原因之一。但 sklearn 引入转换器能够对训练集和测试集操作能够更加方便统一。
sklearn 也提供了便于学习的经典数据集,这些数据集类似字典方式存放。通过 ancanda中 Spyder 变量界面能够直观的看到这些数据及其值。通过这些数据我们也能领会数据分析之前对数据格式最终搞成什么样子。例如:数据( data )、标签( target )、特性(feature )等三个基本要素。后续训练集和测试的拆分及进行训练都离不开这些准备数据。
1、加载datasats数据集
如果需要加载某个数据集,则可以将对应的函数赋值给某个变量,再次强调数据集三要素:数据(data)、标签(target)、特性(feature)。如下面代码所示:
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()##将数据集赋值给iris变量
print('breast_cancer数据集的长度为:',len(cancer))
print('breast_cancer数据集的类型为:',type(cancer))
cancer_data = cancer['data']
print('breast_cancer数据集的数据为:','\n',cancer_data)
cancer_target = cancer['target'] ## 取出数据集的标签
print('breast_cancer数据集的标签为:\n',cancer_target)
cancer_names = cancer['feature_names'] ## 取出数据集的特征名
print('breast_cancer数据集的特征名为:\n',cancer_names)
cancer_desc = cancer['DESCR'] ## 取出数据集的描述信息
print('breast_cancer数据集的描述信息为:\n',cancer_desc)
2、将数据划分为训练集和测试集
数据为什么要拆分?因为这是机器学习方法创新点。让计算思维来发掘数据内部的关联关系。这个方法不像传统的实验思维和理论思维。机器学习思路就是根据给定标签训练集来找出数据内在规律和关系。
sklearn 的 model_selection 模块提供了 train_test_split 函数,能够对数据集进行拆分。
print('原始数据集数据的形状为:',cancer_data.shape)
print('原始数据集标签的形状为:',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('训练集数据的形状为:',cancer_data_train.shape)
print('训练集标签的形状为:',cancer_target_train.shape)
print('测试集数据的形状为:',cancer_data_test.shape)
print('测试集标签的形状为:',cancer_target_test.shape)
3 、通过 sklearn 转换器进行数据预处理和降维
为了消除特征之间量纲和取值范围差异可能会造成的影响需要对数据进行标准化处理,也叫做规范化处理。实际上规范化就是减少空间复杂度的过程,PCA降维对应于时间复杂度降低过程。
sklearn 的转换器主要包括 3 个方法: fit 、 transform 、 fit_transform 等。
郑州不孕不育医院:http://www.xbzztj.com/
import numpy as np
from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler().fit(cancer_data_train) ##生成规则
##将规则应用于训练集
cancer_trainScaler = Scaler.transform(cancer_data_train)
##将规则应用于测试集
##cancer_testScaler = Scaler.transform(cancer_data_test)
Scaler = MinMaxScaler().fit(cancer_data_test) ##生成规则
cancer_testScaler = Scaler.transform(cancer_data_test)
print('离差标准化前训练集数据的最小值为:',np.min(cancer_data_train))
print('离差标准化后训练集数据的最小值为:',np.min(cancer_trainScaler))
print('离差标准化前训练集数据的最大值为:',np.max(cancer_data_train))
print('离差标准化后训练集数据的最大值为:',np.max(cancer_trainScaler))
print('离差标准化前测试集数据的最小值为:',np.min(cancer_data_test))
print('离差标准化后测试集数据的最小值为:',np.min(cancer_testScaler))
print('离差标准化前测试集数据的最大值为:',np.max(cancer_data_test))
print('离差标准化后测试集数据的最大值为:',np.max(cancer_testScaler))
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.shape)
print('PCA降维前测试集数据的形状为:',cancer_testScaler.shape)
print('PCA降维后测试集数据的形状为:',cancer_testPca.shape)
关于如何分析sklearn基础及数据处理就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下亿速云网站!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。