Я, по крайней мере, предполагаю, что что-то напортачило ... вот что происходит.Я делаю модели ML для валютных пар на валютном рынке.Я делаю одну модель для каждой пары, которую я смотрю.Итак, у меня есть 8 моделей.
Я делаю следующее:
1.) Создаю модель на основе данных из файла CSV для каждой пары.примерно так:
namelist = ['usdcad', 'eurjpy', 'usdjpy', 'gbpjpy', 'audusd', 'usdchf', 'nzdusd', 'gbpusd', 'eurusd']
for filename in namelist:
with open(filename+"/all.csv",'r') as dest_f:
data_iter = csv.reader(dest_f,
delimiter = ",",
quotechar = '"')
data = [data for data in data_iter]
##do some stuff to organize the data
model50 = linear_model.LinearRegression()
model50.fit(X, Y50)
afile = open(r''+filename+'.pkl', 'wb')
pickle.dump(model50, afile)
afile.close()
Затем в другом файле я загружаю данные в реальном времени, которые я использую в качестве входных данных для моей модели, я сохраняю эти данные в csvs
namelist = ['USDCAD', 'EURJPY', 'USDJPY', 'GBPJPY', 'AUDUSD', 'USDCHF', 'USDCAD', 'NZDUSD', 'GBPUSD', 'EURUSD']
for name in namelist:
CSV_URL = 'REMOVED BECAUSE IT HAS MY KEY'+name
with requests.Session() as s:
download = s.get(CSV_URL)
decoded_content = download.content.decode('utf-8')
cr = csv.reader(decoded_content.splitlines(), delimiter=',')
my_list = list(cr)
del my_list[:18]
del my_list[-1]
with open(name+".csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(my_list)
Затем, наконец,Я запускаю все свои прогнозы сразу:
namelist = ['USDCAD', 'EURJPY', 'USDJPY', 'GBPJPY', 'AUDUSD', 'USDCHF', 'USDCAD', 'NZDUSD', 'GBPUSD', 'EURUSD']
for name in namelist:
with open(name+".csv",'r') as dest_f:
data_iter = csv.reader(dest_f,
delimiter = ",",
quotechar = '"')
res = [data for data in data_iter]
res = [[x[3],x[4],x[5],x[6]] for x in res]
input = np.zeros((1,len(res)*4))
indx = 0
while 1:
for row in res:
for col in row:
input[0,indx] = float(col)
indx += 1
break
pname = name.lower()
file = open(r''+pname+'.pkl', 'rb')
mymodel = pickle.load(file)
file.close()
prediction = mymodel.predict(input)
извините за любые небольшие ошибки форматирования, я все еще довольно плохо использую этот сайт должным образом.
в любом случае, так что на самом деле здесь происходит то, чтодва моих прогноза верны, ясно, что модель работает правильно.остальные 6 прогнозов не имеют никакого смысла.Как будто он пытается использовать одну из других моделей, но этого не должно быть ... Или как неправильная модель запечатлена в имени файла.Я изучил входные данные, файлы, они все правильные.Кроме того, используя те же самые файлы CSV, я использовал те же самые методы, чтобы сделать модель и предсказать JUST usdcad, и это прекрасно работает!Но предсказание usdcad совершенно неверно, когда я использую приведенные ниже сценарии.
Кто-нибудь знает, что здесь происходит не так?Я не могу понять это.Спасибо.
** БЫСТРОЕ РЕДАКТИРОВАНИЕ: Я подтвердил, что проблема в том, что это с маринованными моделями.Это перезаписывает их или сохраняет старые объекты модели в памяти или что-то в этом роде ...
EDIT2: Я обнаружил дополнительную информацию: если я протравлю свою модель, а затем загрузлю ее, а затем использую - все в том же духесценарий, то работает нормально.Если я выбираю свою модель, а затем загружаю ее в другой сценарий (используя тот же код), он работает неправильно.Это тот случай, даже когда я делаю только одну модель.