【发布时间】:2020-11-14 10:08:14
【问题描述】:
我一直在努力理解为什么 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 的第一行抛出错误:
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)
【问题讨论】:
-
您好,欢迎来到 SO。如果您还可以发布您获得的完整错误和回溯,那将会很有帮助。另外,您正在使用的数据示例。
-
原始输入数据中的值看起来很奇怪:首先它们是字符串。其次,它们看起来像使用逗号作为小数分隔符的浮点数(德国数据源?)。第三,列表表达式缺少逗号作为元素分隔符。可能是你的错字?
-
这些值来自一个 csv 文件,该文件直接来自我创建的模型,格式有点偏离,因为我从 Pycharm 打印了数组,但数据应该是由 4 个组成的通用二维数组在指定的时间步数内重复的浮点变量
标签: python scikit-learn pycharm normalize