美文网首页深度学习
2020 金融分析—线性回归和决策树

2020 金融分析—线性回归和决策树

作者: zidea | 来源:发表于2020-06-21 19:51 被阅读0次
cover

引入依赖

import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

import pandas_datareader as web

plt.style.use('bmh')
  • numpy 是数据统计和机器学习中都少不了 numpy
  • pandas 是我们加载数据和处理数据好帮手
  • matplotlib 数据可视化的工具,绘制各种线图、柱状图和饼图
  • sklearn 提供的 DecisionTreeRegressor 和 LinearRegression 决策树和线性回归模型

准备数据

df = web.DataReader("AAPL",data_source='yahoo',start='2012-01-01',end='2019,12,12')
df.head()

读取 AAPL (苹果的股价) 评估的股票数据,给出一个时间段是我们要研究的几年的数据。


plt.figure(figsize=(16,8))
plt.title("Apple")
plt.xlabel("Days")
plt.ylabel('Close price USD($)')
plt.plot(df['Close'])
plt.show()
Apple 股市走势

我们将 Apple 近几年的股价波动以图形式显示出来,我们之前在时序问题中已经了解到无论时序多么多变我们都可以将其进行因素分解分解为

  • 趋势图
  • 季节性
  • 循环性
  • 随机性
    我们今天要用回归模型对 Apple 股价进行预测,
df = df[['Close']]
df.head()

我们只关心 Close(收盘)这列数据,所以仅保留 Close 这列数据。

future_days = 25
df['Prediction'] = df[['Close']].shift(-future_days)

然后调用 shift 将 Close 数据向上移动 future_days 位置,这样在数据末尾就留出 future_days 个空位,用 NaN 进行站位的数据。

X = np.array(df.drop(['Prediction'],1))[:-future_days]

接下来工作就是,提取标签和数据,然后将数据进行分离为训练数据集和测试数据集。

y = np.array(df['Prediction'])[:-future_days]
x_train,x_test,y_train,y_test = train_test_split(X,y,test_size=0.25)

创建模型,这里创建树预测模型和线性回归模型

tree = DecisionTreeRegressor().fit(x_train,y_train)
lr = LinearRegression().fit(x_train,y_train)
x_future = df.drop(['Prediction'],1)[:-future_days]
x_future = x_future.tail(future_days)
x_future = np.array(x_future)
tree_prediction = tree.predict(x_future)
lr_prediction = lr.predict(x_future)
predictions = tree_prediction
valid = df[X.shape[0]:]

valid['Prediction'] = predictions
plt.figure(figsize=(16,8))
print(valid)
plt.title('Model')
plt.xlabel('Days')
plt.ylabel('Close Price USD($)')
plt.plot(df['Close'])
plt.plot(valid[['Close','Prediction']])
plt.legend(['Orig','Val','Pred'])

通过对 predictions 进行给 lr_prediction 或 tree_prediction 不同值来观察预测效果。

相关文章

  • 2020 金融分析—线性回归和决策树

    引入依赖 numpy 是数据统计和机器学习中都少不了 numpy pandas 是我们加载数据和处理数据好帮手 m...

  • python logistic回归

    常用的分类与预测算法 回归分析 决策树 人工神经网络 贝叶斯网络 支持向量机 其中回归分析包括: 线性回归---自...

  • 2020-08-22阅读十分钟收获(坚持第017天)总结中级经济

    中级经济基础第26章回归分析 回归分析与相关分析的区别和联系 回归分析分类为,线性回归和非线性回归 一元回归和多元...

  • Python建模复习:预测型数据挖掘

    第四部分 预测性数据挖掘模型 回归问题:多元线性回归、多元非线性回归、广义线性回归、神经网络 分类问题:决策树、逻...

  • 数据挖掘与数据化运营实战

    笔记 一. 常用算法 分类:聚类、决策树、罗辑回归、支持向量机 预测:决策树、罗辑回归、线性回归、神经网络、朴素贝...

  • (16)多重线性回归分析

    一、多重线性回归分析简介 简单线性回归分析:自变量X =1 个 多重线性回归分析:自变量X >=2 个 多元线性回...

  • 待学清单

    算法原理 回归模型(线性+逻辑) 固定、随机、混合效应模型 时间序列分析 决策树与随机森林 判断差异的方法:t检验...

  • 机器学习入门(十一):决策树——既能分类又能回归的模型

    决策树 前面我们讲了线性回归和朴素贝叶斯分类模型。前者只能做回归,后者只能做分类。但本文中要讲的决策树模型,却既可...

  • 2018.12.23

    初步学习一些算法的理论和推导,详细的数学有些略微跳过。线性回归,逻辑回归,回归里面的梯度下降方法决策树,随机森林,...

  • 机器学习算法开始页

    接下来总结机器学习算法: 线性回归 逻辑回归 决策树 K近邻 SVM 组合方法:Boosting,Bagging,...

网友评论

    本文标题:2020 金融分析—线性回归和决策树

    本文链接:https://www.haomeiwen.com/subject/nhgaxktx.html