В этой статье показано, как построить алгоритм, который может предсказать будущую цену акции с помощью метода линейной регрессии.
Отказ от ответственности: это не рекомендация о том, какие акции вы должны покупать или продавать. Это статья, которая поможет вам в исследованиях в области науки о данных и проектов машинного обучения.
Линейная регрессия чаще всего используется для прогнозирования цен, заработной платы, продаж, возраста, продукта и других непрерывных/фактических числовых переменных.
Линейная регрессия — это линейная связь между зависимой переменной (y) и одной или несколькими независимыми переменными. Этот метод показывает, что линия наиболее адаптируется ко всем точкам, обеспечивая связь между переменными.
Прежде чем мы перейдем непосредственно к коду, позвольте мне рассказать вам о Лохасе Реннере. Это компания по производству одежды, их главная цель - продавать наибольшее количество одежды в год, у них много магазинов по всей Бразилии, и в то же время у них есть финансовая структура для клиентов, которые хотят или нуждаются в покупке одежды. на данный момент, но нет пути.
Чтобы построить алгоритм машинного обучения, сначала мне пришлось импортировать основные библиотеки библиотек, такие как Pandas, NumPy и Matplotlib, и вызвать библиотеку Sklearn, чтобы импортировать линейную регрессию и метрику оценки R2. Все эти библиотеки необходимы для создания кода.
Библиотека Pandas помогает импортировать файлы, читать и использовать другие необходимые инструменты EDA.
Numpy работает с массивами. Он также имеет функции для работы в области линейной алгебры, преобразования Фурье и матриц.
Matplotlib — это обширная библиотека для создания статических, анимированных и интерактивных визуализаций на Python.
И последнее, но не менее важное: библиотека Sklearn предоставляет эффективные инструменты для машинного обучения и статистического моделирования, включая классификацию, регрессию, кластеризацию и уменьшение размерности.
Данные, которые я использовал, были на веб-странице Yahoo Finance — это бразильская версия.
Чтобы увидеть весь код, вы можете нажать здесь, и вы сможете проверить все шаги. Теперь необходимо проверить DataFrame и посмотреть, имеет ли смысл использовать файл. Я использовал команды df.head() и df.tail(), которые позволяют увидеть первые пять строк набора данных и последние пять строк.
После проверки был создан новый столбец, и значения этого нового столбца были длиной собственного фрейма данных. Этот шаг помогает построить линию для метода линейной регрессии.
Как было написано ранее в этой статье, линейная регрессия работает с надежной переменной (y). Здесь эта переменная y представляет собой столбец «Закрыть», этот столбец представляет цену закрытия акции на каждый день.
y = df2[CLOSE].values
lin_model = LinearRegression().fit()
Чтобы продолжить линейную регрессию, необходимо рассчитать точку пересечения и наклон линии, как показано ниже:
print("Intercept:",lin_model.intercept_)
print("Slope:",lin_model.coef_)
y = m.x + b
Который:
m = наклон линии
б = перехват
Чтобы понять работу, я подготавливаю данные для визуализации, что и делаю. Я пошел по следующим путям.
#creat the variable y_pred to store the results of the price predicted
y_pred = lin_model.coef_*X + lin_model.intercept_
Со значениями, сохраненными в переменной y_pred, теперь пришло время сохранить все эти значения в массиве в DataFrame и построить диаграмму, как показано ниже:
df2["Pred"]= y_pred
# Plot the data
fig, ax = plt.subplots(figsize =(9,6), dpi = 72)
df2["Pred"].plot()
df2["Close"].plot()
plt.title("Close Price History)
plt.show()
Как показано на диаграмме, красная линия представляет собой столбец цен закрытия, а синяя линия — линейную регрессию, и чтобы узнать, работает ли алгоритм, мы должны применить некоторые меры. Для этого конкретного случая я использовал r2_score(), который представляет собой показатель, оценивающий производительность алгоритма машинного обучения на основе регрессии.
#how good is the model?
r2_score(df2["Close"],df2["Pred"]
Если бы вы заглянули на мою страницу GitHub, вы могли бы убедиться, что производительность для прогнозирования следующей цены была надежной, и в то же время возможная следующая стоимость акции, поэтому позвольте мне показать вам, как мы можем рассчитать ожидаемую следующую цену. цена:
#Show the possible future price according to the model
lin_model.coef_*len(df2)+1+lin_model.intercept_
Для этой статьи это все, что у меня есть. Однако я ожидаю, что эта работа поможет вам немного лучше понять линейную регрессию и машинное обучение.