x_data = datasets.load_iris().data
y_data = datasets.load_iris().target
datasets.load_iris()返回的是<class ‘sklearn.utils.Bunch’>
我们可以利用type(datasets.load_iris())得到属性。姑且这里可以理解为类吧。
np.random.seed(116)#随机数种子
np.random.shuffle(x_data)#打乱顺序,因为原数组y值按序排列,会影响模型拟合性
np.random.seed(116)
np.random.shuffle(y_data)
扩展:np.random随机模块
1:np.random.rand(3,2) 返回[3,2]的随机数
array([[ 0.14022471, 0.96360618], #random
[ 0.37601032, 0.25528411], #random
[ 0.49313049, 0.94909878]]) #random
2:a=np.random.randn(3,4) 随机正态分布的样本【normal distribution】
[[-0.33048377 0.23360005 -0.90960278 -1.71455775]
[ 0.15790672 -1.75625325 1.44082303 -0.27947681]
[ 1.96307815 -0.15549447 1.43778136 0.07263787]]
3:返回随机整数np.random.randint(low,high,size=(a,b))
一位参数:0-high)
二位参数:[low,high)
三位参数
a=np.random.randint(3,9, size=(2,4))
[[7 5 5 5]
[7 5 3 3]]
b=np.random.randint(1, size=(3,6))
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
4:返回0-1的随机浮点数 np.random.random([3,4])
a=2*np.random.random([3,4])+3
[[3.80825656 4.19216891 3.13883402 4.80575456]
[3.24359894 3.58765032 3.5430586 4.72078944]
[3.87530062 4.50962233 4.2954225 3.22771614]]
5:np.random.seed()
设置的seed()值仅一次有效
np.random.seed(100)
a=np.random.rand(3,4)
b=np.random.rand(3,4)
print(a)
print(b)
[[0.54340494 0.27836939 0.42451759 0.84477613]
[0.00471886 0.12156912 0.67074908 0.82585276]
[0.13670659 0.57509333 0.89132195 0.20920212]]
[[0.18532822 0.10837689 0.21969749 0.97862378]
[0.81168315 0.17194101 0.81622475 0.27407375]
[0.43170418 0.94002982 0.81764938 0.33611195]]
会发现两次随机数结果不一样
6:np.random.shuffle(y_data) 随机打乱顺序
x_train= x_data[:-30]
y_train= y_data[:-30]
x_test=x_data[-30:]
y_test=y_data[-30:]
-30代表倒数第30个 [:-30]代表从0到倒数第30个
[-30:]代表倒数第30个到最后一个
x[rows,columns] 逗号前是对行操作,后是对列操作 。
x_train = tf.cast(x_train, tf.float32)
x_test=tf.cast(x_test,tf.float32)
强制类型转换,转为tf.float32
#batch为分组,即每一组分为Batch个
train_db = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(32)
test_db = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(10)
扩展: tf.data.Dataset.from_tensor_slices
将x_train和y_train,x_test和y_test相互关联【from_tensor_slices函数切分传入的 Tensor 的第一个维度,生成相应的 dataset】
关联x_train和y_train关联后为Dataset,无法正常输出【可以理解为很多块batch】打印可以发现
有两种输出