当前位置: 首页 > news >正文

用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方法更精准的预测。经过一系列超参数调优…...

【Elasticsearch】parent aggregation

在Elasticsearch中,Parent Aggregation是一种特殊的单桶聚合,用于选择具有指定类型的父文档,这些类型是通过一个join字段定义的。以下是关于Parent Aggregation的详细介绍: 1.基本概念 Parent Aggregation是一种聚合操作&#x…...

IDEA使用Auto-dev+DeepSeek 10分钟快速集成,让java开发起飞

在当今的软件开发领域,AI 工具的辅助作用愈发凸显,DeepSeek AI 便是其中的佼佼者。它凭借强大的自然语言处理能力和高效的代码生成能力,成为众多开发者的得力助手。而 IntelliJ IDEA 作为一款广受欢迎的集成开发环境(IDE),若能与 DeepSeek AI 无缝集成,无疑将为开发者带…...

ASP.NET Core中间件Markdown转换器

目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式;不被浏览器支持;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上,并且在它之前运…...

使用page assist浏览器插件结合deepseek-r1 7b本地模型

为本地部署的DeepSeek R1 7b模型安装Page Assist,可以按照以下步骤进行: 一、下载并安装Ollama‌ 首先,你需要下载并安装Ollama,这是部署DeepSeek所必需的工具。你可以访问Ollama的官方网站(ollama.com)下…...

【华为OD-E卷 - 108 最大矩阵和 100分(python、java、c++、js、c)】

【华为OD-E卷 - 最大矩阵和 100分(python、java、c、js、c)】 题目 给定一个二维整数矩阵,要在这个矩阵中选出一个子矩阵,使得这个子矩阵内所有的数字和尽量大,我们把这个子矩阵称为和最大子矩阵,子矩阵的…...

【Reading Notes】Favorite Articles from 2025

文章目录 1、January2、February3、March4、April5、May6、June7、July8、August9、September10、October11、November12、December 1、January 极越之后,中国车市只会倒下更多人(2025年01月01日) 在这波枪林弹雨中,合资品牌中最…...

云计算行业分析

云计算作为数字经济的核心基础设施,未来十年将持续重塑全球科技格局,并渗透到几乎所有行业的数字化转型中。 一、云计算的发展潜力 1. 技术融合驱动爆发式创新 AI与云计算的深度耦合 - **智能云服务**:云厂商将提供预训练模型、自动化ML工…...

【Linux系统】线程:线程的优点 / 缺点 / 超线程技术 / 异常 / 用途

1、线程的优点 创建和删除线程代价较小 创建一个新线程的代价要比创建一个新进程小得多,删除代价也小。这种说法主要基于以下几个方面: (1)资源共享 内存空间:每个进程都有自己独立的内存空间,包括代码段…...

3.攻防世界 weak_auth

题目描述提示 是一个登录界面,需要密码登录 进入题目页面如下 弱口令密码爆破 用1 or 1 #试试 提示用admin登录 则尝试 用户名admin密码:123456 直接得到flag 常用弱口令密码(可复制) 用户名 admin admin-- admin or -- admin…...

代码随想录算法训练营| 二叉树总结

代码随想录 二叉树的理论基础:二叉树种类、存储方式、遍历方式、定义方式 二叉树遍历:深度优先和广度优先 二叉树属性:对称、深度、节点、平衡、路径、回溯 修改与构造:反转、构造、合并 涉及到二叉树的构造,无论普…...

Python OCR工具pytesseract识别数字验证码

直接下载地址:https://digi.bib.uni-mannheim.de/tesseract/ 找的最新版本: 我添加了math 跟chinese(因为是国内网络的原因吧,下载都失败,所以不用选择,后面自己下载后,添加到相应目录就好&…...

SpringBoot开发(五)SpringBoot接收请求参数

1. SpringBoot接收请求参数 1.1. 获取参数的方式 (1)通过request对象获取参数   (2)RequestParam(针对请求头方式为x-www-form-ur lencoded)   (3)RequestBody(针对请求头方式为application/json)   …...

文件基础IO

理解"文件" 1-1 狭义理解 文件在磁盘里磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的磁盘是外设(即是输出设备也是输入设备)磁盘上的文件 本质是对文件的所有操作,都是对外设的输入和输出简称IO 1-2 广义理…...

05vue3实战-----配置项目代码规范

05vue3实战-----配置项目代码规范 1.集成editorconfig配置2.使用prettier工具2.1安装prettier2.2配置.prettierrc文件:2.3创建.prettierignore忽略文件2.4VSCode需要安装prettier的插件2.5VSCod中的配置2.6测试prettier是否生效 3.使用ESLint检测3.1VSCode需要安装E…...

八大排序算法细讲

目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想: 步骤(排升序): 代码部分: 时间复杂度: 希尔排序 思路 步骤 gap的取法 代码部分: 时间复杂度: 选择排序 直接选…...

网络爬虫学习:借助DeepSeek完善爬虫软件,增加停止任务功能

一、引言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,终于完成了开发一款网络爬虫软件的学习目标。这几天对本次学习及应用开发进行一下回顾总结。前面已经发布了两篇日志: 网络爬虫学习:应用selenium从搜*狐搜…...

docker安装es及分词器ik

系统是macos,docker是docker-desktop 拉取镜像 docker pull bitnami/elasticsearch 启动docker镜像 docker create -e "discovery.typesingle-node" \ --name elasticsearch1 -p 9200:9200 -p 9300:9300 \ bitnami/elasticsearch:8.17.1 测试是否好…...

【论文阅读】On the Security of “VOSA“

On the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的攻击 论文…...

Docker 国内最新可用镜像源20250205

2年没用dockerhub了结果今天发现镜像无法拉取了,找了很多镜像都无效,连阿里云镜像都不行了,最后找到下面可以用的。 Docker镜像仓库备注hub.urlsa.us.kg可用http://hub.haod.eu.org可用http://hub.chxza.eu.org可用http://ccoc.eu.org部分地…...

一.设计模式的基本概念

一.核心概念 对软件设计中重复出现问题的成熟解决方案,提供代码可重用性、可维护性和扩展性保障。核心原则包括: 1.1. 单一职责原则‌ ‌定义‌:一个类只承担一个职责,避免因职责过多导致的代码耦合。 1.2. 开闭原则‌ ‌定义‌&#xf…...

【C/C++】std::vector成员函数清单

文章目录 std::vector使用指南1 不同版本提供的能力基础:C98 / C03 提供的成员函数C11 新增的成员函数C14:基本无变化(主要是标准库泛化,非 vector 成员变化)C17 引入的新特性(间接影响)C20 新增…...

Python60日基础学习打卡Day46

一、 什么是注意力 注意力机制的由来本质是从onehot-elmo-selfattention-encoder-bert这就是一条不断提取特征的路。各有各的特点,也可以说由弱到强。 其中注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景&…...

前端开发面试题总结-HTML篇

文章目录 HTML面试高频问答一、HTML 的 src 和 href 属性有什么区别?二、什么是 HTML 语义化?三、HTML的 script 标签中 defer 和 async 有什么区别?四、HTML5 相比于 HTML有哪些更新?五、HTML行内元素有哪些? 块级元素有哪些? 空(void)元素有哪些?六、iframe有哪些优点…...

前端八股之JS的原型链

1.原型的定义 每一个对象从被创建开始就和另一个对象关联,从另一个对象上继承其属性,这个另一个对象就是 原型。 当访问一个对象的属性时,先在对象的本身找,找不到就去对象的原型上找,如果还是找不到,就去…...

Android第十二次面试-多线程和字符串算法总结

多线程的创建与常见使用方法 ​一、多线程创建方式​ ​1. 继承Thread类​ class MyThread extends Thread {Overridepublic void run() {// 线程执行逻辑System.out.println(Thread.currentThread().getName() " is running");} }// 使用 MyThread thread new …...

抗辐照MCU在卫星载荷电机控制器中的实践探索

摘要:在航天领域,卫星系统的可靠运行对电子元件的抗辐照性能提出了严苛要求。微控制单元(MCU)作为卫星载荷电机控制器的核心部件,其稳定性与可靠性直接关系到卫星任务的成败。本文聚焦抗辐照MCU在卫星载荷电机控制器中的应用实践&…...

Python读取阿里法拍网的html+解决登录cookie

效果图 import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from lxml import etreedef get_taobao_auct…...

NLP学习路线图(二十):FastText

在自然语言处理(NLP)领域,词向量(Word Embedding)是基石般的存在。它将离散的符号——词语——转化为连续的、富含语义信息的向量表示,使得计算机能够“理解”语言。而在众多词向量模型中,FastText 凭借其独特的设计理念和卓越性能,尤其是在处理形态丰富的语言和罕见词…...

kubeadm安装k8s

1、环境准备 1.1、升级系统内核 参考另一篇文章&#xff1a;https://blog.csdn.net/u012533920/article/details/148457715?spm1011.2415.3001.5331 1.2、设置Hostname cat <<EOF > /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhos…...