Прогнозирование будущих значений с помощью функции PolynomialRegrade sklearn.preprocessing ⇐ Python
Прогнозирование будущих значений с помощью функции PolynomialRegrade sklearn.preprocessing
Я работаю над очень простым анализатором акций, который получает информацию об акциях от yfinance и использует полиномиальную регрессию для получения прогноза для всех текущих/прошлых данных, которые я в него помещаю. Как мне получить информацию из строки (например, print(f"прогноз завтрашнего дня: {model.predict(future_point_in_time)}") и заставить ее вывести прогнозируемый результат для указанной точки будущего? Или, если это невозможно, есть ли способ получить уравнение линии, чтобы я мог использовать его для прогнозирования своей линии?
Вот мой полный код, извините, он беспорядочный
импортировать yfinance как yf импортировать систему импортировать numpy как np из sklearn.linear_model импорт LinearReгрессия из sklearn.preprocessing импорт PolynomialFeatures att = yf.Ticker("T") # получить всю информацию об акциях att_info = att.info исторические_рыночные_данные = [] # получить исторические рыночные данные история = att.history(период="1мес") дней = 0 для меня в диапазоне (len(hist)): дней += 1 Historical_market_data.append([hist.High.iloc, hist.Low.iloc, hist.Open.iloc, hist.Close.iloc, hist.Volume.iloc, hist.Dividends.iloc, дней]) ''' Пункт 0: Максимум дня. Пункт 1: Минимум дня Пункт 2: Цена при открытии Пункт 3: Цена при закрытии сделки Пункт 4: Объем Пункт 5: Дивиденды Пункт 6: День ''' строка1 = [] строка2 = [] строка3 = [] строка4 = [] строка5 = [] строка6 = [] дни = [] среднее значение = [] для меня в Historical_market_data: line1.append(я[0]) line2.append(я[1]) avgs.append((i[0] + i[1])/2) line3.append(я[2]) line4.append(я[3]) line5.append(я[4]) line6.append(я[5]) дни.добавление(я[6]) импортировать matplotlib.pyplot как plt #данные в конце списков отрывочны, поэтому их необходимо удалить дель строка1[-1] дель строка2[-1] дельта строки3[-1] дель строка4[-1] дельта строки5[-1] дельта строки6[-1] число дней[-1] plt.plot(дни, строка1) plt.plot(дни, строка2) plt.plot(дни, строка3) plt.plot(дни, строка4) plt.legend(labels=['Высокий', 'Низкий', 'Открыть', 'Закрыть', 'Прогнозируемый']) x = np.array(days).reshape(-1, 1) y = np.array(line1) x_ = PolynomialFeatures(степень=7, include_bias=True).fit_transform(x) печать(x_) модель = ЛинейнаяРегрессия().fit(x_, y) r_sq = model.score(x_, y) print(f"коэффициент детерминации: {r_sq}") y_pred = model.predict(x_) для меня в диапазоне (len(line1)): проходить plt.plot(days, y_pred, label = 'Прогноз') print(f"Прогноз на завтрашний день: {model.predict(days[-1] + 1)}") plt.legend() plt.show()
Я работаю над очень простым анализатором акций, который получает информацию об акциях от yfinance и использует полиномиальную регрессию для получения прогноза для всех текущих/прошлых данных, которые я в него помещаю. Как мне получить информацию из строки (например, print(f"прогноз завтрашнего дня: {model.predict(future_point_in_time)}") и заставить ее вывести прогнозируемый результат для указанной точки будущего? Или, если это невозможно, есть ли способ получить уравнение линии, чтобы я мог использовать его для прогнозирования своей линии?
Вот мой полный код, извините, он беспорядочный
импортировать yfinance как yf импортировать систему импортировать numpy как np из sklearn.linear_model импорт LinearReгрессия из sklearn.preprocessing импорт PolynomialFeatures att = yf.Ticker("T") # получить всю информацию об акциях att_info = att.info исторические_рыночные_данные = [] # получить исторические рыночные данные история = att.history(период="1мес") дней = 0 для меня в диапазоне (len(hist)): дней += 1 Historical_market_data.append([hist.High.iloc, hist.Low.iloc, hist.Open.iloc, hist.Close.iloc, hist.Volume.iloc, hist.Dividends.iloc, дней]) ''' Пункт 0: Максимум дня. Пункт 1: Минимум дня Пункт 2: Цена при открытии Пункт 3: Цена при закрытии сделки Пункт 4: Объем Пункт 5: Дивиденды Пункт 6: День ''' строка1 = [] строка2 = [] строка3 = [] строка4 = [] строка5 = [] строка6 = [] дни = [] среднее значение = [] для меня в Historical_market_data: line1.append(я[0]) line2.append(я[1]) avgs.append((i[0] + i[1])/2) line3.append(я[2]) line4.append(я[3]) line5.append(я[4]) line6.append(я[5]) дни.добавление(я[6]) импортировать matplotlib.pyplot как plt #данные в конце списков отрывочны, поэтому их необходимо удалить дель строка1[-1] дель строка2[-1] дельта строки3[-1] дель строка4[-1] дельта строки5[-1] дельта строки6[-1] число дней[-1] plt.plot(дни, строка1) plt.plot(дни, строка2) plt.plot(дни, строка3) plt.plot(дни, строка4) plt.legend(labels=['Высокий', 'Низкий', 'Открыть', 'Закрыть', 'Прогнозируемый']) x = np.array(days).reshape(-1, 1) y = np.array(line1) x_ = PolynomialFeatures(степень=7, include_bias=True).fit_transform(x) печать(x_) модель = ЛинейнаяРегрессия().fit(x_, y) r_sq = model.score(x_, y) print(f"коэффициент детерминации: {r_sq}") y_pred = model.predict(x_) для меня в диапазоне (len(line1)): проходить plt.plot(days, y_pred, label = 'Прогноз') print(f"Прогноз на завтрашний день: {model.predict(days[-1] + 1)}") plt.legend() plt.show()
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ModuleNotFoundError: нет модуля с именем «sklearn.preprocessing._data»
Anonymous » » в форуме Python - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-