В этой статье показано, как построить алгоритм, который может предсказать будущую цену акции с помощью метода линейной регрессии.

Отказ от ответственности: это не рекомендация о том, какие акции вы должны покупать или продавать. Это статья, которая поможет вам в исследованиях в области науки о данных и проектов машинного обучения.

Линейная регрессия чаще всего используется для прогнозирования цен, заработной платы, продаж, возраста, продукта и других непрерывных/фактических числовых переменных.

Линейная регрессия — это линейная связь между зависимой переменной (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_

Для этой статьи это все, что у меня есть. Однако я ожидаю, что эта работа поможет вам немного лучше понять линейную регрессию и машинное обучение.