用NeuralProphet预测股价:AI金融新利器(附源码)
作者:老余捞鱼
原创不易,转载请标明出处及原作者。
写在前面的话:我用NeuralProphet模型预测了股票价格,发现其通过结合时间序列分析和神经网络算法,确实能提供比传统Last Value方法更精准的预测。经过一系列超参数调优,其预测效果更是显著,如果你也对AI金融股价预测感兴趣,这篇文章会给你带来不少启发。
一、NeuralProphet 概述
在本文中,我们将尝试用 NeuralProphet 来预测股票价格。NeuralProphet 是由 Meta 公司开发的,据说比之前的 Prophet 软件包更强大。在之前的文章中,我们用 Prophet 做过类似的任务,但效果不太理想。这次,我们将看看 NeuralProphet 是否能带来更好的表现。根据 NeuralProphet 官网的介绍:
NeuralProphet - 使用标准深度学习方法融合传统时间序列算法,基于 PyTorch 构建,灵感来自 Facebook Prophet 和 AR-Net。
NeuralProphet 采用可分解的时间序列模型,其模型组件包括趋势、季节性、事件效应和回归效应。它们的组合公式为:
y(t) = T(t) + S(t) + E(t) + F(t) + A(t) + L(t),where T(t) = Trend at time t
S(t) = Seasonal effects at time t
E(t) = Event and holiday effects at time t
F(t) = Regression effects at time t for future-known exogenous variables
A(t) = Auto-regression effects at time t based on past observations
L(t) = Regression effects at time t for lagged observations of exogenous variables
这种可分解的时间序列在预测领域非常常见。在文章的后半部分,我们会详细讲解如何调整上述方程中的各个组成部分,以便更好地优化预测结果。
官网地址如下:NeuralProphet
二、目的
我们的核心任务是利用过去 N 天的历史数据,预测 Vanguard 全市场 ETF(VTI)每日调整后的收盘价。为了实现这一目标,我们使用了 VTI 从 2013 年 1 月 2 日到 2018 年 12 月 28 日共 6 年的历史价格数据。这些数据可以从雅虎财经轻松获取,下载后的数据集结构如下所示。通过这个项目,我们旨在验证 NeuralProphet 模型在股价预测中的表现,并探索其在实际投资分析中的应用潜力。
我们总共有 1509 天的数据可供使用。整个数据集中的调整后收盘价图如下所示:
我们使用以下公式计算每日收益
其中,r(t) 和 p(t) 分别表示第 t 天的日收益率和调整后收盘价。为了观察每日收益的分布情况,我们绘制了下面的分布图:
如上图所示,分布图非常接近高斯分布。为了进一步验证这一点,我们使用 scipy.stats 软件包绘制概率图,如下所示。对于 scipy.stats 中的概率图,默认情况下是将样本分布与高斯分布进行比较。与红色直线的拟合度越高,则与高斯分布的拟合度越高。我们观察到,除了极端值(约 > +/- 2.5)外,每日回报的分布与高斯分布的拟合程度相当高。
为了全面评估 NeuralProphet 的性能,仅仅在单一日期进行一次预测是远远不够的。因此,我们将在数据集中的多个不同日期进行多次预测,并取这些预测结果的平均值作为最终评估依据。在每次预测中,我们都会将 NeuralProphet 方法与 Last Value 方法进行对比,以更客观地衡量 NeuralProphet 的准确性和稳定性。这种方法不仅能减少随机误差的影响,还能更好地反映模型在实际应用中的表现。
为了评估我们方法的有效性,我们将使用均方根误差 (RMSE)、平均绝对百分比误差 (MAPE) 和平均绝对误差 (MAE) 指标。对于所有指标,数值越小,预测效果越好。
三、训练和验证
为了进行预测,我们需要将数据分为训练集和验证集。具体来说,我们将使用 3 年的数据(约 756 天,按每年 252 个交易日计算)作为训练集,并用接下来 1 年的数据(252 天)作为验证集。这意味着每次预测都需要 1,008 天的数据(756 天训练 + 252 天验证)。模型会在训练集上进行训练,而验证集则用于调整超参数。
为了优化超参数,我们采用了移动窗口验证法。举个例子,假设我们总共有 896 天的数据,并希望在第 857 天进行为期 40 天的预测。根据经验,对于预测范围 H,我们通常每隔 H/2 天进行一次预测。通过 756 天的训练集,我们可以进行 4 次验证(如下图所示)。我们会计算这 4 次验证的误差指标(如 RMSE、MAPE 等),并取其平均值。最终,选择误差平均值最小的超参数组合作为最佳模型配置。确定最佳超参数后,我们将在第 857 天进行预测并报告结果。这种方法不仅能提高模型的稳定性,还能更准确地评估其在实际应用中的表现。
在下文中,我们将首先对数据集的第 1009 天进行预测,预测期限为 21 天(注意,一个月约有 21 个交易日,不包括周末)。对于 NeuralProphet,我们将使用前 1008 天作为训练集和验证集,如上文所述,按 756:252 的比例分割。我们将在下一节首先解释最后值方法。
四、Last Value
在"Last Value"方法中,预测值直接采用最近一次的观测值。具体到我们的应用场景,就是将当前的调整后收盘价预测为前一天的调整后收盘价。这种方法具有以下特点:
- 实现简单,计算成本最低。
- 无需进行任何超参数调整。
- 常被用作评估更复杂预测模型的基准。
基于该方法,我们对数据集第1009天进行了21天期限的预测。这种朴素预测方法虽然简单,但在某些情况下可能表现出令人惊讶的有效性,特别是在时间序列具有较强持续性的情况下。
上述预测的 RMSE 为 1.89,MAPE 为 1.59%,MAE 为 1.80。
五、运行预测
5.1 无超参数调整的 NeuralProphet
要使用 NeuralProphet 运行预测,请使用下面的代码。
from neuralprophet import NeuralProphet, set_random_seedtrain_size = 252*3 # Use 3 years of data as train set
val_size = 252 # Use 1 year of data as validation set
train_val_size = train_size + val_size # Size of train+validation set
i = train_val_size # Day to forecast
H = 21 # Forecast horizonset_random_seed(random_seed) # Set a random seed for reproducibilitym = NeuralProphet()
m.set_plotting_backend("plotly-static")
metrics = m.fit(df_nprophet[i-train_val_size:i])# Create dataframe with the dates we want to predict
future = m.make_future_dataframe(df_nprophet[i-train_val_size:i], n_historic_predictions=True, periods=H)# Predict
forecast = m.predict(future)
为了快速直观,我们使用 Prophet 绘制预测图:
m.plot(forecast)
这个模型结构较为基础,其初始配置包括趋势项、每周周期性变化以及年度周期性变化。您可以根据以下方式单独查看每个组成部分的内容。
m.plot_components(forecast);
请注意观察就会发现,周季节性曲线图几乎是平的,这意味着 NeuralProphet 无法检测到周内差异。
单个系数的数值也可以绘制成如下图所示,以获得更深入的了解。
m.plot_parameters()
请注意,上面显示的 "季节性:年图 "和 "季节性:周图 "是成分图的一个周期。
在上图的预测中,显示的是股票收益预测。我们可以使用代码将其转换为价格:
# Convert back to price
est_adj_close = []
prev_tg = df.loc[i-1, 'adj_close']
for n in range(H):est_adj_close.append((float(preds_list.iloc[n])/100+1)*prev_tg)prev_tg = (float(preds_list.iloc[n])/100+1)*prev_tg
之后,股票价格的预测结果如下。
上述预测的 RMSE 为 1.60,MAPE 为 1.35%,MAE 为 1.52。
5.2 带有超参数调整功能的 NeuralProphet - Changepoints
时间序列的轨迹通常会发生突变。这种变化点检测的强度可以通过参数 n_changepoints 来调整。增加 n_changepoints 会使趋势更灵活,导致过度拟合。减少 n_changepoints 会降低趋势的灵活性,导致拟合不足。默认情况下,该参数设置为 10。
在偏移量 m 的基础上,再将增长率 k 乘以自起点 t0 起的时间差 (t1-t0),就得到了 t1 时刻的趋势效应。
trend(t1) = m + k(t1 - t0) = trend(t0) + k(t1-t0)
测试 n_变化点的值为 2、5、10、15 和 20。对于 n_changepoints 的每个值,我们使用训练集和验证集进行预测,结果如下:
上述过程共耗时 8 分钟。接下来,我们使用这个值在测试集上运行预测。结果如下所示。
上述预测的 RMSE 为 2.75,MAPE 为 2.35%,MAE 为 2.65。
5.3 带有超参数调整的 NeuralProphet - Monthly Seasonality
每月的季节性可以在 NeuralProphet 中这样设置:
m = NeuralProphet()
m = m.add_seasonality(name="monthly", period=30.5, fourier_order=3)
NeuralProphet 中的季节性是借助傅立叶项来建模的。上述傅立叶阶数指的是用于估计季节性的偏和中的项数。
使用 2、4、6、8 和 10 的傅立叶阶数值进行测试。对于每个傅立叶阶数值,我们使用训练集和验证集进行预测,结果如下:
上述过程总共耗时 8 分钟。接下来,我们使用这个值在测试集上进行预测。结果如下所示。
上述预测的 RMSE 为 2.19,MAPE 为 1.87%,MAE 为 2.12。
5.4 带有超参数调整功能的 NeuralProphet - 活动和假期
在节假日期间,股市的走势可能会受到影响。以“圣诞反弹”现象为例,这是指股市在圣诞节期间通常会出现的上涨趋势。NeuralProphet 在进行市场预测时能够将这些特定事件纳入考量。为此,我们首先需要创建一个事件数据框,如下所示,这一步骤可以通过导入CSV文件轻松完成。
事件可以在 NeuralProphet 中这样设置(events 就是上图所示的数据帧):
m = NeuralProphet()
m.add_events("hols", lower_window=lower_window, upper_window=upper_window)
history_df = m.create_df_with_events(df, holidays)
m.fit(history_df)
future = m.make_future_dataframe(history_df, events_df=events, n_historic_predictions=True, periods=H)
forecast = m.predict(future)
窗口大小超参数将假期扩展到日期周围的 [lower_window, upper_window]天数。为简单起见,假设 lower_window 和 upper_window 的大小相同,即 lower_window = upper_window = 窗口大小。我们将测试窗口大小的值 0、1 和 2。对于每个窗口大小值,我们使用训练集和验证集进行预测,结果如下:
过程共耗时 5 分钟。接下来,我们使用这个值在测试集上进行预测。结果如下所示。
预测的 RMSE 为 2.05,MAPE 为 1.74%,MAE 为 1.96。
5.5 带有超参数调整功能的 NeuralProphet - 自回归
自回归是一种时间序列模型,它使用前一时间步的观测值作为回归方程的输入,以预测下一时间步的值。
NeuralProphet 中的自回归由 n_lags 参数决定。我们将测试 n_lags 的值 0、2、5 和 10。对于每个 n_lags 值,使用训练集和验证集进行预测,结果如下:
上述过程共耗时 7 分钟。接下来,我们使用这个值在测试集上运行我们的预测。结果如下所示。
预测的 RMSE 为 1.18,MAPE 为 0.89%,MAE 为 1.01。
5.6 带有超参数调整功能的 NeuralProphet - 结合所有超参数
下一步将测试超参数的组合,找出最佳的超参数集。以网格搜索方式测试上述每个超参数组合总共需要 5 * 5 * 3 * 4 * 7 分钟 = 35 小时。为了节省时间,参考上述结果,只用以下值进行测试:
n_changepoints_list = [2, 5]
fourier_order_list = [6, 8]
window_list = [1]
n_lags_list = [0, 2]
此外,我们还尝试了上述超参数,首先是不带事件超参数的超参数,其次是带事件超参数的超参数。以下是不带事件超参数的结果。
以下是使用事件超参数得出的结果。
从上面可以看出,n_changepoints、fourier_order、window 和 n_lags 的最佳值分别为 2、6、1、2 和使用事件。接下来,我们使用这些值在测试集上运行我们的预测。结果如下所示。
上述预测的 RMSE 为 1.04,MAPE 为 0.81%,MAE 为 0.91。
经过对所有超参数的细致优化,我们在第1009天的预测中,利用NeuralProphet模型取得了卓越的表现。在完成超参数的全面调整后,该模型在RMSE、MAPE和MAE指标上均达到了最低值,超越了包括Last Value基准在内的其他所有预测方法。接下来,我们将探究NeuralProphet模型在其他日期的预测成效。
5.7 多日预测
在审视了上述超参数调整带来的成果之后,我们计划将这种方法扩展应用,以对连续多天进行预测。我们的预测将从数据集的第1009天起步,并以42天为周期进行新一轮预测。鉴于数据集包含1509天的数据,我们将执行共计12轮的预测。每轮预测都将覆盖未来21天的时间范围。同时,对于每一天t的预测,我们都将应用之前确定的最优超参数配置。
从上文中可以明显看出,并非所有的预测结果都是理想的。有些日期的预测方向和幅度与实际值相当接近,然而在其他日期,预测的方向和幅度则与实际值相去甚远。以下展示了每项预测的性能指标结果。
让我们将上述结果与下图所示的 " Last Value "方法进行比较。
NeuralProphet 在12次预测中的平均RMSE为2.15,平均MAPE为1.41%,平均MAE为1.88。相比之下,Last Value方法的平均RMSE为2.53,平均MAPE为1.69%,平均MAE为2.26。在这些指标上,NeuralProphet 显然表现更为优异。这一结果颇为有趣,因为在我的先前实验中,使用的是Prophet而非NeuralProphet,那时Last Value方法的表现更为突出。在这个案例中,NeuralProphet 的贡献不容小觑。
六、观点总结
- NeuralProphet 在股价预测中表现卓越:文章通过对比 Last Value 方法和 Prophet 模型,证实 NeuralProphet 在预测股价时具有更高的准确性,成为金融分析中的新利器。
- 超参数调优是提升模型性能的关键:作者通过调整 changepoints、fourier_order、window_size 和 n_lags 等超参数,展示了如何优化模型,从而显著提升预测效果。
- 事件和假期对股市影响不可忽视:文章强调了节假日和特殊事件对股价波动的重要性,提醒我们在建模时需充分考虑这些因素,以提高预测精度。
- 自回归显著提升预测准确性:通过引入自回归参数 n_lags,NeuralProphet 能够更好地捕捉时间序列中的动态变化,从而大幅提升预测的可靠性。
- NeuralProphet 具备高度灵活性和扩展性:作者通过添加事件数据框架和调整季节性参数,展示了 NeuralProphet 如何适应复杂的市场环境,满足多样化的预测需求。
- 多日预测实验证明 NeuralProphet 的优越性:在多次预测实验中,NeuralProphet 的 RMSE、MAPE 和 MAE 指标均优于 Last Value 方法,展现了其在股价预测领域的巨大潜力。
代码地址:Stocks2025/StockReturnsPrediction_fh21/StockReturnsPrediction_v9_neuralprophet.ipynb at master · alexyu2013/Stocks2025 · GitHub
感谢您阅读到最后,希望本文能给您带来新的收获。码字不易,请帮我点赞、分享。祝您投资顺利!如果对文中的内容有任何疑问,请给我留言,必复。
本文内容仅限技术探讨和学习,不构成任何投资建议。
相关文章:
用NeuralProphet预测股价:AI金融新利器(附源码)
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:我用NeuralProphet模型预测了股票价格,发现其通过结合时间序列分析和神经网络算法,确实能提供比传统Last Value方法更精准的预测。经过一系列超参数调优…...
go-zero学习笔记(三)
利用goctl生成rpc服务 编写proto文件 // 声明 proto 使用的语法版本 syntax "proto3";// proto 包名 package demoRpc;// golang 包名(可选) option go_package "./demo";// 如需为 .proto 文件添加注释,请使用 C/C 样式的 // 和 /* ... */…...
【ABB阀门定位器EDP300如何进行自整定】
ABB阀门定位器EDP300如何进行自整定 自整定前准备 检查安装与连接 确保阀门和定位器安装正确,机械连接牢固,无卡阻或松动。 确认气源压力符合要求(通常为1.4~7 bar),气路无泄漏。 确保4~20mA输入信号稳定且接线正确。…...
Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II
Day48_20250130_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II 20250130补完 739.每日温度 题目 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天࿰…...
使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置
在搭建网站或服务时,确保域名的安全性和正确的流量转发是非常重要的。本文将介绍如何使用 Let’s Encrypt 获取免费的 SSL 证书,并将其配置到 OpenResty 中,同时实现特定的域名转发规则。这不仅可以提升网站的安全性,还能优化流量…...
Spring Boot启动内嵌tocmat原理
要研究Spring Boot启动内嵌tomcat的原理,就需要先了解一下Spring Boot自动配置的过程,首先简要的梳理一下springboot自动配置的步骤。 一、SpringBoot自动配置 当SpringBoot应用启动时,EnableAutoConfiguration注解被激活,该注解…...
【系统架构设计师】分布式数据库透明性
目录 1. 说明2. 分片透明3. 复制透明4. 位置透明5. 逻辑透明(局部数据模型透明)6.例题6.1 例题1 1. 说明 1.在分布式数据库系统中,分片透明、复制透明、位置透明和逻辑透明是几个重要的基本概念。2.分片透明、复制透明、位置透明和逻辑透明是…...
MySQL三大日志——binlog、redoLog、undoLog详解
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1. redoLog 1.1 为什么…...
ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景
1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …...
Markdown 博客写作图片自动上传到 CSDN 与博客园
背景 目前大部分的博客都是基于 Typora 软件编写,其中的图片都是本地相对路径,以前都手动逐个复制图片上传到 CSDN,但这个过程很繁琐,故想着使用自动上传图片。 目前有以下特点可利用: dotnet-cnblog 工具可自动把本…...
大模型—Dify本地化部署实战
Dify本地化部署实战 系统要求 安装 Dify 之前, 请确保你的机器已满足最低安装要求: CPU >= 2 CoreRAM >= 4 GiB本地部署 开始前先简单介绍下部署Dify需要用到的组件,稍微有点多,但放心,有Docker你怕啥? 关系数据库:postgres缓存:Redis向量数据库:支持weaviate…...
Java抽象类和接口的区别
一、抽象类 当一个类中没有包含足够的信息以描绘一个具体的对象时,这样的类就是抽象类;“抽象类”是用关键字 abstract 修饰的,抽象类中有一种特殊方法,即用abstract 关键字来修饰的方法,这些方法被称为“抽象方法” …...
基于YUV的色相调节(二)
文章目录 量纲范围归一化归一化因子: U m , V m U_m, V_m Um,Vm归一化因子: U m a x , V m a x U_{max}, V_{max} Umax,Vmax 接上一篇:基于YUV的色相调节(一) 量纲范围归一化 正常情况下UV的量纲范围不一样&…...
【QT笔记】使用QScrollArea实现多行文本样式显示
目录 一、QScrollArea 的基本概念 二、demo代码 三、实现效果 1、页面空间足够,无滚动条时显示效果 2、有滚动条时显示效果 一、QScrollArea 的基本概念 QScrollArea 是 Qt 框架中用于提供一个滚动条区域,允许用户滚动查看比当前可视区域更大的内容…...
【自然语言处理】TextRank 算法提取关键词(Python实现)
文章目录 前言PageRank 实现TextRank 简单版源码实现jieba工具包实现TextRank 前言 TextRank 算法是一种基于图的排序算法,主要用于文本处理中的关键词提取和文本摘要。它基于图中节点之间的关系来评估节点的重要性,类似于 Google 的 PageRank 算法。Tex…...
八大排序算法细讲
目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想: 步骤(排升序): 代码部分: 时间复杂度: 希尔排序 思路 步骤 gap的取法 代码部分: 时间复杂度: 选择排序 直接选…...
机器学习9-卷积和卷积核2
机器学习9-卷积和卷积核2 卷积与边缘提取边缘的种类边缘检测图像求导解析示例 图像求导公式:解析总结 图像梯度噪声的影响 边缘检测目标非极大值抑制总结 卷积与边缘提取 边缘:图像中亮度明显而急剧变化的点 为什么要研究边缘? 编码图像中…...
微服务知识——微服务拆分规范
文章目录 一、微服务拆分规范1、高内聚、低耦合2、服务拆分正交性原则3、服务拆分层级最多三层4、服务粒度适中、演进式拆分5、避免环形依赖、双向依赖6、通用化接口设计,减少定制化设计7、接口设计需要严格保证兼容性8、将串行调用改为并行调用,或者异步…...
【回溯+剪枝】单词搜索,你能用递归解决吗?
文章目录 79. 单词搜索解题思路:回溯(深搜) 剪枝 79. 单词搜索 79. 单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 …...
deepseek接入pycharm 进行AI编程
要将DeepSeek接入PyCharm进行AI编程,可以按照以下步骤操作: ### 1. 获取DeepSeek API访问权限 DeepSeek通常以API的形式对外提供服务,你需要在其官方网站注册账号,申请API访问权限。在申请通过后,会获得API密钥(API Key),这是后续调用API的关键凭证。 ### 2. 安装必要…...
M系列/Mac安装配置Node.js全栈开发环境(nvm+npm+yarn)
一、安装 nvm(Node Version Manager) 打开终端,使用 curl 在 M 系列 Mac 上安装 nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash对于非 M 系列的 Intel Mac,上述命令同样适…...
常见Linux命令的复习
常见命令 ls 列出工作目录 ls -l:以长格式显示目录下的文件和子目录信息。ls -a:显示所有文件和子目录,包括隐藏文件 ll 列出该目录下的详细信息 看到该目录下的所有目录和文件的详细信息 cd 切换当前工作目录里 cd /path/to/directory&…...
朴素贝叶斯算法相关文献
朴素贝叶斯是一种基于概率的简单但强大的分类算法。尽管其“朴素”假设(特征之间相互独立)在现实中往往不成立,但在许多实际应用中,它依然表现出色,尤其是在文本分类、垃圾邮件过滤和情感分析等领域。近年来࿰…...
【鸿蒙HarmonyOS Next实战开发】多媒体视频播放-ijkplayer
简介 ijkplayer是OpenHarmony和HarmonyOS环境下可用的一款基于FFmpeg的视频播放器。 演示 下载安装 ohpm install ohos/ijkplayer使用说明 import { IjkMediaPlayer } from "ohos/ijkplayer";import type { OnPreparedListener } from "ohos/ijkplayer";i…...
jvm - GC篇
如何减慢一个对象进入老年代的速度,如何降低GC的次数 堆内存细分 年轻代(Young Generation): 新创建的对象首先被分配在年轻代中。年轻代又被进一步划分为一个Eden区和两个Survivor区(通常称为S0和S1)。…...
edu小程序挖掘严重支付逻辑漏洞
edu小程序挖掘严重支付逻辑漏洞 一、敏感信息泄露 打开购电小程序 这里需要输入姓名和学号,直接搜索引擎搜索即可得到,这就不用多说了,但是这里的手机号可以任意输入,只要用户没有绑定手机号这里我们输入自己的手机号抓包直接进…...
职责链模式
介绍 避免将请求发送者和接收者耦合在一起,让多个对象都有机会接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 处理请求的对象组成一条链(职责链),职责链可…...
数据分析:企业数字化转型的金钥匙
引言:数字化浪潮下的数据金矿 在数字化浪潮席卷全球的背景下,有研究表明,只有不到30%的企业能够充分利用手中掌握的数据,这是否让人深思?数据已然成为企业最为宝贵的资产之一。然而,企业是否真正准备好从数…...
将Windows下的USB设备共享给WSL(ubuntu)
前言 本文用于学习记录,文中提到的方法也来自于网上资料,如有不对请指出,谢谢! 微软官方参考链接:https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb 如果没有特殊标注,以下命令均在Windows终…...
UG NX二次开发(Python)-API函数介绍与应用实例(三)-UFLayer类操作
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1 前言2、UFLayer类说明3、获取当前工作图层4、移动对象到特定的图层1 前言 采用Python语言进行UG NX二次开发的帮助材料很少,采用录制的方法是一种比较容易实现的方式,但是使用UFun函数更容易上…...
【PostgreSQL内核学习 —— (WindowAgg(三))】
WindowAgg set_subquery_pathlist 部分函数解读check_and_push_window_quals 函数find_window_run_conditions 函数执行案例总结 计划器模块(set_plan_refs函数)set_windowagg_runcondition_references 函数执行案例 fix_windowagg_condition_expr 函数f…...
案例1.spark和flink分别实现作业配置动态更新案例
目录 目录 一、背景 二、解决 1.方法1:spark broadcast广播变量 a. 思路 b. 案例 ① 需求 ② 数据 ③ 代码 2.方法2:flink RichSourceFunction a. 思路 b. 案例 ① 需求 ② 数据 ③ 代码 ④ 测试验证 测试1 测试2 测试3 一、背景 在实时作业(如 Spark Str…...
一键掌握多平台短视频矩阵营销/源码部署
短视频矩阵系统的介绍与应用 随着数字化营销策略的不断演进,传统的短视频矩阵操作方法可能已显陈旧。为此,一款全新的短视频矩阵系统应运而生,它通过整合多个社交媒体账户、创建多样化的任务、运用先进的智能视频编辑工具、实现多平台内容的…...
如何利用maven更优雅的打包
最近在客户现场部署项目,有两套环境,无法连接互联网,两套环境之间也是完全隔离,于是问题就来了,每次都要远程到公司电脑改完代码,打包,通过网盘(如果没有会员,上传下载慢…...
Win11非虚拟机安装ISE14.7
官网下载6.18GB 的 Full Installer for Windows 7/XP/Server解压后运行安装程序不勾选Enable WebTalk to send software, IP ...安装程序卡死在ISE:Configure WebTalk,此时打开任务管理器,在详情中找到xwebtalk,右键结束任务。安装程序继续进…...
大彩讲堂:掌握虚拟屏调试的方法
一、适合范围 适合全系列大彩协议串口屏产品 二、开发环境版本 1. VisualTFT软件版本:V3.0.0.1037及以上的版本,版本查看方式: (1) 打开VisualTFT软件启动页面如图2-1所示,右上角显示的软件版本号; 图2-1 软件版本 (…...
k8sollama部署deepseek-R1模型,内网无坑
这是目录 linux下载ollama模型文件下载到本地,打包迁移到k8s等无网络环境使用下载打包ollama镜像非k8s环境使用k8s部署访问方式非ollama运行deepseek模型linux下载ollama 下载后可存放其他服务器 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linu…...
2025职业发展规划
2025职业发展规划 我是一名大公司的高级移动应用开发技术专家,目前参与了鸿蒙App开发,对鸿蒙的TS语言也有所了解。现在需要制定2025年的职业发展规划,包括学习内容和方向,并以思维导图的形式呈现。我需要梳理出合适的发展路径。首…...
VDN 微服务架构搭建篇(三)基于 Nacos 的 Spring Cloud Gateway 动态路由管理
VDN 微服务架构搭建篇(三):基于 Nacos 的 Spring Cloud Gateway 动态路由管理 在微服务架构中,网关 是整个系统的入口,负责 流量管理、请求路由、安全控制等关键功能。 Spring Cloud Gateway 作为 Spring 生态官方推荐…...
(3)yaml语法
yaml语法 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。 通俗的来说yaml…...
SpringAI系列 - 使用LangGPT编写高质量的Prompt
目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…...
Linux提权--John碰撞密码提权
John the Ripper(简称 John)是一个常用的密码破解工具,可以通过暴力破解、字典攻击、规则攻击等方式,尝试猜解用户密码。密码的弱度是提权攻击中的一个重要因素,如果某个用户的密码非常简单或是默认密码࿰…...
系分成长指南
持续改进的核心理念:持续发现问题并改进,通过反馈和反馈循环优化工作流程。 如何制定反馈渠道:通过线上表格填写问卷、内部会议记录、即时消息等方式。 如何保持动力:设定具体目标、使用 KPI 测量进展、奖励机制、建立支持体系。 …...
5 计算机网络
5 计算机网络 5.1 OSI/RM七层模型 5.2 TCP/IP协议簇 5.2.1:常见协议基础 一、 TCP是可靠的,效率低的; 1.HTTP协议端口默认80,HTTPSSL之后成为HTTPS协议默认端口443。 2.对于0~1023一般是默认的公共端口不需要注册,1024以后的则需…...
绿联NAS安装cpolar内网穿透工具实现无公网IP远程访问教程
文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 本文主要介绍如何在绿联NAS中使用ssh远程连接后,使用一行代码快速安装cpolar内网穿透工具,轻松实现随时随地远程访问本地内网中的绿联NAS,无需公网…...
Temperature、Top-P、Top-K、Frequency Penalty详解
在生成式AI(比如ChatGPT)中,Temperature、Top-P、Top-K、Frequency Penalty 这些参数用于控制文本生成的多样性、随机性和重复度,它们的作用如下: 1. Temperature(温度) 作用:控制输…...
2.6作业
1.思维导图 2.代码解释 struct A{double a; }; struct B{char b[8]; };int main(int argc,const char *argv[]) {struct A x;struct B y;x.a 3.14;y *(struct B*)&x;printf("y.b %lf\n",*(double *)y.b);return 0; } 注释: 1. 定义struct A类型变…...
面试笔记-多线程篇
为什么不直接调用run方法而是调用start方法? start方法会先创建一条线程,再用创建出的新线程去执行对应的run方法,这样才是起到多线程效果,如果直接调用run方法,则只是在原线程执行。 线程的sleep方法和wait方法的区别…...
stacking 框架
stacking stacking介绍 Stacking是个多层的多模型集合方法。每一层都可包括多个模型,下一层利用上一层模型的结果进行学习。可以只使用一层,然后用元学习器融合,也可以多层融合。 单层融合 多层融合 如上图所示,Stacking结构中…...
面向对象编程简介
面向对象编程(OOP)是一种编程范式,强调通过“对象”来设计软件。对象是数据和功能的封装,使得程序更易于理解和维护。本文将介绍面向对象的基本概念、特性以及其在软件开发中的重要性。 1. 面向对象的基本概念 1.1 对象 对象是…...