在 fit_transform 之后缩放新值
scalling new values after fit_transform
我有以下特点:
array([[290., 50.],
[290., 46.],
[285., 44.],
...,
[295., 46.],
[299., 46.],
[ 0., 0.]])
转换后:
from sklearn.preprocessing import StandardScaler
self.scaler = StandardScaler()
self.scaled_features = self.scaler.fit_transform(self.features)
我有 scaled_features:
array([[ 0.27489919, 0.71822864],
[ 0.27489919, 0.26499222],
[ 0.18021955, 0.03837402],
...,
[ 0.36957884, 0.26499222],
[ 0.44532255, 0.26499222],
[-5.2165202 , -4.94722653]])
现在我希望从 self.scaler 中获取样本,所以我将我的新特征示例发送到 t:
t = [299.0, 46.0]
new_data = np.array(t).reshape(-1, 1)
new_data_scaled = self.scaler.transform(t)
我明白了
non-broadcastable output operand with shape (2,1) doesn't match the broadcast shape (2,2)
我做错了什么?为什么 new_data 没有被调用?
有两件事,首先是将列表 t
放入 transform
而不是 new_data
。其次,new_date
具有形状 (2,1) 但应该具有形状 (1,2)。所以如果你把它改成
t = [299.0, 46.0]
new_data = np.array(t).reshape(1, -1)
new_data_scaled = self.scaler.transform(new_data)
你应该得到缩放数据。
我有以下特点:
array([[290., 50.],
[290., 46.],
[285., 44.],
...,
[295., 46.],
[299., 46.],
[ 0., 0.]])
转换后:
from sklearn.preprocessing import StandardScaler
self.scaler = StandardScaler()
self.scaled_features = self.scaler.fit_transform(self.features)
我有 scaled_features:
array([[ 0.27489919, 0.71822864],
[ 0.27489919, 0.26499222],
[ 0.18021955, 0.03837402],
...,
[ 0.36957884, 0.26499222],
[ 0.44532255, 0.26499222],
[-5.2165202 , -4.94722653]])
现在我希望从 self.scaler 中获取样本,所以我将我的新特征示例发送到 t:
t = [299.0, 46.0]
new_data = np.array(t).reshape(-1, 1)
new_data_scaled = self.scaler.transform(t)
我明白了
non-broadcastable output operand with shape (2,1) doesn't match the broadcast shape (2,2)
我做错了什么?为什么 new_data 没有被调用?
有两件事,首先是将列表 t
放入 transform
而不是 new_data
。其次,new_date
具有形状 (2,1) 但应该具有形状 (1,2)。所以如果你把它改成
t = [299.0, 46.0]
new_data = np.array(t).reshape(1, -1)
new_data_scaled = self.scaler.transform(new_data)
你应该得到缩放数据。