我一直在努力理解为什么fit_transform不断抛出错误。调试并没有多大帮助,因为它只会将我发送到数组的定义,我不确定我缺少了什么。有什么想法吗
import numpy as np
from sklearn.preprocessing import MinMaxScaler
import pickle
def split_data(inputs, outputs, p_train=0.9, p_test=0.1):
train_size = int(len(inputs) * p_train)
test_size = int(len(inputs) * p_test)
inputs_train, inputs_test = inputs[0:train_size, :], inputs[train_size:, :]
outputs_train, outputs_test = outputs[0:train_size, :], outputs[train_size:, :]
return inputs_train, inputs_test, outputs_train, outputs_test
rawinputs = pickle.load(open('rawinputs.pck', 'rb'))
rawoutputs = pickle.load(open('rawoutputs.pck', 'rb'))
#split
inputs_train, inputs_test, outputs_train, outputs_test = split_data(rawinputs, rawoutputs, p_train=0.90, p_test=0.10)
#normalize
scaler_inputs = MinMaxScaler()
inputs_train_scaled = scaler_inputs.fit_transform(inputs_train)
inputs_test_scaled = scaler_inputs.transform(inputs_test)
outputs_train = np.asmatrix(outputs_train)
在使用fit_transform的第一行抛出错误get:
inputs_train_scaled = scaler_inputs.fit_transform(inputs_train)
例如,输入数据的一行:
['28,7170876207375' '339,050018316624' '0,173448071160097' '158,211319524893']
抛出错误:
File "C:\****\venv\lib\site-packages\sklearn\base.py", line 690, in fit_transform return self.fit(X, **fit_params).transform(X)
关键点是
inputs_train
变量必须是二维数组下面是一个简单的例子:
我们将
MinMaxScaler
应用于人脸数据集X是人脸图像,其中y是每个人脸的标签
接下来,我们将数据集划分为训练集和测试集
类似于
split_data
方法每次运行代码时,
random_state
变量将帮助我们生成相同的序列和测试集现在,如果我们看一下
x_train
变量:共有320个列车图像,每个图像为64 x 64像素。我们必须重塑以使用
MinMaxScaler
现在,新的图像大小:
最终代码:
相关问题 更多 >
编程相关推荐