Тестовый кадр данных поезда для нескольких столбцов

у меня есть csv-файл

Date,Open,High,Low,Close,Adj Close,Volume,Cash EPS,Book Value,Div/share,Net profit/share,NPM,ROE,ROCE,ROA,DEBT/EQ,ATR,CR
2004-04-26,82.924217,82.924217,82.924217,82.924217,60.026066,0,221.24,488.21,129.5,186.6,26.11,38.22,38.22,24.2,0,92.67,1.65
2004-04-27,82.778122,82.778122,79.765625,80.24453,58.086323,28616000,221.24,488.21,129.5,186.6,26.11,38.22,38.22,24.2,0,92.67,1.65

Даю только 2 строки для удобства вычислений. Я создал фрейм данных

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import MinMaxScaler

dataframe1 = pd.read_csv('test.csv')
df = dataframe1.dropna()
scaler=MinMaxScaler(feature_range=(0,1))
df1=scaler.fit_transform(np.array(df1).reshape(-1,1))
min_max_scaler = MinMaxScaler()
df[["Open", "High", "Low", "Close", "Adj Close", "Volume", "Book Value", "Div/share", "Net profit/share", "NPM", "ROE", "ROCE", "ROA", "DEBT/EQ", "ATR", "CR"]] = min_max_scaler.fit_transform(df[["Open", "High", "Low", "Close", "Adj Close", "Volume", "Book Value", "Div/share", "Net profit/share", "NPM", "ROE", "ROCE", "ROA", "DEBT/EQ", "ATR", "CR"]])

Чтобы обучить набор данных, мне нужна дата, а также прогноз, т.е. закрыть столбец. Но значение столбца Close зависит от нескольких столбцов (т.е. всех столбцов, присутствующих в этом csv)

Как я могу обучить данные для столбцов даты и закрытия, но на основе всех других столбцов, чтобы можно было прогнозировать будущее закрытие?


person sam    schedule 26.04.2021    source источник
comment
Вы ищете рекомендацию по алгоритму машинного обучения?   -  person vcucu    schedule 26.04.2021
comment
Непонятно, что вы пытаетесь сделать. Насколько я понимаю, вы пытаетесь предсказать закрытие даты T + 1 на основе существующих столбцов? Вы спрашиваете, как это настроить или как сделать прогноз?   -  person Troy D    schedule 26.04.2021
comment
@TroyD Для обучения данных нам нужны 2 столбца (дата и закрытие), но эти значения основаны на других факторах (другие все упомянутые столбцы). Как мы можем обучить данные для закрытия, используя другие столбцы для дат?   -  person sam    schedule 26.04.2021
comment
@vcucu: основная проблема - обучение на основе нескольких столбцов   -  person sam    schedule 26.04.2021
comment
Мне не кажется, что добавление нескольких входных переменных должно быть проблемой, но это зависит от того, какой алгоритм вы хотите использовать для прогноза - существует множество различных подходов регрессии/временных рядов, которые вы можете применить. Наиболее распространенные из них позволяют добавлять несколько числовых столбцов для обучения.   -  person vcucu    schedule 26.04.2021
comment
@vcucu: не могли бы вы показать пример любого алгоритма машинного обучения, который использует подход временных рядов для добавления нескольких столбцов для обучения данных?   -  person sam    schedule 26.04.2021
comment
Если вы ищете пример модели машинного обучения, которая делает прогнозы временных рядов, модели долговременной памяти могут быть тем, что вам нужно: machinelearningmastery.com/   -  person Troy D    schedule 26.04.2021
comment
От простой линейной регрессии до нейронных сетей LSTM, связанных @TroyD. Или ARIMA/SARIMAX из статистических моделей также допускают экзогенные переменные.   -  person vcucu    schedule 26.04.2021


Ответы (1)


Насколько я понимаю вопрос, вы ищете многовариантную модель временного ряда. Другими словами, для каждого временного шага требуется несколько переменных входных данных, чтобы делать прогнозы на будущее. Вот ссылка на некоторые примеры:

https://www.relataly.com/stock-market-prediction-with-multivariate-time-series-in-python/1815/

Кроме того, я бы посоветовал изучить конкурс предсказаний фондового рынка Kaggle, там есть сотни примеров того, как люди подходят к этой проблеме.

https://www.kaggle.com/c/two-sigma-financial-news

person Troy D    schedule 26.04.2021
comment
Большое спасибо! - person sam; 26.04.2021