竞赛选题 机器学习股票大数据量化分析与预测系统 - python 竞赛选题

文章目录

  • 0 前言
  • 1 课题背景
  • 2 实现效果
    • UI界面设计
    • web预测界面
    • RSRS选股界面
  • 3 软件架构
  • 4 工具介绍
    • Flask框架
    • MySQL数据库
    • LSTM
  • 5 最后

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 机器学习股票大数据量化分析与预测系统

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

1 课题背景

基于机器学习的股票大数据量化分析系统,具有以下功能:

  • 采集保存数据;
  • 分析数据;
  • 可视化;
  • 深度学习股票预测

2 实现效果

UI界面设计

功能简述

在这里插入图片描述

日常数据获取更新

在这里插入图片描述
交易功能
在这里插入图片描述

web预测界面

  • LSTM长时间序列预测
  • RNN预测
  • 机器学习预测
  • 股票指标分析

在这里插入图片描述

预测效果如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RSRS选股界面

在这里插入图片描述

3 软件架构

整体的软件功能结构如下图

在这里插入图片描述

4 工具介绍

Flask框架

简介

Flask是一个基于Werkzeug和Jinja2的轻量级Web应用程序框架。与其他同类型框架相比,Flask的灵活性、轻便性和安全性更高,而且容易上手,它可以与MVC模式很好地结合进行开发。Flask也有强大的定制性,开发者可以依据实际需要增加相应的功能,在实现丰富的功能和扩展的同时能够保证核心功能的简单。Flask丰富的插件库能够让用户实现网站定制的个性化,从而开发出功能强大的网站。

本项目在Flask开发后端时,前端请求会遇到跨域的问题,解决该问题有修改数据类型为jsonp,采用GET方法,或者在Flask端加上响应头等方式,在此使用安装Flask-
CORS库的方式解决跨域问题。此外需要安装请求库axios。

Flask框架图

在这里插入图片描述
代码实例

from flask import Flask, render_template, jsonifyimport requestsfrom bs4 import BeautifulSoupfrom snownlp import SnowNLPimport jiebaimport numpy as npapp = Flask(__name__)app.config.from_object('config')# 中文停用词STOPWORDS = set(map(lambda x: x.strip(), open(r'./stopwords.txt', encoding='utf8').readlines()))headers = {'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",'accept-language': "en-US,en;q=0.9,zh-CN;q=0.8,zh-TW;q=0.7,zh;q=0.6",'cookie': 'll="108296"; bid=ieDyF9S_Pvo; __utma=30149280.1219785301.1576592769.1576592769.1576592769.1; __utmc=30149280; __utmz=30149280.1576592769.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _vwo_uuid_v2=DF618B52A6E9245858190AA370A98D7E4|0b4d39fcf413bf2c3e364ddad81e6a76; ct=y; dbcl2="40219042:K/CjqllYI3Y"; ck=FsDX; push_noty_num=0; push_doumail_num=0; douban-fav-remind=1; ap_v=0,6.0','host': "search.douban.com",'referer': "https://movie.douban.com/",'sec-fetch-mode': "navigate",'sec-fetch-site': "same-site",'sec-fetch-user': "?1",'upgrade-insecure-requests': "1",'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36 Edg/79.0.309.56"}login_name = None# --------------------- html render ---------------------@app.route('/')def index():return render_template('index.html')@app.route('/search')def search():return render_template('search.html')@app.route('/search/')def search2(movie_name):return render_template('search.html')

MySQL数据库

简介

MySQL是一个关系型数据库,由瑞典MySQL AB公司开发,目前已经被Oracle收购。

Mysql是一个真正的多用户、多线程的SQL数据库。其使用的SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,每个关系型数据库都可以使用MySQL是以客户机/服务器结构实现的,也就是俗称的C/S结构,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。

Python操作mysql数据库

本项目中我们需要使用python来操作mysql数据库,因此需要用到 pymysql 这个库

安装:


pip install pymysql

数据库连接实例:


# 导入pymysql
import pymysql

# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():# 连接数据库肯定需要一些参数conn = pymysql.connect(host="127.0.0.1",port=3307,database="ksh",charset="utf8",user="root",passwd="123456")if __name__ == '__main__':mysql_db()

数据库连接实例:


# 导入pymysql
import pymysql

# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():# 连接数据库肯定需要一些参数conn = pymysql.connect(host="127.0.0.1",port=3307,database="ksh",charset="utf8",user="root",passwd="123456")if __name__ == '__main__':mysql_db()

LSTM

简介

长短期记忆(Long short-term memory,
LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

LSTM结构(图右)和普通RNN的主要输入输出区别如下所示。
在这里插入图片描述
在这里插入图片描述
Torch代码实现


import torch
from sklearn.metrics import accuracy_score

#定义需要的模型结构,继承自torch.nn.Module
#必须包含__init__和forward两个功能
class mylstm(torch.nn.Module):def __init__(self, lstm_input_size, lstm_hidden_size, lstm_batch, lstm_layers):# 声明继承关系super(mylstm, self).__init__()self.lstm_input_size, self.lstm_hidden_size = lstm_input_size, lstm_hidden_sizeself.lstm_layers, self.lstm_batch = lstm_layers, lstm_batch# 定义lstm层self.lstm_layer = torch.nn.LSTM(self.lstm_input_size, self.lstm_hidden_size, num_layers=self.lstm_layers, batch_first=True)# 定义全连接层 二分类self.out = torch.nn.Linear(self.lstm_hidden_size, 2)def forward(self, x):# 激活x = torch.sigmoid(x)# LSTMx, _ = self.lstm_layer(x)# 保留最后一步的输出x = x[:, -1, :]# 全连接x = self.out(x)return xdef init_hidden(self):#初始化隐藏层参数全0return torch.zeros(self.lstm_batch, self.lstm_hidden_size)

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/97752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态内存管理函数(malloc,calloc,realloc,free)

动态内存函数 1.1malloc和free C语言提供了一个动态内存开辟的函数: void* malloc (size_t size); 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败&#…

开源大模型正在“杀死”闭源?

点击关注 文丨郝 鑫,编丨刘雨琦 “OpenAI不足为惧,开源会慢慢赶上来。” 彼时Hugging Face创始人Clem Delangue的一句预言,正在迅速成为现实。 ChatGPT横空出世7个多月后,7月19日,Llama 2宣布开源,并且可…

day25--JS进阶(递归函数,深浅拷贝,异常处理,改变this指向,防抖及节流)

目录 浅拷贝 1.拷贝对象①Object.assgin() ②展开运算符newObj {...obj}拷贝对象 2.拷贝数组 ①Array.prototype.concat() ② newArr [...arr] 深拷贝 1.通过递归实现深拷贝 2.lodash/cloneDeep实现 3.通过JSON.stringify()实现 异常处理 throw抛异常 try/catch捕获…

Linux读写锁的容易犯的问题

Linux读写锁的容易犯的问题 读写锁是互斥锁之外的另一种用于多线程之间同步的一种方式。 多线程对于一个共享变量的读操作是安全的, 而写操作是不安全的。如果在一个读很多而写很少的场景之下,那么使用互斥锁将会阻碍大量的线程安全的读操作的进行。在…

地震勘探——相关概念(一)

地震波的基本介绍 波前:波在同一时刻所到达的点所构成的面,这个面上构成的相位是相同的。波前的形状取决于传播介质的物理性质。我们可以用地震波动方程模拟波前变化(波场快照)。 射线(Ray):是…

Unity Golang教程-Shader编写一个流动的云效果

创建目录 一个友好的项目,项目目录结构是很重要的。我们先导入一个登录界面模型资源。 我们先创建Art表示是美术类的资源,资源是模型创建Model文件夹,由于是在登录界面所以创建Login文件夹,下面依次是模型对应的资源&#xff0c…

【SkyWalking】SkyWalking是如何实现跨进程传播链路数据?

文章目录 一、简介1 为什么写这篇文章2 跨进程传播协议-简介 二、协议1 Standard Header项2 Extension Header项3 Correlation Header项 三、跨进程传播协议的源码分析1 OpenTracing规范2 通过dubbo插件分析跨进程数据传播3 分析跨进程传播协议的核心源码 四、小结参考 一、简介…

C++变量默认初始化

初始化不是赋值,初始化是指创建变量时赋予一个初始值,赋值是指将变量的当前值擦除,赋予新值。 如果定义变量时没有初始化,则变量会被系统默认初始化。“默认值”取决于变量的:类型位置 startmindmap * C变量默认初始…

对于无法直接获取URL的数据爬虫

在爬学校安全教育题库的时候发现题库分页实际上执行了一段js代码,如下图所示 点击下一页时是执行了函数doPostBack,查看页面源码如下 点击下一页后这段js提交了一个表单,随后后端返回对应数据,一开始尝试分析获取对应两个参数&a…

【虚拟机】桥接模式下访问外网

目录 一、桥接模式的作用原理 二、配置桥接模式实现外网访问 1、设置 VMnet0 要桥接的网卡 2、虚拟机选择 VMnet0 网卡 3、手动配置虚拟机IP 一、桥接模式的作用原理 桥接模式相当于在当前局域网里创立了一个单独的主机,该主机桥接到宿主主机的网卡&#xff0…

细粒度特征提取和定位用于目标检测:PPCNN

1、简介 近年来,深度卷积神经网络在计算机视觉上取得了优异的性能。深度卷积神经网络以精确地分类目标信息而闻名,并采用了简单的卷积体系结构来降低图层的复杂性。基于深度卷积神经网络概念设计的VGG网络。VGGNet在对大规模图像进行分类方面取得了巨大…

uCOSIII实时操作系统 三 移植

目录 uCOSIII简介: 准备工作: 准备基础工程: UCOSIII工程源码: UCOSIII移植: 向基础工程中添加相应的文件夹 向工程中添加分组 常见问题: 下载验证: uCOSIII简介: UCOS-I…

【Nginx学习】—Nginx基本知识

【Nginx学习】—Nginx基本知识 一、什么是Nginx Nginx是一个高性能的HTTP和反向代理的web服务器,Nginx是一款轻量级的Web服务器/反向代理服务器处理高并发能力是十分强大的,并且支持热部署,启动简单,可以做到7*24不间断运行。 …

SketchyCOCO数据集进行前景图像、背景图像和全景图像的分类

SketchyCOCO数据集进行前景图像、背景图像和全景图像的分类 import os import shutildef CopyFile(src, dst, filename):if not os.path.exists(dst):os.makedirs(dst)print(create dir: dst)try:shutil.copy(src\\filename, dst\\filename)except Exception as e:print(cop…

计算机网络-计算机网络体系结构-物理层

目录 一、通信基础 通信方式 传输方式 码元 传输率 *二 准则 2.1奈氏准则(奈奎斯特定理) 2.2香农定理 三、信号的编码和调制 *数字数据->数字信号 数字数据->模拟信号 模拟数据->数字信号 模拟数据->模拟信号 *四、数据交换方式 电路交换 报文交换…

kafka客户端应用参数详解

一、基本客户端收发消息 Kafka提供了非常简单的客户端API。只需要引入一个Maven依赖即可&#xff1a; <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.13</artifactId><version>3.4.0</version></depend…

力扣 -- 516. 最长回文子序列

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {int ns.size();vector<vector<int>> dp(n,vector<int>(n));//记得从下往上填表for(int in-1;i>0;i--){//记得i是小于等于j的for(int ji;j&l…

山体滑坡监测系统——高效、便捷的新选择

在当今社会&#xff0c;科技的进步为我们的生活和工作带来了诸多便利。而在山体滑坡监测领域&#xff0c;全球导航卫星系统&#xff08;GNSS&#xff09;的引入更是增加了数据监测的高效性和便捷性。 一、山体滑坡监测系统的基本原理 山体滑坡监测系统是由监控平台和GNSS位移…

2.6 宽带接入技术

思维导图&#xff1a; 前言&#xff1a; 我的理解&#xff1a; 1. **早期互联网接入技术的局限性**&#xff1a; - 作者首先回顾了早期用户通过电话线和调制解调器连接到互联网服务提供商&#xff08;ISP&#xff09;的方式&#xff0c;指出这种方式的速度上限是56 kbit/…

UE5.1编辑器拓展【三、脚本化资产行为,删除无引用资产】

目录 需要考虑的问题 重定向的修复函数 代码&#xff1a; 删除无引用资产 代码 需要添加的头文件和模块 在我们删除资产的时候&#xff0c;会发现&#xff0c;有些资产在删除的时候会出现有被什么什么引用&#xff0c;还有的是没有被引用。 而我们如果直接选择一片去进行…