sklearn官网学习入门二

本文介绍了如何使用scikit-learn处理非2D数组数据集,强调了在保持样本和特征完整性的前提下,通过reshape操作将数据转换为适合模型训练的二维数组形式。内容包括加载digits数据集并展示,以及reshape操作的具体应用。
摘要由CSDN通过智能技术生成

摘要:
Scikit-learn在处理数据,生成学习模型时,通常要求采用的数据集是以2维数组表示的。
第一个坐标轴称为样本轴,表示样本编号0,1,2,3,…,n;
第二个坐标轴称之为特征值,表示特征编号0,1,2,…,k
于是,我们在处理非2D-array的数据集时,需要将其进行预处理,操作如下:


1. 加载digits数据集

from sklearn import datasets
digits = datasets.load_digits()
print(digits.images.shape)

1.1 输出:

(1797, 8, 8) #显然这是一个三维的数据集,由1797个(8,8)的数组构成

2. reshape操作,修改数据集的维度

# 重点说明一下reshape这个函数
# 1 reshape()不会改变原数据集的结构,于是我们需要用另一个对象来保存修改后的新数据集
# 2 data.size,这是数据集的一个属性,描述了数据集中,元素的总个数
# 3 reshape()操作的就是划分数据集,其data.size是不会改变的,reshape的参数就是(a1,a2,a3,...,an),a1*a2*...*an = data.size不变
# 4 在只有一个维度的个数未知的情况下,可以用-1来缺省,如reshape(100,-1),reshape(10,10,-1)
data = digits.images.reshape((digits.images.shape[0], -1))
print(data.shape)

2.1 输出

(1797, 64) #转变成了一个二维的数据集,由1797个长度为64的向量构成

小结:在不破坏原数据集samples和features完整性的前提下,我们在reshape的时候,应当保证shape[0]即样本个数不变,这也是此处用(digits.images.shape[0], -1)作为参数的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值