IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于PSO_FLNN预测股票周收益 -> 正文阅读

[人工智能]基于PSO_FLNN预测股票周收益

1、简介

? ?背景:针对均值-方差模型的局限性,利用启发式函数链神经网络预测得到的收益率替代历史数据。
? ?工作原理:构建PSO_FLNN预测模型,PSO算法用来优化FLNN中个体的权重参数,FLNN用来对输入的个体预测其对应的周收益值。

2、具体预测过程

(1)FLNN函数链神经网络
? ?它是单层神经网络,通过非线性函数(如切比雪夫函数)对特征进行拓展,输入后,经过加权求和,通过relu激活函数得到输出值。结构简单,计算负担小,效果好,比MLP计算复杂度更小。
(2)启发式FLNN股票周收益预测步骤
? ?预测周收益的步骤:样本特征拓展;训练模型,得到最优粒子;在测试集上进行验证。
? ?切比雪夫递归拓展特征:特征维度D为拓展为5D维。
? ?PSO优化FLNN的权重参数:种群中的粒子围绕搜索空间移动以寻找最佳位置。得到各个粒子对应的适应度值,即均方误差值,选择其中均方误差最小的粒子作为最佳粒子,下次迭代前,根据该最佳粒子对种群粒子速度和权重值(即位置)进行更新。经过k次迭代后,比较出得到最佳粒子。(粒子在PSO种群中的位置由5D个随机权重组成,每个随机权重值位于0和1之间)
? ?如何预测:最佳粒子就是该样本对应的权重参数向量。在测试集上进行测试。结果满意的话,便可以利用该模型预测该股票的周收益。预测哪周,则将该周的特征值求出后,与参数加权求和后输入relu函数max(0,wx+b),得到预测值。
(3)如何进行超参数调优
? ?哪些参数
? ?惯性因子w(0.4-0.9之间,调整全局和局部搜索,为非负,大的话全局强,小局部强,一般采用动态w比如说线性递减权值,),
? ?学习因子c1,c2(0~4之间,通常为2,代表粒子向自身极值pbest和全局极值gbest推进的加速权值。),
? ?群体规模N(100或,200),
? ?最大迭代次数100-200,
? ?最大速度Vmax。
? ?调优方法
? ?交叉验证参数选择:各个参数确定变化的步长,然后使用网格法交叉验证参数选择。最后确定w=0.725,学习因子为2,最大速度Vmax决定粒子每一次的最大移动距离(一般为相应维搜索空间的10%~20%),群体规模为200,迭代次数为200。
? ?步长如何确定:可以使用最优化理论中的Wolf-Powell搜索、Amijo搜索选取步长。
? ?过Powell等方法为了找到最优的超参数,这些方法往往要尝试很多组值,每一次尝试都要重新做一次训练,时间成本很高,且并不总是可预测。很多时候我们并不需要挤干hyperparameters中的水分,这时候就随便选几个值,挑个不错的就好啦,当然这不是很严谨。

import pandas as pd
import os
from model import Model

file_dir = r'data\100只股票三维特征数据集合'
def file_name(dir):
    for root, dirs, files in os.walk(dir):
        file_list_temp = files  # 当前路径下所有非目录子文件
    return file_list_temp
file_list = file_name(file_dir)
print(file_list)
security_code = []
for i in file_list:
    i = i[0:9]
    security_code.append(i)#这时140股票的代码集合
print(security_code)
#现仅用600345.SH进行测试,全测试可令stock = security_code
stock = ['600345.SH.csv']

for i in range(len(stock)):
    csv_file = r"data\100只股票三维特征数据集合\%s"%(stock[i])
    csv_data = pd.read_csv(csv_file)
    print(stock[i])
    dt = csv_data.drop(['Unnamed: 0','周数'],axis=1)
    train_idx = 140
    test_idx = 52
    model = Model(dt.values, train_idx, test_idx)  # .values把dataframe转化为矩阵
    pre_value = pd.DataFrame(model.train())
    pre_value.to_csv(r'data\100只股票预测收益集合\%s.csv'%(file_list[i][0:9]))
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:38:58  更:2021-10-16 19:40:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:42:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码