【股票价格走势预测】数据挖掘实验一

I、项目任务要求

  • 任务描述:由于直接的经济利益,股票价格预测一直吸引着有兴趣投资股票市场和股票交易所的人。它也是金融界的一个重要研究课题。然而股票市场收益预测是一个非常复杂的问题,取决于公司财务状况和国家政策等诸多因素。
  • 主要任务要求如下:
    • 可选用爬虫工具或其它方法制作数据集 使用Quandl模块,引用其平台数据
    • 建立股票价格趋势预测模型(线性回归、支持向量机回归、决策树)
    • 以预测精度来评估预测模型的拟合能力
    • 结果分析
  • 参考资料网站:基于线性回归的股票预测(scikit-learn)

II、数据集描述(10)

数据集包含两支股票(GOOGL、AAPL)的历史股价数据,其中特征属性包括:

  • ‘Adj. Open’: 股票的开盘价格,经过调整后的价格。
  • ‘Adj. High’: 股票的最高价格,经过调整后的价格。
  • ‘Adj. Low’: 股票的最低价格,经过调整后的价格。
  • ‘Adj. Close’: 股票的收盘价格,经过调整后的价格。
  • ‘Adj. Volume’: 股票的交易量,经过调整后的交易量。
  • ‘Ex-Dividend’: 不带股息(忽略)
  • 补充数据(构造新数列):
    • ‘HL_PCT’: 最高价和收盘价之间的百分比变化
    • ‘PCT_change’: 开盘价和收盘价之间的百分比变化
    • ‘label’: 待预测的股票价格,是 ‘Adj. Close’ 列向前移动了一定百分比行数的结果。

在这里插入图片描述
数据集中的记录数取决于获取的历史数据的时间段,每一行代表一天的数据。


III、主要算法原理及模型评价方法陈述(15分)

项目中涉及的主要算法是线性回归(Linear Regression)和支持向量机回归(Support Vector Machine Regression,SVM Regression)。
以下是算法原理的简要描述:

线性回归

  • 线性回归是一种监督学习算法,用于建立输入特征和输出目标之间的线性关系模型。在这个项目中,线性回归用于训练模型来预测股票的价格('label’列),使用历史股价和交易量等特征作为输入。
  • 线性回归模型寻找一条最佳拟合直线,使得预测值与实际值之间的平方误差最小化。

支持向量机回归

  • 支持向量机回归是一种监督学习算法,用于建立输入特征和输出目标之间的非线性关系模型。
  • 本项目中,SVM回归也可以用于预测股票价格。它通过将输入数据映射到高维空间,找到一个最佳的超平面,以最小化预测误差。

决策树

决策树模型是一种用于分类和回归任务的机器学习模型,它模仿了人类在面对决策问题时的思维方式,通过一系列的决策规则来进行预测和分类。决策树模型是一种可解释性强的模型,通常用于以下两种情况:

  • 分类问题:决策树可以用于将数据样本划分到不同的类别中。在分类问题中,每个叶子节点代表一个类别,而每个非叶子节点代表一个特征或属性上的决策规则。数据样本从根节点开始,依次按照规则向下移动,最终到达一个叶子节点,从而确定其所属的类别。
  • 回归问题:除了用于分类,决策树也可以用于回归任务,即预测连续数值的输出。在这种情况下,每个叶子节点仍然代表一个数值,但是非叶子节点的决策规则会将数据样本分配到不同的子节点,最终产生一个回归值。

决策树的构建过程通常分为以下几个步骤:

  • 特征选择:选择最佳的特征来作为每个非叶子节点的决策规则。通常使用不同的评估指标(如信息增益、基尼不纯度等)来确定哪个特征最适合用于分割数据。
  • 数据分割:根据选定的特征,将数据集划分为不同的子集。每个子集对应于不同的特征取值或范围。
  • 递归构建:对每个子集递归地应用上述步骤,构建子树,直到达到停止条件。停止条件可以是达到最大深度、样本数不足或其他预定义条件。
  • 叶子节点标记:为每个叶子节点分配一个类别(分类问题)或一个数值(回归问题)。
  • 剪枝(可选):决策树可能会过度拟合训练数据,为了提高泛化能力,可以对树进行剪枝,即删除一些分支。

决策树模型的优点包括易于理解和解释、对缺失值不敏感、能够处理数值和分类特征、适用于大规模数据等。然而,它也容易过拟合训练数据,因此通常需要采用剪枝等技术来改进模型的泛化性能。决策树模型的一种常见变体是随机森林,它通过组合多个决策树来提高性能和稳定性。

模型评价方法

在项目中,使用了以下模型评价方法来评估模型性能:

  • 训练集和测试集拆分:数据集被分成训练集和测试集,以便评估模型的泛化性能。
  • R-squared(R²):用于衡量模型对实际数据的拟合程度,值范围在0到1之间,越接近1表示拟合越好。
  • 可视化分析:通过绘制股票价格和预测结果的图表来可视化分析模型的表现。

IV、代码实现(45分)

import quandl
from sklearn import preprocessing
import math
import numpy as np

from sklearn import model_selection, svm
from sklearn.linear_model import LinearRegression

import matplotlib.pyplot as plt
from matplotlib import style
import datetime

from sklearn.tree import DecisionTreeRegressor

# Todo: 获取股票数据GOOGL、AAPL
# df = quandl.get('WIKI/GOOGL')
df = quandl.get('WIKI/AAPL'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值