最新资讯

  • 量化小白也能自动化挖掘出6万+因子

量化小白也能自动化挖掘出6万+因子

2025-04-28 12:37:40 2 阅读

最近逛某乎,碰到了这个问题:如何看待量化交易WorldQuant世坤大赛北大牛人提交了6万+因子?

我的第一直觉,这肯定不是纯手工挖出来的,6w个因子,一天挖一个,节假日都不休息的话,需要164年,一个小时挖一个的话,也需要7年,一分钟一个,需要42天。

这明显不是一个纯人工手工的速度,麒麟臂也不行,肯定是有机器参与了,除非这个北大学子也是个少爷,雇了100来人,每个人搞来几百个因子就行了。

如果可以用机器,只注重因子数量的话,短时间内挖6w+因子也不是什么难事,量化小白也可以做到,本来这方法是我之前给PM支招对付恶毒私募那种3周要挖4000因子的要求,核心代码只有4行,虽然因子质量不一定能保证,但因子数量绝对是足斤足两的,我刚才试了一下,挖6w+因子,一共花了不到3个小时。

不藏着掖着,这个牛掰的量化因子自动挖掘神器就是tsfresh,只要你基础因子和电脑配置足够,真的是想挖多少就挖多少。

tsfresh实际上是一个python库,在电脑终端使用“pip install tsfresh”就可以自动安装,它最主要的功能就是能对证券价格这类型的时间序列数据自动挖掘其中的特征,并且还可以对有效特征进行筛选,详细说明请见官网:https://tsfresh.com/。

特征(feature)一般是在人工智能/机器学习/深度学习领域的叫法,在量化交易/量化投资领域一般叫因子(factor),例如相对强弱指标RSI在机器学习领域就叫RSI特征,在量化选股领域就叫RSI因子,其实都是一样的东西,大伙儿注意分辨语境就好了。

废话不多说,咱可以先来快速体验一下挖6w+因子,详细原理下文再细说,在成功安装tsfresh库后,只需要以下4行核心代码(第5~8行),便可以将原有的84个基础因子,扩展到65772个因子,耗时9730秒,约2.7小时。

import datetime
start_time = datetime.datetime.now() #开始时间

# 核心代码部分
from tsfresh import extract_features
from tsfresh.utilities.dataframe_functions import roll_time_series
data_roll = roll_time_series(data, column_id='code', column_sort='date', max_timeshift=20, min_timeshift=5).drop(columns=['code'])
data_feat = extract_features(data_roll, column_id='id', column_sort='date') 

end_time = datetime.datetime.now() #结束时间
print('开始时间:', start_time.strftime('%Y-%m-%d %H:%M:%S'))
print('结束时间:', end_time.strftime('%Y-%m-%d %H:%M:%S'))
print('耗时:%d 秒' %(end_time-start_time).seconds)
print('原始数据维度:', data.shape)
print('特征提取后维度:', data_feat.shape)

输出结果:

开始时间: 2024-07-30 23:10:01
结束时间: 2024-07-31 01:52:11
耗时:9730 秒
原始数据维度: (4651, 86)
特征提取后维度: (4646, 65772)

补充说明一下,其中输入数据data是预先生成的数据(下文会说明获取方式),第1列是日期(date),第2列是证券代码(code),之后的84列都是因子列;特征提取之后行数少了5行,是因为设置了前面至少要有5行数据才开始提取当日特征;耗时大小跟电脑配置有关,本次试验所用的电脑处理器是第12代i7(主频2.10 GHz),电脑内存大小是32G。

咱不能是为了提取因子而提取因子,必定是用来做些什么的吧,那咱就可以沿着之前机器学习指数量化择时的策略思路,构建一个因子增强版的策略,整体策略思路详见之前的文章《手把手教你,利用机器学习模型,构建量化择时策略》。

整个建模流程分为收集数据、准备数据、选择/建立模型、训练模型、测试模型和调节参数这6大步骤,这次咱主要是利用tsfresh库生成更多的有效因子进行建模,因此只需改变收集数据和准备数据这2个步骤,后面4个步骤与之前的文章基本一致,无须大变。

由于一次性同时挖掘6w+因子耗时就不说了,还非常吃内存,我自己这台32G内存的老机子都差点儿扛不下来,因此为了照顾到更多的小伙伴能跑通程序,建模的时候使用的是8k+因子,但同时也会说明如何升级到6w+因子。

Step1:收集数据

现在开始第1个步骤,咱就来获取沪深300指数从2005年4月8日上市以来至今的全部行情数据,这里使用的是股票量化开源库qstock,“pip install qstock”安装后,基本的功能无需注册便可以使用,对萌新来说非常方便,详情请见:https://github.com/tkfy920/qstock

import qstock as qs

# 获取沪深300指数高开低收、成交量、成交金额、换手率数据,index是日期
data = qs.get_data(code_list=['HS300'], start='20050408', end='20240730', freq='d')
# 删除名称列、排序并去除空值
data = data.drop(columns=['name']).sort_index().fillna(method='ffill').dropna()
# 插入日期列
data.insert(0, 'date', data.index)
# 将日期从datetime格式转换为str格式
data['date'] = data['date'].apply(lambda x: x.strftime('%Y-%m-%d'))
data = data.reset_index(drop=True)

print(data.shape)
data.tail(10)

这里使用qstock获取数据只是举例,大家使用相同功能的库或API都可以,要注意的是不要带名称列,而且日期列是str格式,不是datetime格式。

Step2:准备数据(本期重点)

第2个步骤就是准备数据,生成/选取哪些特征/因子作为将来SVM模型的输入,在这里咱额外计算的因子是价格斜率(slope)、相对强弱指标(rsi)、威廉指标值(wr)、MACD快线(dif)、MACD慢线(dea)、MACD柱(macd)和抛物线指标(sar)这7个因子,再加上之前的收盘价、成交量、成交金额和换手率,一共是11个因子。

import talib

# 收盘价的斜率
data['slope'] = talib.LINEARREG_SLOPE(data['close'].values, timeperiod=5)
# 相对强弱指标
data['rsi'] = talib.RSI(data['close'].values, timeperiod = 14)
# 威廉指标值
data['wr'] = talib.WILLR(data['high'].values, data['low'].values, data['close'].values, timeperiod=7)
# MACD中的DIF、DEA和MACD柱
data['dif'], data['dea'], data['macd'] = talib.MACD(data['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
# 抛物线指标
data['sar'] = talib.SAR(data['high'].values, data['low'].values)
# 删除开盘价、最高价和最低价
data = data.drop(columns=['open','high','low']).fillna(method='ffill').dropna().reset_index(drop=True)

print(data.shape)
data.tail(10)

注意这里的行数比之前的少了33(4694->4661),那是因为在计算MACD指标时,底层需要计算EMA26并且在这基础上还要计算EMA9,期初的数据由于长度不足,指标是空值被剔除了,(26-1)+(9-1)=33,下面出现行数减少的原因也是同样的原理,不再赘述。

重点来了,在这里咱要基于这11个基础因子,生成8k+个因子,这里就要先说明一下tsfresh的提取特征原理了。

tsfresh是对序列数据提取特征,输入一个时间序列数据就会转换为一个数值,例如输入一段时间的股价序列,那么可以转化成最大值、最小值、平均值、中位数、波峰数这样的标量数值。

如果不做特殊处理,直接把沪深300因子数据输入进去,那么它只会把每个因子序列数据转化为单个值,这样一个4661x13的因子矩阵,最终就会变为1x13的因子向量,相当于只是一个样本,这样是无法建模的。

咱需要的是每个交易日都要有一个样本,这就需要用到tsfresh的滚动(roll)技术了,请看下面的变换。

from tsfresh.utilities.dataframe_functions import roll_time_series

data_roll = roll_time_series(data, column_id='code', column_sort='date', max_timeshift=20, min_timeshift=5).drop(columns=['code'])

print(data_roll.shape)
data_roll.head(15)

在这个变换中,新生成了一个id列,数值是一个元组,元素1是证券代码,元素2是日期,红框中id日期表明,2005-06-08的因子计算需要用到2005-06-01、2005-06-02、2005-06-03、2005-06-06、2005-06-07和2005-06-08这6个数值组成的时间序列数据,用多长的序列数据,由参数max_timeshift和min_timeshift决定。

max_timeshift=n表示每个交易日最多使用包含当日在内的n+1个数据点序列,min_timeshift=m表示每个交易日至少使用包含当日在内的m+1个数据点序列,这也就说明了数据id为什么从2005-06-08开始,因为之前至少需要5个数据点,再给大伙儿换一种方式展示就清楚更多了,如下。

gg = data_roll.groupby('id').agg({'date':['count', min, max]})

print(gg.shape)
gg.head(20)

看到这里就应该明白了,数据长度在min_timeshift+1 ~ max_timeshift+1之间时,有多少数据用多少数据,当超出这个范围后,就每个交易日滚动(roll)使用max_timeshift+1个数据点的序列数据,因此原始因子数量不变,但行数被扩展为9万多行,因为部分数据被重复滚动使用。

在data_roll之上,就可以使用tsfresh的extract_features函数在基础因子之上衍生出众多因子,这一步较为耗时,不同电脑配置执行时间不一样,须耐心等待。

from tsfresh import extract_features

data_feat = extract_features(data_roll, column_id='id', column_sort='date')
# 对单独标的而言,将日期作为index
data_feat.index = [v[1] for v in data_feat.index] 

print(data_feat.shape)

输出结果:

Feature Extraction: 100%|██████████████████████████████████████████████████████████████| 50/50 [14:50<00:00, 17.81s/it]
(4656, 8613)

从结果中看出,最终得到了4656x8613的因子矩阵,4656对应着交易日数,8613对应着在11个基础因子之上衍生出来的因子数。

因子生成的原理是,tsfresh预置了783个算子(calculator),会逐个用在每一个交易日的基础因子数值序列上,这就相当于孙悟空拔一根猴毛下来,能变出783个形态各异的化身,相同计算公式不同单参数也算1个,11乘以783就是8613,具体的算子计算公式请见官方文档:

https://tsfresh.readthedocs.io/en/latest/text/list_of_features.html

看到这里,挖出6w+因子的原理就很明显了,60000 / 783 ≈ 77,只需要有77个基础因子,就能衍生出6w个因子,只需要将之前生成11个基础因子的部分,替换为以下代码,就可以生成84个基础因子,能衍生出65772个因子,开头2.7小时挖6w+因子的试验就是用这个方法。

import talib

for period in range(5,15):
    # 收盘价的斜率
    data[f'slope{period}'] = talib.LINEARREG_SLOPE(data['close'].values, timeperiod=period)
    # 相对强弱指标
    data[f'rsi{period}'] = talib.RSI(data['close'].values, timeperiod=period)
    # 威廉指标值
    data[f'wr{period}'] = talib.WILLR(data['high'].values, data['low'].values, data['close'].values, timeperiod=period)
    # 均幅指标
    data[f'atr{period}'] = talib.ATR(data['high'].values, data['low'].values, data['close'].values, timeperiod=period)
    # 平均趋向指标
    data[f'adx{period}']  = talib.ADX(data['high'].values, data['low'].values, data['close'].values, timeperiod=period)
for fperiod,speriod,mperiod in zip(range(8,18),range(22,32),range(5,15)):
    # MACD中的DIF、DEA和MACD柱
    data[f'dif{fperiod}'], data[f'dea{fperiod}'], data[f'macd{fperiod}'] = talib.MACD(data['close'].values, fastperiod=fperiod, slowperiod=speriod, signalperiod=mperiod)

# 删除开盘价、最高价和最低价
data = data.drop(columns=['open','high','low']).fillna(method='ffill').dropna().reset_index(drop=True)

print(data.shape)
data.tail(10)

大致的原理是,使用价格斜率(slope)、相对强弱指标(rsi)、威廉指标值(wr)、均幅指标(atr)、平均趋向指标(adx)、MACD快线(dif)、MACD慢线(dea)和MACD柱(macd)这8个指标,每个指标都分别使用10个不同的参数,那就是80个不同的因子,再加上之前的收盘价、成交量、成交金额和换手率,一共是84个因子。这是一种偷懒的写法,大伙儿别学我,根据自己的实际需要加入基础因子哈

说回正题,这8613维里面都是衍生出来的因子,是不包含原始的基础因子的,记得也把基础因子添加回去。跟以前的做法一样,也要给每个交易日的数据打上标签,每个样本标签对应的是第二个交易日的涨跌情况,计算出每个样本第二天的涨幅(pct),如果第二天上涨,则设置标签(rise)为1,反之为0。

import pandas as pd

# 将原始因子加入因子矩阵当中
data_feat = pd.merge(data_feat, data.set_index('date', drop=True).drop(columns=['code']), 
                     how='left', left_index=True, right_index=True)

# 给数据打标签
data_feat['pct'] = data_feat['close'].shift(-1) / data_feat['close'] - 1.0
data_feat['rise'] = data_feat['pct'].apply(lambda x: 1 if x>0 else 0)
data_feat = data_feat.dropna(subset=['pct'])

print(data_feat.shape)

Step3:选择/建立模型

还是跟之前一样,使用SVM模型,原因和原理不再赘述,详见之前的文章《手把手教你,利用机器学习模型,构建量化择时策略》,为了方(tou)便(lan)实现和建立模型,咱还是直接从Scikit-learn(简称sklearn)中导入,它是非常流行的Python免费机器学习库,具有各种分类、回归和聚类算法,一般配合numpy数据格式使用。

Step4:训练模型

在这里,咱需要把整个数据集分拆为训练集和测试集,因为除了训练模型之外,咱还要留出一部分数据来验证训练出来模型的优劣。

一般来说,将完整数据集80%的样本作为训练集,剩余20%的样本作为测试集,要注意的是,在这里使用tsfresh的select_features函数对之前的8000+因子进行有效因子筛选,最终有效入选因子有200多个,这个只能在训练集上操作,不能在全部数据集上操作,否则就会变相引入“未来函数”。

from tsfresh import select_features

# 划分训练集和测试集
num_train = round(len(data_feat)*0.8)
data_train = data_feat.iloc[:num_train, :]
y_train = data_feat.iloc[:num_train, :]['rise']
data_test = data_feat.iloc[num_train:, :]
y_test = data_feat.iloc[num_train:, :]['rise']

# 特征选择
data_train0 = select_features(data_train.drop(columns=['pct','rise']).dropna(axis=1, how='any'), y_train)
select_columns = list(data_train0.columns) + ['pct','rise']
data_train = data_train[select_columns]
data_test = data_test[select_columns]

print(data_train.shape)

输出结果:

(3724, 242)

接下来,按照老方法将因子数据标准化后,用于模型训练,从sklearn的svm模块当中导入SVM分类器SVC,创建实例对象后,将训练集因子数据和对应标签塞进fit函数就行了,SVM模型的惩罚系数使用默认值1.0,核函数也用默认的RBF核函数。

from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler

# 转化为numpy的ndarray数组格式
X_train = data_train.drop(columns=['pct','rise']).values
X_test = data_test.drop(columns=['pct','rise']).values

# 对数据进行标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 训练模型
classifier = SVC(C=1.0, kernel='rbf')
classifier.fit(X_train, y_train)

Step5:测试模型

至此,SVM分类器已经训练好了,把因子数据塞进predict函数,就能输出每个样本的预测值,咱分别把训练集和测试集的预测标签插回到原来的数据集当中,用来计算预测的准确率。

y_train_pred = classifier.predict(X_train)
y_test_pred = classifier.predict(X_test)
data_train['pred'] = y_train_pred
data_test['pred'] = y_test_pred
accuracy_train = 100 * data_train[data_train.rise==data_train.pred].shape[0] / data_train.shape[0]
accuracy_test = 100 * data_test[data_test.rise==data_test.pred].shape[0] / data_test.shape[0]
print('训练集预测准确率:%.2f%%' %accuracy_train)
print('测试集预测准确率:%.2f%%' %accuracy_test)

输出结果:

训练集预测准确率:65.01%
测试集预测准确率:52.42%

光看准确率还是不够直观,咱还要看一下如果纯粹按照这个择时模型的预测结果进行投资,能获得多少收益。假设指数可以多空交易,如果模型预测为1(上涨),第二天策略的收益率就是指数的涨幅,如果模型预测为0(下跌),第二天策略的收益率就是指数的涨幅的相反数,有了每天的日收益率之后,通过dataframe自带的累乘函数cumprod,就可以得到择时策略和沪深300指数的净值曲线,为了方(tou)便(lan)起见,不考虑交易费率,以及按照收盘价成交。

import matplotlib.pyplot as plt

#策略日收益率
data_test['strategy_pct'] = data_test.apply(lambda x: x.pct if x.pred>0 else -x.pct, axis=1)

#策略和沪深300的净值
data_test['strategy'] = (1.0 + data_test['strategy_pct']).cumprod()
data_test['hs300'] = (1.0 + data_test['pct']).cumprod()

# 粗略计算年化收益率
annual_return = 100 * (pow(data_test['strategy'].iloc[-1], 250/data_test.shape[0]) - 1.0)
print('SVM 沪深300指数择时策略的年化收益率:%.2f%%' %annual_return)

#将索引从字符串转换为日期格式,方便展示
data_test.index = pd.to_datetime(data_test.index)
ax = data_test[['strategy','hs300']].plot(figsize=(16,9), color=['SteelBlue','Red'],
                                          title='SVM 沪深300指数择时策略净值  by 公众号【量化君也】')
plt.show()

Step6:调节参数

如果你觉得预测准确率和策略收益还达不到预期,可以对每一个步骤的参数进行调整改进。

就好比这次建模,跟原始版SVM择时模型比起来,最大的不同点就是使用了不同的基础因子,还在基础因子上提取了众多的衍生因子,并且进行了有效因子筛选,训练集预测准确率从之前的57.23%提升到了65.01%,测试集预测准确率从48.34%提升到了52.42%,策略年化收益也从-5.98%提高到了18.34%。

原始版SVM择时模型测试集的策略净值

这就是改进了“因子参数”的结果,你还可以调整SVM模型参数、因子标准化方法、因子中性化/正交化方法等等。

~~~~~~建模结束分割线~~~~~~

荀子的《劝学》中有云:君子性非异也,善假于物也。有些事情看上去很牛掰,也许只是善于利用工具的缘故罢了,你会用了,你也可以很牛掰,10w+因子都不在话下。

本文地址:https://www.vps345.com/4631.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 javascript 前端 chrome edge 进程 操作系统 进程控制 Ubuntu python MCP ssh 阿里云 网络 网络安全 网络协议 llama 算法 opencv 自然语言处理 神经网络 语言模型 ubuntu deepseek Ollama 模型联网 API CherryStudio 数据库 centos oracle 关系型 安全 分布式 RTSP xop RTP RTSPServer 推流 视频 HCIE 华为 数通 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 java 面试 性能优化 jdk intellij-idea 架构 numpy harmonyos 开发语言 typescript 计算机网络 flutter Dell R750XS ssl php android 鸿蒙 rust http macos adb 深度学习 YOLO 目标检测 计算机视觉 人工智能 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse spring boot 后端 tomcat LDAP vscode 笔记 maven intellij idea docker 容器 .netcore nginx 监控 自动化运维 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 WSL2 运维开发 windows websocket web安全 Kali Linux 黑客 渗透测试 信息收集 django flask web3.py 前端框架 DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 机器学习 jmeter 软件测试 DeepSeek-R1 API接口 github 创意 社区 sqlserver live555 rtsp rtp WSL win11 无法解析服务器的名称或地址 Hyper-V WinRM TrustedHosts 计算机外设 电脑 mac 软件需求 apache Qwen2.5-coder 离线部署 jenkins 嵌入式硬件 vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 AI Agent pycharm ide 微信 微信分享 Image wxopensdk pytorch transformer asm pip conda c# golang cpu 内存 实时 使用 物联网 iot Flask FastAPI Waitress Gunicorn uWSGI Uvicorn Windsurf YOLOv12 react.js 前端面试题 node.js 持续部署 YOLOv8 NPU Atlas800 A300I pro asi_bench chatgpt 大模型 llama3 Chatglm 开源大模型 c语言 qt stm32项目 单片机 stm32 c++ 深度优先 图论 并集查找 换根法 树上倍增 科技 ai 个人开发 AI编程 vue.js cuda cudnn anaconda udp unity 微服务 springcloud C 环境变量 进程地址空间 gitee vim 银河麒麟服务器操作系统 系统激活 GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 ollama下载加速 uni-app 负载均衡 oceanbase rc.local 开机自启 systemd 麒麟 ping++ 僵尸进程 ESP32 ollama llm 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 tcp/ip ffmpeg 音视频 实时音视频 audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 温湿度数据上传到服务器 Arduino HTTP 智能路由器 外网访问 内网穿透 端口映射 学习 json html5 firefox .net 产品经理 agi microsoft WebRTC gpt zabbix 恒源云 信息与通信 爬虫 数据集 CPU 主板 电源 网卡 iftop 网络流量监控 vSphere vCenter 软件定义数据中心 sddc express okhttp CORS 跨域 jupyter LLM 大模型面经 职场和发展 Deepseek 大模型学习 缓存 经验分享 学习方法 HarmonyOS Next Linux PID https mysql make命令 makefile文件 gitlab kubernetes k8s opensearch helm 自动化 WebUI DeepSeek V3 DeepSeek AI大模型 远程工作 micropython esp32 mqtt 大语言模型 LLMs Dify 开源 Python 网络编程 聊天服务器 套接字 TCP 客户端 Socket 大模型微调 efficientVIT YOLOv8替换主干网络 TOLOv8 虚拟化 半虚拟化 硬件虚拟化 Hypervisor ci/cd devops mongodb dubbo MS Materials 系统架构 git 移动云 android studio code-server springsecurity6 oauth2 授权服务器 token sas postgresql pgpool tcpdump 文件系统 路径解析 服务器部署ai模型 pillow 部署 SSL 域名 shell VMware安装Ubuntu Ubuntu安装k8s 云原生 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 echarts 信息可视化 数据分析 网页设计 框架搭建 3d 测试工具 1024程序员节 jar spring mcu RAGFLOW RAG 检索增强生成 文档解析 大模型垂直应用 W5500 OLED u8g2 TCP服务器 k8s集群资源管理 云原生开发 hadoop remote-ssh 统信 国产操作系统 虚拟机安装 eureka RustDesk自建服务器 rustdesk服务器 docker rustdesk 大数据 Linux redis selete 高级IO 技能大赛 编辑器 医疗APP开发 app开发 ros2 moveit 机器人运动 pyqt java-ee Redis Desktop openwrt 程序人生 RTMP 应用层 ux 多线程 selenium 低代码 open Euler dde deepin 统信UOS 雨云 NPS 向日葵 eNSP 网络规划 VLAN 企业网络 wireshark 显示过滤器 安装 ICMP Wireshark安装 网工 pygame 华为od OD机试真题 华为OD机试真题 服务器能耗统计 搜索引擎 linux环境变量 虚拟机 VMware string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap adobe 传统数据库升级 银行 游戏服务器 TrinityCore 魔兽世界 prometheus k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 webrtc opcua opcda KEPServer安装 AIGC oneapi open webui 北亚数据恢复 oracle数据恢复 MQTT 消息队列 dba 源码剖析 rtsp实现步骤 流媒体开发 safari Mac 系统 pdf NFS redhat VSCode 多线程服务器 Linux网络编程 visual studio code FTP 服务器 XCC Lenovo spring cloud 雨云服务器 繁忙 服务器繁忙 解决办法 替代网站 汇总推荐 AI推理 能力提升 面试宝典 技术 IT信息化 Docker Compose docker compose docker-compose 崖山数据库 YashanDB 直播推流 list 数据结构 fpga开发 skynet 鸿蒙系统 TRAE visualstudio 相差8小时 UTC 时间 Java netty Playwright 自动化测试 驱动开发 硬件工程 嵌入式实习 图形化界面 kvm 无桌面 命令行 RAID RAID技术 磁盘 存储 risc-v ESXi dify ip命令 新增网卡 新增IP 启动网卡 Trae IDE AI 原生集成开发环境 Trae AI Cline ecmascript nextjs react reactjs wsl2 wsl matlab bootstrap html AI代码编辑器 流式接口 程序员 计算机 DevEco Studio GCC crosstool-ng debian Samba NAS 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Kylin-Server 服务器安装 css 政务 分布式系统 监控运维 Prometheus Grafana EasyConnect Google pay Apple pay 服务器主板 AI芯片 宕机切换 服务器宕机 交互 bonding 链路聚合 压测 ECS bash rocketmq threejs 3D ssrf 失效的访问控制 多层架构 解耦 virtualenv Minecraft etcd 数据安全 RBAC 分析解读 代码调试 ipdb 企业微信 Linux24.04 xrdp 远程桌面 远程连接 金融 数据挖掘 腾讯云大模型知识引擎 ansible playbook 报错 iDRAC R720xd 环境迁移 freebsd PVE gpu算力 Ubuntu 24.04.1 轻量级服务器 JAVA XFS xfs文件系统损坏 I_O error 毕设 MacMini 迷你主机 mini Apple es jvm 磁盘监控 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos sqlite3 华为云 excel springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 rpc 远程过程调用 Windows环境 go 代理模式 C语言 svn 串口服务器 X11 Xming gitea 媒体 微信公众平台 web C# MQTTS 双向认证 emqx 多进程 远程 命令 执行 sshpass 操作 minio VR手套 数据手套 动捕手套 动捕数据手套 gradle KVM 压力测试 av1 电视盒子 机顶盒ROM 魔百盒刷机 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 微信小程序 firewalld ecm bpm 数学建模 jetty undertow UOS 统信操作系统 yum 命名管道 客户端与服务端通信 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 SSH Erlang OTP gen_server 热代码交换 事务语义 课程设计 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 ip idm 音乐服务器 Navidrome 音流 ddos chrome devtools chromedriver 目标跟踪 OpenVINO 推理应用 MQTT协议 消息服务器 代码 开机自启动 ArcTS 登录 ArcUI GridItem arkUI zotero WebDAV 同步失败 hugo ue4 着色器 ue5 虚幻 nuxt3 服务器配置 Cursor 测试用例 功能测试 ruoyi rabbitmq AI写作 AI作画 QQ 机器人 bot Docker IIS服务器 IIS性能 日志监控 聊天室 dell服务器 硬件架构 Reactor 设计模式 C++ IIS .net core Hosting Bundle .NET Framework vs2022 状态管理的 UDP 服务器 Arduino RTOS r语言 数据可视化 嵌入式 linux驱动开发 arm开发 集成学习 集成测试 生物信息学 openEuler 其他 进程信号 mariadb CLion 腾讯云 小游戏 五子棋 sql KingBase 图像处理 指令 软件工程 curl wget 交换机 硬件 设备 GPU PCI-Express chfs ubuntu 16.04 mybatis nvidia vscode 1.86 unix RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 弹性计算 云服务器 裸金属服务器 弹性裸金属服务器 mysql离线安装 ubuntu22.04 mysql8.0 springboot 设置代理 实用教程 protobuf 序列化和反序列化 混合开发 环境安装 JDK kylin 网络穿透 智能手机 Termux Nuxt.js webstorm linux 命令 sed 命令 SSH 服务 SSH Server OpenSSH Server DeepSeek行业应用 Heroku 网站部署 强制清理 强制删除 mac废纸篓 基础入门 编程 postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 Dell HPE 联想 浪潮 centos-root /dev/mapper yum clean all df -h / du -sh 蓝耘科技 元生代平台工作流 ComfyUI Ark-TS语言 next.js 部署next.js 边缘计算 智能硬件 asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 minicom 串口调试工具 mosquitto sqlite 服务器管理 宝塔面板 配置教程 网站管理 openssl 密码学 gateway Clion Nova ResharperC++引擎 Centos7 远程开发 剧本 模拟退火算法 mq kafka Ubuntu Server Ubuntu 22.04.5 博客 数据库系统 VMware安装mocOS macOS系统安装 飞牛NAS 飞牛OS MacBook Pro hibernate docker命令大全 kamailio sip VoIP 大数据平台 微信开放平台 微信公众号配置 rust腐蚀 安全威胁分析 grafana IPMI gcc 漏洞 unity3d 银河麒麟 kylin v10 麒麟 v10 系统开发 binder 车载系统 framework 源码环境 Xterminal elasticsearch Docker Hub docker pull 镜像源 daemon.json Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 豆瓣 追剧助手 迅雷 nas uniapp vue web3 AD域 ios iphone 实习 反向代理 tcp Claude c AnythingLLM AnythingLLM安装 毕昇JDK big data 大模型入门 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 本地部署AI大模型 飞书 LInux 我的世界服务器搭建 minecraft vasp安装 cnn DenseNet sysctl.conf vm.nr_hugepages AutoDL CrewAI qemu libvirt 安卓 bug IPMITOOL BMC 硬件管理 WebVM 并查集 leetcode 端口测试 can 线程池 田俊楠 Headless Linux 系统安全 GoogLeNet 华为认证 网络工程师 群晖 飞牛 asp.net大文件上传下载 中间件 iis 云服务 鲲鹏 单例模式 linux上传下载 华为机试 MacOS录屏软件 zookeeper nfs mamba Vmamba Anolis nginx安装 linux插件下载 USB网络共享 监控k8s集群 集群内prometheus outlook ruby 蓝桥杯 无人机 银河麒麟操作系统 国产化 ssh漏洞 ssh9.9p2 CVE-2025-23419 回显服务器 UDP的API使用 做raid 装系统 armbian u-boot 大模型教程 docker run 数据卷挂载 交互模式 vmware 卡死 ldap 自动化编程 npm CH340 串口驱动 CH341 uart 485 bcompare Beyond Compare 模拟器 教程 知识库 RAGFlow 本地知识库部署 DeepSeek R1 模型 etl ai小智 语音助手 ai小智配网 ai小智教程 esp32语音助手 diy语音助手 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 ftp ui 升级 CVE-2024-7347 黑客技术 URL VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 本地部署 api 架构与原理 超融合 vscode1.86 1.86版本 ssh远程连接 telnet 远程登录 昇腾 npu 孤岛惊魂4 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors cpp-httplib 链表 MI300x 嵌入式Linux IPC matplotlib Linux的基础指令 单一职责原则 Unity Dedicated Server Host Client 无头主机 实战案例 EMUI 回退 降级 elk perf rime linux安装配置 hive DBeaver 数据仓库 kerberos kali 共享文件夹 网络用户购物行为分析可视化平台 大数据毕业设计 产测工具框架 IMX6ULL 管理框架 历史版本 下载 可信计算技术 apt 文件分享 软件构建 性能测试 openstack Xen spark HistoryServer Spark YARN jobhistory CDN 游戏程序 cfssl embedding sentinel P2P HDLC 思科 rsyslog nac 802.1 portal 单元测试 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 自定义客户端 SAS midjourney 僵尸世界大战 游戏服务器搭建 Logstash 日志采集 IM即时通讯 剪切板对通 HTML FORMAT 灵办AI 代码托管服务 安全架构 远程控制 远程看看 远程协助 LORA NLP 佛山戴尔服务器维修 佛山三水服务器维修 v10 软件 edge浏览器 ROS 自动驾驶 swoole 三级等保 服务器审计日志备份 c/c++ 串口 阿里云ECS 实时互动 ceph 用户缓冲区 模拟实现 干货分享 黑客工具 密码爆破 tensorflow Linux环境 trae 支付 微信支付 开放平台 软考 多个客户端访问 IO多路复用 TCP相关API 网络结构图 yaml Ultralytics 可视化 联想开天P90Z装win10 SSE 深度求索 私域 交叉编译 LLM Web APP Streamlit gpt-3 文心一言 less 执法记录仪 智能安全帽 smarteye tailscale derp derper 中转 triton 模型分析 矩阵 线性代数 电商平台 网络攻击模型 互信 SenseVoice C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 大模型应用 DOIT 四博智联 序列化反序列化 IPv4 子网掩码 公网IP 私有IP 匿名管道 主从复制 Kali 渗透 frp cursor windows日志 aws seatunnel 开发环境 SSL证书 版本 视觉检测 thingsboard VMware创建虚拟机 composer 安防软件 odoo 服务器动作 Server action tidb GLIBC Ubuntu共享文件夹 共享目录 Linux共享文件夹 python3.11 视频编解码 trea idea 宠物 毕业设计 免费学习 宠物领养 宠物平台 Cookie 双系统 GRUB引导 Linux技巧 小艺 Pura X Ubuntu22.04 开发人员主页 uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 ipython uv glibc Jellyfin FunASR ASR file server http server web server FTP服务器 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 自学笔记 小米 澎湃OS Android prompt IO模型 软负载 AI-native Docker Desktop Wi-Fi 程序员创富 键盘 Spring Security 我的世界 我的世界联机 数码 Invalid Host allowedHosts 7z 输入法 camera Arduino 电子信息 n8n 工作流 workflow IDEA rnn ISO镜像作为本地源 vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 arcgis keepalived MNN Qwen MCP server C/S 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 xshell termius iterm2 neo4j 数据库开发 database g++ g++13 lua gaussdb IMX317 MIPI H265 VCU H3C xss xcode 服务网格 istio 常用命令 文本命令 目录命令 rdp 远程服务 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer Netty 即时通信 NIO 音乐库 SWAT 配置文件 服务管理 网络共享 思科模拟器 Cisco 代理 saltstack 前后端分离 分布式训练 Typore kind 线程 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 AI agent DNS 语法 算力 DeepSeek r1 Open WebUI cd 目录切换 googlecloud OpenManus qt项目 qt项目实战 qt教程 muduo 宝塔 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP arm 策略模式 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 clickhouse 图形渲染 社交电子 黑苹果 ArkTs ArkUI 实验 sdkman 技术共享 eclipse 计算虚拟化 弹性裸金属 游戏引擎 王者荣耀 SysBench 基准测试 bat 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? alias unalias 别名 显示管理器 lightdm gdm Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 云电竞 云电脑 todesk 直流充电桩 充电桩 p2p 源码 regedit 开机启动 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 ragflow 京东云 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 HTTP 服务器控制 ESP32 DeepSeek 迁移指南 权限 备选 网站 调用 示例 Hive环境搭建 hive3环境 Hive远程模式 自动化任务管理 pppoe radius 致远OA OA服务器 服务器磁盘扩容 webgl easyui langchain 游戏机 dns 银河麒麟桌面操作系统 Kylin OS fd 文件描述符 飞牛nas fnos flash-attention log4j 查询数据库服务IP地址 SQL Server yum源切换 更换国内yum源 语音识别 ocr xml Radius vr 虚拟显示器 cmos 业界资讯 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 epoll 银河麒麟高级服务器 外接硬盘 Kylin 重启 排查 系统重启 日志 原因 flink 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 EMQX 通信协议 VS Code 移动魔百盒 USB转串口 工业4.0 AISphereButler 5G 3GPP 卫星通信 邮件APP 免费软件 根服务器 DocFlow ukui 麒麟kylinos openeuler 同步 备份 建站 阻塞队列 生产者消费者模型 服务器崩坏原因 laravel 小智AI服务端 xiaozhi TTS junit Java Applet URL操作 服务器建立 Socket编程 网络文件读取 AD 域管理 Linux的权限 网站搭建 serv00 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 监控k8s 监控kubernetes 火绒安全 VPS 需求分析 规格说明书 影刀 #影刀RPA# 软链接 硬链接 粘包问题 react native 基础环境 figma 流水线 脚本式流水线 镜像 wpf SVN Server tortoise svn navicat nvm whistle ABAP 信号处理 问题解决 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 Qwen2.5-VL vllm kotlin ssh远程登录 Attention 虚幻引擎 virtualbox 存储维护 NetApp存储 EMC存储 浏览器开发 AI浏览器 TrueLicense HarmonyOS 大大通 第三代半导体 碳化硅 Windows ai工具 java-rocketmq 烟花代码 烟花 元旦 性能调优 安全代理 嵌入式系统开发 内网环境 h.264 rustdesk 项目部署到linux服务器 项目部署过程 banner 程序 autodl rclone AList webdav fnOS 磁盘清理 powerpoint 环境配置 dity make searxng Deepseek-R1 私有化部署 推理模型 PPI String Cytoscape CytoHubba gnu Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 软件卸载 系统清理 IMM 智能音箱 智能家居 性能分析 抗锯齿 word 拓扑图 知识图谱 中兴光猫 换光猫 网络桥接 自己换光猫 firewall deekseek 多端开发 智慧分发 应用生态 鸿蒙OS TCP协议 milvus QT 5.12.12 QT开发环境 Ubuntu18.04 健康医疗 互联网医院 wsgiref Web 服务器网关接口 UOS1070e 换源 国内源 Debian ardunio BLE MVS 海康威视相机 推荐算法 聚类 元服务 应用上架 GIS 遥感 WebGIS 加解密 Yakit yaklang visual studio 虚拟局域网 PX4 强化学习 proxy模式 ranger MySQL8.0 onlyoffice 在线office OpenSSH 网卡的名称修改 eth0 ens33 top Linux top top命令详解 top命令重点 top常用参数 cocoapods 显卡驱动 流量运营 ubuntu20.04 ros ros1 Noetic 20.04 apt 安装 容器技术 yolov8 jina SSH 密钥生成 SSH 公钥 私钥 生成 人工智能生成内容 SRS 流媒体 直播 dash 正则表达式 信号 db docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 iperf3 带宽测试 seleium 对比 工具 meld DiffMerge 信创 信创终端 中科方德 开发 css3 Unity插件 iventoy VmWare OpenEuler lio-sam SLAM 项目部署 云桌面 微软 AD域控 证书服务器 wps Node-Red 编程工具 流编程 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK ubuntu24.04.1 游戏开发 fast 代理服务器 端口 查看 ss deployment daemonset statefulset cronjob 带外管理 服务器时间 读写锁 AI Agent 字节智能运维 办公自动化 自动化生成 pdf教程 KylinV10 麒麟操作系统 Vmware grub 版本升级 扩容 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 aarch64 编译安装 HPC sonoma 自动更新 iBMC UltraISO 防火墙 NAT转发 NAT Server pyautogui dns是什么 如何设置电脑dns dns应该如何设置 树莓派 VNC ShenTong rag ragflow 源码启动 运维监控 域名服务 DHCP 符号链接 配置 端口聚合 windows11 x64 SIGSEGV xmm0 合成模型 扩散模型 图像生成 大模型部署 Linux find grep 钉钉 查看显卡进程 fuser ArtTS vpn 个人博客 OpenHarmony 真机调试 抓包工具 System V共享内存 进程通信 鸿蒙开发 移动开发 捆绑 链接 谷歌浏览器 youtube google gmail miniapp 调试 debug 断点 网络API请求调试方法 HiCar CarLife+ CarPlay QT RK3588 UDP docker desktop image sequoiaDB AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 网络建设与运维 MacOS NLP模型 xpath定位元素 CentOS SEO Mac内存不够用怎么办 prometheus数据采集 prometheus数据模型 prometheus特点 相机 大模型推理 MDK 嵌入式开发工具 论文笔记 sublime text deep learning docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 企业网络规划 华为eNSP llama.cpp 本地化部署 win服务器架设 windows server nlp 考研 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 私有化 su sudo 玩机技巧 软件分享 软件图标 Xinference MySql 状态模式 金仓数据库 2025 征文 数据库平替用金仓 ubuntu24 vivado24 HAProxy 免费域名 域名解析 harmonyOS面试题 物联网开发 perl HarmonyOS NEXT 原生鸿蒙 hexo 李心怡 deepseek r1 fstab 极限编程 Python基础 Python教程 Python技巧 WLAN 内网服务器 内网代理 内网通信 服务器正确解析请求体 yum换源 AI员工 开机黑屏 IO 网络爬虫 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR CentOS Stream 沙盒 nosql Sealos 论文阅读 macOS MobaXterm 网络搭建 神州数码 神州数码云平台 云平台 西门子PLC 通讯 多路转接 计算生物学 生物信息 基因组 dock 加速 搜狗输入法 中文输入法 DIFY 风扇控制软件 kernel 搭建个人相关服务器 浏览器自动化 yolov5 热榜 欧标 OCPP vu大文件秒传跨域报错cors conda配置 conda镜像源 js rpa 稳定性 看门狗 达梦 DM8 WSL2 上安装 Ubuntu 云耀服务器 接口优化 k8s二次开发 离线部署dify mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 数字证书 签署证书 hosts 智能电视 解决方案 docker部署Python 通信工程 毕业