Машинное обучение
Введение/Обзор
Многочисленные люди пытались предсказать акции, и многие из них добились успеха. Однако все они начинаются с одного вопроса: «Как вы это делаете?» Позвольте мне объяснить, как я это сделал.
Я нашел набор данных, отображающий курс акций Apple за 40 лет (1980–2023 гг.). С помощью этих данных мне было любопытно, смогу ли я предсказать цену акций Apple на следующий день. Приведя это в действие, я решил использовать логистическую регрессию, чтобы предсказать эту цену. Благодаря обучению и тестированию предоставленных данных мои результаты привели меня к точности около 70%.
Источники и статистика
Сначала я импортировал это:
import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression import matplotlib.pyplot as plt
Затем компьютер считывал и печатал данные.
data = pd.read_csv(’./AAPL_withPrediction.csv’) print(data) data.describe()
В приведенной выше таблице показаны первые несколько строк данных.
В дополнение к другим столбцам я создал отдельный столбец «Прогноз» и писал -1 или +1, если цена пошла вниз или вверх по сравнению с предыдущим днем. Затем я включил этот столбец в свой обучающий набор, чтобы он мог узнать, что при тех или иных обстоятельствах цена будет увеличиваться или уменьшаться.
Обучение и тестирование
В моем общем наборе данных были строки от 0 до 10000, но я использовал только строки 7000–9000, потому что на графике выше видно, что строки 0–7000 представляют собой плоскую линию, поэтому было бы спорно помещать ее в мой тренировочный набор. Строки 7000–9000 будут моими обучающими 80%, а 9000–10000 — моими проверочными 20%.
Код:
train_data = data[7000:9000]
Код:
test_data = data[9000:10000]
Код
x_train_p = train_data[[’Open’,’High’,’Low’,’Close’,’Adj Close’,’ Volume’]] y_train = train_data[’Prediction’] # Scale data : Normalize scaler = StandardScaler() x_train = scaler.fit_transform(x_train_p) # Regression model = LogisticRegression() model.fit(x_train,y_train) # Test the model x_test_p = test_data[[’Open’,’High’,’Low’,’Close’,’Adj Close’,’ Volume’]] y_test = test_data[’Prediction’] x_test = scaler.fit_transform(x_test_p) predictions = model.predict(x_test) print(predictions)
Мне пришлось нормализовать свои данные, потому что их шкалы были не в одном масштабе, например, цена закрытия и объем. Цена закрытия в 1980-х, например, составляла 0,12 доллара, и в тот день Apple продала (в объеме) 469033600 акций. Это непристойное несоответствие между этими двумя, поэтому я нормализовал числа, чтобы они могли быть на одном уровне друг с другом.
Затем логистическая регрессия использовалась при обучении данных 7000–9000 с целью увидеть, может ли она предсказать рост или снижение цены акций на следующий день, а затем я проверил ее на данных 9000–10000.
Результат прогноза
После тестирования 9000–10000 результаты показали точность прогноза 72%.
На графике отображается мой прогноз (красный) и фактический результат на следующий день в зависимости от того, увеличился он или нет (синий). Как видите, моя программа правильно предсказала, выросла или упала цена акции.
Заключение
Узнав о Python, он помог мне объединить мои знания и скомпилировать их вместе, чтобы создать работающий алгоритм, который может прогнозировать цену акций Apple на следующий день. Есть много и более эффективных способов предсказать цену акций, и я надеюсь узнать больше об этих многочисленных способах.