我在尝试使用StandardScaler缩放我的输入时,出现了以下错误:
值错误:操作数无法与形状(114,9)(8,)(114,9)一起广播
首先,我按照以下方式从测试数据集中移除了患者数据,
test = patient.iloc[2092:,0:9].values
然后我按照以下方式缩放了测试数据,
from sklearn.preprocessing import StandardScalersc=StandardScaler()patient[['Age','Weight','Glucose_t-3','Glucose_t-2','Glucose_t-1','Carb_t-1','Insulin_t- 1','Glucose_t-4']] = sc.fit_transform(patient[['Age','Weight','Glucose_t-3','Glucose_t-2','Glucose_t- 1','Carb_t-1','Insulin_t-1','Glucose_t-4']])data = patient.iloc[:,0:9]
之后,我尝试使用以下代码转换测试数据
test_data = sc.transform(test)
上述代码行出现了错误。当我打印两个数组test和data的形状时,显示如下,
print(test.shape)print(data.shape)(114, 9) ------ test形状(2206, 9) ----- data形状
列是相同的,只是记录数量不同。我做错了什么?
回答:
这是因为您对8列而不是9列进行了拟合转换。您缺少了一个列名。
- ‘Age’,
- ‘Weight’,
- ‘Glucose_t-3’,
- ‘Glucose_t-2’,
- ‘Glucose_t- 1’,
- ‘Carb_t-1’,
- ‘Insulin_t-1’,
- ‘Glucose_t-4’