Исследование данных с помощью разведочного анализа
Для начала давайте изучим данные. Прежде чем приступать к любому проекту по машинному обучению, необходимо провести разведочный анализ данных (EDA), чтобы хорошо в них разобраться. Это включает:
- графики исходных данных
- гистограммы
- и многое другое…
Как правило, стоит начинать с графиков исходных данных и гистограмм — они помогают понять распределение данных. Если распределение нормальное, можно применять параметрические методы статистики.
Для вас уже загружены данные по двум акциям в виде DataFrame библиотеки pandas: lng_df и spy_df (LNG и SPY). Ознакомьтесь с ними с помощью .head(). В качестве входных данных для алгоритмов машинного обучения мы будем использовать цены закрытия, а в дальнейшем — и объём торгов.
Примечание: каждый раз, когда нужно построить новый график, вызывайте plt.clf() или f = plt.figure().
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Выведите первые 5 строк обоих DataFrame (
lng_dfиspy_df) и изучите их содержимое. - С помощью библиотеки pandas постройте графики временных рядов исходных данных для
'SPY'и'LNG', используя скорректированную цену закрытия ('Adj_Close') — задайте параметрlegend=Trueв.plot(). - Используйте
plt.show(), чтобы отобразить график временного ряда (matplotlib.pyplotуже импортирован какplt). - С помощью pandas и matplotlib постройте гистограмму однодневного процентного изменения скорректированной цены закрытия (используйте
.pct_change()) для SPY и LNG.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
print(lng_df.head()) # examine the DataFrames
print(____) # examine the SPY DataFrame
# Plot the Adj_Close columns for SPY and LNG
spy_df[____].plot(label='SPY', legend=True)
lng_df[____].plot(label=____, ____, secondary_y=True)
____ # show the plot
plt.clf() # clear the plot space
# Histogram of the daily price change percent of Adj_Close for LNG
lng_df['Adj_Close'].____.plot.hist(bins=50)
plt.xlabel('adjusted close 1-day percent change')
plt.show()