[Kaggle比赛] 高频股价预测小结

高频股价预测

文章目录

  • 高频股价预测
  • 问题描述
  • 问题分析
  • 数据分析
    • 数据集
    • 数据清洗
  • 解决方案
    • 数据预处理
      • 归一化
      • Prices
      • Volume
      • 时间信息
      • 对于预测值的处理
      • 噪声
    • 模型探索
      • 基于LSTM的RNN模型
        • 递归神经网络(RNN)
        • 长短期记忆(LSTM)网络
        • 模型实现
        • 参数调整
      • 卷积神经网络
        • 卷积神经网络
        • 模型实现
      • 全链接的神经网络模型
        • 神经网络模型
        • 模型实现
      • 利用XGBoost创建的模型
        • XGBoost介绍
        • 模型实现
        • 参数调整
      • 随机回归森林模型
        • 模型实现
        • 参数调整
  • 结果与讨论
    • 结果
    • 讨论:模型
    • 讨论:模型之外
    • 未来的工作

问题描述

Kaggle 比赛: CS410/EI339 Fall18’ Stock Price Prediction

  • 通过对交易委托账本(订单簿)中数据的学习,给定特定一只股票10个时间点股票的订单簿信息,预测下20个时间点中间价的均值。
  • 评价标准为均方根误差。
    RMSE ⁡ ( θ ^ ) = MSE ⁡ ( θ ^ ) = E ⁡ ( ( θ ^ − θ ) 2 ) \operatorname{RMSE}(\hat{\theta}) = \sqrt{\operatorname{MSE}(\hat{\theta})} = \sqrt{\operatorname{E}((\hat{\theta}-\theta)^2)} RMSE(θ^)=MSE(θ^) =E((θ^θ)2)
  • 交易时间为工作日9:30-11:30,13:00-15:00,快照频率3秒。
  • 股价的形成分为集合竞价和连续竞价
    – 集合竞价:9:15-9:25,开盘集合竞价,确定开盘价
    – 连续竞价:9:30之后,根据买卖双方的委托形成的价格
  • 竞价原则:价格优先,时间优先。
  • 交易委托账本具体信息:
    – Date - 日期
    – Time - 时间
    – MidPrice - 中间价(买入价与卖出价的平均值)
    – LastPirce - 最新成交价
    – Volume - 当日累计成交数量
    – BidPrice1 - 申买最高价
    – BidVolume1 - 申买最高价对应的量
    – AskPrice1 - 申卖最高价
    – AskVolume1 - 申卖最高价对应的量

问题分析

高频交易,是指从那些人们无法利用的、极为短暂的市场变化中寻求获利的自动化程序交易,比如某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。这种交易的速度如此之快,以至于有些交易机构将自己的“服务器群组”安置到了离交易所的服务器很近的地方,以缩短交易指令通过光缆以光速传送的时间。一般是以电脑买卖盘程式进行非常高速的证券交易,从中赚取证券买卖价格的差价。1

在这个问题中,我们利用10个时间点股票的订单簿信息,预测特定一只股票下20个时间点中间价的均值,来判断其在一分钟内的价格变化特征,以便于高频交易。高频交易的意义在于,对于人类来说,很难在一分钟之内判断出股价变化情况,并完成交易。因此,只能利用计算机进行自动化交易。

对于无信息无模型预测,即利用订单簿中最后一个价格“预测”,得到的均方根误差为0.00155。试图通过分析数据、建立模型,做出高于此误差的预测。

数据分析

数据集

训练集(raw training data,train_data.csv):430039条订单簿信息
测试集(test data, test_data.csv):1000条(100组)订单簿信息
为了避免概念的混淆,下文中如果特别说明,“测试集”均指public board所依赖的数据。此外,这里的“训练集”下文中包含经过数据清理和预处理的训练集(training data)和验证集(development data)。

数据清洗

为了将训练集转换为测试集的格式,即通过10个间隔3秒的订单簿记录,来预测后20个间隔3秒的订单簿记录中中间价的均值,必须对数据清洗。

  • 将训练集集中连续的 n G i v e n + n P r e d i c t nGiven + nPredict nGiven+nPredict 2 条数据作为一组数据。
  • 检查每一组数据,去掉含有时间差不为3秒的连续两条数据的组。这样可以跳过跨天的以及不规整的数据。

解决方案

数据预处理

归一化

给定的数据特征(日期、时间、价格、成交量等)的量纲不同,并且数据绝对值差的较大。如测试集第一条数据:
测试集第一条数据MidPrice和Volume差6个数量级。

首先,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确地收敛到最优解。3

其次,在支持向量机(SVM)等不具有伸缩不变性的模型中,大数量级的数据会掩盖小数量级的数据。这是因为随机进行初始化后,各个数据拥有同样的或近似的缩放比例,相加之后小数量级的数据便被大数量级的数据“吃掉了”。

此外,对于具有伸缩不变性的模型,如逻辑回归,进行归一化也有助于模型更快地收敛。

综上所述,对模型进行归一化是十分有必要的。

Prices

训练集MidPrice分布:
训练集MidPrice分布

测试集MidPrice分布:
测试集MidPrice分布
从上面两张图片中可以看出,训练集和测试集中最重要的特征以及待遇测量——中间价只有约三分之一重合。这意味着如果按照数值直接进行归一化,可能会有较差的结果。

我采取的第一种方式是预测差值——+即每组数据待预测量——下20条数组中MidPrice的均值与最后一个MidPrice的差值,并将各个价格减去最后一个MidPriced的值,这样可以使训练集和验证集分布更为接近,但是这样造成的问题是,在量纲存在的情况下,最后一个MidPriced的值仍是有价值的,将它直接消去不合适。

第二种方式是完全消除量纲,将预测任务变为变化率的预测。即将所有与Price相关的变量都减去并除以最后一条数组的中间价。这样就可以将量纲完全消除。

last_mp = x_cur[nGiven-1,0]
for axis in [0,1,3,5]: # MidPrice, LastPrice, BidPrice1, AskPrice1x_cur[:,axis] -= last_mpx_cur[:,axis] /= last_mp
...
y.append((sum(mid_price[k+nGiven:k+nGiven+nPredict])/nPredict-mid_price[k+nGiven-1])/mid_price[k+nGiven-1])

Volume

Volume是指当日累计成交数量。在每组数据中,Volume的大小差别很大,这主要是因为每组数据开始的时间不同。开始,我试图保留时间信息和Volume,来更好地利用Volume信息。事实上,虽然一天中的Volume是相关的,但是几乎不可能通过时间信息来估计Volume,何况高频交易簿的精度很高。因此,通过加入时间信息避免对Volume的归一化是不可行的。

第二个尝试是利用类似于对Prices的处理,将每组数据中的Volume减去该组数据中第一条数据的Volume。但这样效果并不好,这是因为Volume在一组中是递增的,将它们进行如上处理后仍是递增的,利用普通的归一化手段无法将它们映射在同一尺度上。

第三种尝试是利用变化量。将每一组Volume数据减去上一条信息的Volume,将这个特征转化为:3秒内累计成交数量。至此,每组/条数据的Volume便为同一分布了。此外,对于第一条数据,没有办法得知它与上一条数据(没有给出)的差值,只能用均值填充。具体方法是利用迄“今”(这条数据)为止得到的Volume插值的均值。

for i in range(9,0,-1):x_cur[i,2]-=x_cur[i-1,2]volume_sum+=x_cur[i,2]volume_len+=1
x_cur[0,2]=volume_sum/volume_len

时间信息

由于时间是递增的,可以通过将它们映射在每一天(即,删除日期,保留时间),然后进行预测。但是由于数据只有约120天,将它们映射在每一个时间点会导致这部分数据过于稀疏。因此,在保证每组数据中,每连续两条数据的时间差值为3秒的情况下,可以直接将时间信息删除。

此外,我发现在多种模型的实验中,是否将时间信息加入并不会有太大的改变。

对于预测值的处理

在前文中提到过,将预测数值任务改变为预测变化率的任务。这样做除了为了消除量纲,更主要的原因是加快收敛。若果不进行这样的处理,对于CNN/DNN/RNN等基于神经网络的模型,需要大约20epoch才能收敛到baseline RMSE=0.00155,但是如果采取变化率预测,只需要一个epoch就可以收敛到RMSE=0.00149.4

因此,如果不进行这样的处理,将会极度增加训练的时间,对调参和模型分析造成很大困难。

噪声

  1. 加入噪声。对于某些数据而言——尤其是Price相关的数据,由于有很多组相同或相似的数组以及线性映射的不变性,导致处理后结果是离散的。因此,我在每个值中加入±1%的噪声,以提高模型的泛化能力。
  2. 降低噪声。在固定模型的情况下,我发现改变任务为预测下15条数据的中间价均值,亦或是下10条数据的中间价均值,得到的leaderboard成绩要优于预测下20条的数据的中间价均值。我想这是因为通过跨度为30秒的10条数据可能无法预测到更远的时间点,如跨度为60秒的20条数据中的后几条数据。在没有更多信息的情况下,很可能之后的数值对于预测来说是噪声。在实验中也证明了这一点,后文将会详细说明。在下文中将这个nPredict“超参数”视为MN(Magic Number)。

模型探索

基于LSTM的RNN模型

这个模型是我所实现最优的模型,因此我将其以Kernel的形式发布在了Kaggle上。

采取这个模型的主要原因是基于LSTM的RNN模型具有很好的处理时间序列的能力。

递归神经网络(RNN)

循环神经网络(Recurrent Neural
Network,RNN)是一类具有短期记忆能力的神经网络。在循环神经网络中,神经元不但可以接受其它神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构。循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。循环神经网络的参数学习可以通过随时间反向传播算法 [Werbos, 1990] 来学习。随时间反向传播算法即按照时间的逆序将错误信息一步步地往前传递。当输入序列比较长时,会存在梯度爆炸和消失问题[Bengio et al., 1994, Hochreiter and Schmidhuber, 1997, Hochreiteret al., 2001],也称为长期依赖问题。为了解决这个问题,人们对循环神经网络进行了很多的改进,其中最有效的改进方式引入门控机制。5

RNN

长短期记忆(LSTM)网络

长短期记忆(long short-term memory,LSTM)网络 [Gers et al., 2000, Hochreiter and Schmidhuber, 1997]是循环神经网络的一个变体,可以有效地解 决简单循环神经网络的梯度爆炸或消失问题。 在公式(6.48)的基础上,LSTM网络主要改进在以下两个方面: 新的内部状态 LSTM网络引入一个新的内部状态(internal state) c t c_t ct 专门进行 线性的循环信息传递,同时(非线性)输出信息给隐藏层的外部状态 h t h_t ht
在每个时刻t,LSTM网络的内部状态 c t c_t ct记录了到当前时刻为止的历史信息。
循环神经网络中的隐状态h存储了历史信息,可以看作是一种记忆(memory)。在简单循环网络中,隐状态每个时刻都会被重写,因此可以看作是一种短 期记忆(short-term memory)。在神经网络中,长期记忆(long-term memory)可以看作是网络参数,隐含了从训练数据中学到的经验,并更新周期要远远慢于短期记忆。而在LSTM网络中,记忆单元c可以在某个时刻捕捉到某个关键信息,并有能力将此关键信息保存一定的时间间隔。记忆单元c中保存信息的生命周期要长于短期记忆h,但又远远短于长期记忆,因此称为长的短期记忆(long short-term memory)。5

LSTM

模型实现

利用Keras框架,实现基于LSTM的RNN模型。具体结构为两层LSTM网络和两层Dense层网络。试图利用LSTM网络提取时间序列中的特征信息,并利用Dense层将提取出的特征信息进行回归。

model = Sequential()
model.add(LSTM(input_shape=(None, nFeature),activation='softsign',dropout=0.5, units=256, return_sequences=True))
model.add(LSTM(units=256,activation='softsign',dropout=0.5, return_sequences=False))
model.add(Dense(64,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1,kernel_initializer="uniform",activation='linear'))
model.compile(loss='mean_squared_error', optimizer='Adam')

在这个较大的模型中,为了防止过拟合训练集和验证集,我采取了以下的措施:

  • 在全连接(Dense)层和LSTM层中,加入Dropout。在训练中,dropout掉近似50%的参数,可以将网络模型减小至一半。在实验发现,减小至该网络一半的网络更不容易出现过拟合的情况(下文中会详细说明)。
  • 提前结束训练(Early-stopping)。在两个相同的网络中,改变MN(即nPredict)的值,得到如下的测试集RMSE~epochs。由此可见,Early-stopping是非常有必要的。

Early-stopping
注:MN=20的同样模型RMSE最好达到0.00148。

参数调整

我没有进行大规模的网格搜索以确定最好的超参数,我主要调整了网络的规模。基本想法是先选择一个较大的网络,训练至过拟合,判断其有足够拟合数据的能力,然后减小网络规模或进行正则化,消除过拟合以保留足够的泛化能力。

大网络(units = 256):
大网络

中网络(units = 128):
中网络

小网络(units = 64):
小网络

在实验中发现,三个网络均会产生过拟合的问题。但是很明显小网络的拟合能力不足(在更大的RSME开始出现过拟合),而大网络的拟合能力极其严重。于是我选择了中网络规模的网络——大网络+50%dropout。

卷积神经网络

采取这个模型的主要原因是卷积神经网络模型可以通过共享 ( 1 , n F e a t u r e ) (1,nFeature) (1,nFeature)卷积核减少参数,并将一组中每条数据进行同样地处理。

卷积神经网络

卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。6

卷积神经网络

模型实现

利用Keras框架,实现卷积神经网络模型。具体结构为两层卷积网络和三层Dense层网络。其中两层卷积网络分别为 1 ∗ 7 1*7 17卷积核和 10 ∗ 1 10*1 101卷积核。

model = Sequential()
model.add(Conv2D(input_shape=(10,7,1),filters = 256, kernel_size = (1,7), strides=(1, 1), padding='valid',activation='relu'))
model.add(Dropout(0.5))
model.add(Conv2D(filters = 256, kernel_size = (10,1), strides=(1, 1), padding='valid',activation='relu'))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(512,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(256,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1,kernel_initializer="uniform",activation='linear'))
model.compile(loss='mean_squared_error', optimizer='Adam')

全链接的神经网络模型

神经网络模型的主要优点是具有极强的近似能力:模型可以以任意精度拟合一切连续函数。同时,进行这个模型的尝试,也可以判断卷积神经网络是否比朴素的全链接神经网络模型更好。

神经网络模型

人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能。现代神经网络是一种非线性统计性数据建模工具。7

神经网络

模型实现

利用Keras框架,实现卷积神经网络模型。具体结构为两层卷积网络和三层Dense层网络。其中两层卷积网络分别为 1 ∗ 7 1*7 17卷积核和 10 ∗ 1 10*1 101卷积核。

model = Sequential()
model.add(Flatten(input_shape=(10,7,1)))
model.add(Dense(1024,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(512,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(256,kernel_initializer="glorot_normal",activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1,kernel_initializer="uniform",activation='linear'))
model.compile(loss='mean_squared_error', optimizer='Adam')

利用XGBoost创建的模型

XGBoost介绍

XGBoost代表“Extreme Gradient Boosting”,其中术语“Gradient Boosting”源于弗里德曼的贪婪函数逼近:梯度增强机。8

XGBoost实质上是Gradient boosting Decision Tree(GBDT)的高效实现,如果使用最常用gbtree作为学习器,那么它基本相当于CART分类树。

CART分类回归树是一种典型的二叉决策树,可以做分类或者回归。如果待预测结果是离散型数据,则CART生成分类决策树;如果待预测结果是连续型数据,则CART生成回归决策树。数据对象的属性特征为离散型或连续型,并不是区别分类树与回归树的标准,例如表1中,数据对象xixi的属性A、B为离散型或连续型,并是不区别分类树与回归树的标准。作为分类决策树时,待预测样本落至某一叶子节点,则输出该叶子节点中所有样本所属类别最多的那一类(即叶子节点中的样本可能不是属于同一个类别,则多数为主);作为回归决策树时,待预测样本落至某一叶子节点,则输出该叶子节点中所有样本的均值。 9

模型实现

利用xgboost库,实现XGB模型。

from xgboost import XGBRegressor
from sklearn.model_selection import GridSearchCV
cv_params = {'n_estimators': [600,800,1000,1200,1400,1600]}
other_params = {'learning_rate': 0.1, 'n_estimators': 100, 'max_depth': 4, 'min_child_weight': 5, 'seed': 0,'subsample': 0.6, 'colsample_bytree': 0.9, 'gamma': 0.4, 'reg_alpha': 0, 'reg_lambda': 1}
model = XGBRegressor(**other_params)
optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params,scoring='neg_mean_squared_error', cv=3, verbose=3, n_jobs=5)
optimized_GBM.fit(X_train_70, y_train)

参数调整

利用上述GridSearchCV函数以及类似于Gibbs采样算法的思想,逐步调整参数。具体方法为:首先设置每个参数的取值区间。然后选取某个参数,将其设置为取值区间中等间距的几个点,进行训练模型进行验证,将最好的点设置为这个参数的值,然后选取其他参数,重复着一步,直到参数稳定。

但实验中,由于过拟合情况严重,n_estimators越大会导致近似情况更好,但同时会导致模型的泛化能力降低。于是我通过提交结果,选定了 n _ e s t i m a t o r = 200 n\_estimator=200 n_estimator=200。然后调整其他参数。

随机回归森林模型

简单来说,随机森林就是多个回归树的融合。
随机森林的优势在于

1.在没有验证数据集的时候,可以计算袋外预测误差(生成树时没有用到的样本点所对应的类别可由生成的树估计,与其真实类别比较即可得到袋外预测)。
2.随机森林可以计算变量的重要性。
3.计算不同数据点之间的距离,从而进行非监督分类。10

模型实现

利用sklearn库提供的RandomForestRegressor。

from sklearn.ensemble import RandomForestRegressor
clf = RandomForestRegressor(oob_score = True,max_depth = 20,min_samples_split=20,min_samples_leaf=10,n_estimators=20,random_state=0,verbose=3)
clf.fit(X_train.reshape(-1,70),y_train.reshape((-1,)))

参数调整

这个模型的参数基本是通过经验+与XGB类似的调参方式确定的。高度参考了刘建平的这篇博文[scikit-learn随机森林调参小结]。(https://www.cnblogs.com/pinard/p/6160412.html)

结果与讨论

结果

modelpublic leader board score
RNN(LSTM)*0.00147
CNN0.00149
DNN0.00148
XGBoost0.00149
Random Forest0.00150
None(baseline)0.00155

*private leader board = 0.00140

讨论:模型

  • CNN vs DNN。 利用卷积没有取得更好的结果,这很大原因是数据特征只有7维,没有必要进行降维,因此CNN模型中的池化层(Pooling Layer)无法使用,降低了卷积模型能力。
  • DNN vs RNN。RNN在epoch = 20开始lb = 0.00149,而DNN在较长区间[4,30+] epoches 中一直保持lb = 0.00148,这说明了RNN有更好的拟合时间序列的能力,但同样有着更差的拟合能力,因此必须进行early-stopping防止过拟合。
  • XGB。XGB有着很好的数据拟合能力,但由于调参需要较多的时间(每个模型拟合需要约40分钟),而我没有足够的计算资源,只能放弃更细粒度的调参。
  • Random Forest。和XGB类似,它们对于多维数据的处理可能会比神经网络模型更好,但是在7维的数据中,表现并不如神经网络模型。

讨论:模型之外

在这场比赛中,我发现特征工程的重要性远远超过模型的选取以及调参。在最初的尝试中,我只是简单的进行了数据归一化,得到的结果并不理想,很多次训练的RNN模型有RMSE>0.00155的情况。在认真探索每个数据特征的意义并根据它们的意义进行数据处理后,采取的模型几乎全部RMSE<0.00150。我想,思考特征的特点并思考如何利用是十分关键的。毕竟说白了,这些模型只是泛用函数拟合器。

未来的工作

  • 丰富订单簿信息。可以获得AskPrice2, AskPrice3,… 以及AskVolumn2,AskVolumn3等丰富信息。
  • 采取更多的输入时间点。毕竟过去的数据是“免费”的,我们可以采用如过去一分钟的数据进行预测。但可能结果和MN的情况一样——再多的数据只是噪声。
  • 丰富数据集。用更多股票和更长时间的数据。RNN模型的泛化能力没有被完全利用,我想通过更多的数据可以达到更好的效果。
  • 尝试XGboost的精细调参。
  • 模型融合。如XGBoost+LightGBM+LSTM。

2018/12/31
@karmayh


  1. 维基百科:高频交易 ↩︎

  2. 通常情况下 n G i v e n = 10 , n P r e d i c t = 20 nGiven = 10,nPredict = 20 nGiven=10nPredict=20。但是为了化简模型以及降低噪声,可以减少它们的值,即取10条中后nGiven条作为特征,将20条中前nPredict 条的中间价均值作为待预测量。 ↩︎

  3. 特征工程中的「归一化」有什么作用? ↩︎

  4. 两层LSTM+两层Dense层,不采用Dropout等正则化措施。 ↩︎

  5. 邱锡鹏:《神经网络与深度学习》 ↩︎ ↩︎

  6. Stanford UFLDL Tutorial ↩︎

  7. Wiki 人工神经网络 ↩︎

  8. https://xgboost.readthedocs.io/ ↩︎

  9. 决策树之CART(分类回归树)详解 ↩︎

  10. 云社区 ↩︎

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

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

相关文章

Predict Future Sales 预测未来销量, Kaggle 比赛,LB 0.89896 排名6%

Predict Future Sales 数据分析1. 数据基本处理1.1 读入数据集1.2 基线模型预测1.3 节省存储空间 2. 数据探索2.1 训练集分析 sales_train2.1.1 每件商品的销量2.1.2 每个商店的销量2.1.3 每类商品的销量2.1.4 销量和价格的离群值 2.2 测试集分析2.3 商店特征2.3.1 商店信息清洗…

世界杯押注还得看技术流,这个预测AI把赔率也算上了

胡澎 发自 凹非寺 量子位 报道 | 公众号 QbitAI 世界杯小组赛将收官&#xff0c;你还依然信AI吗&#xff1f; 冷门频出&#xff0c;黑马击败豪强。不少AI模型始料未及。 到底还能不能愉快找到科学规律&#xff1f;或者说足球比赛乃至其他竞技体育赛事&#xff0c;数据科学家在A…

足球大数据预测实战之高胜率盈亏条件验证及优化算法

上周接到一位老用户&#xff0c;之前为他做过数据验证&#xff0c;给出了组合条件下的胜率回查&#xff0c;结果有些难看啊。这期主要介绍常用人工智能算法中在足球预测中的应用&#xff0c;以及数据验证后的实际效果。 由上图为用户依据条件查证后的比赛场次和概率统计。可以看…

苹果手机朝下无法唤醒Siri,这个解决方法你知道吗

Siri对于苹果手机的用户来说是一个非常大的吸引点&#xff0c;能够指挥苹果手机中的Siri去做很多事情&#xff0c;如&#xff1a;放一首歌曲、百度一些知识点、这句话用英语怎么说等等功能。但是&#xff0c;不知道你们有没有发现一般我们苹果手机朝下无法唤醒Siri。是不是觉得…

如何解决Siri无法正常运行的问题

Siri 是一位智能助理,能帮助你在 Apple 设备上更快速轻松地处理各种事务,甚至不用等你开口。 Mac 上的 Siri 可帮助您执行日常任务&#xff0c;如获取问题的快速***、播放音乐等。您可以询问 Siri 几乎任何内容&#xff0c;Siri 都可以为您执行或回答您的问题。如果在使用 Siri…

【推荐实践】多场景多任务学习在美团到店餐饮推荐的实践

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 ChatGPT团队背景研究报告 ChatGPT的发展历程、原理、技术架构及未来方向 ChatGPT使用总结&#xff1a;150个ChatGPT提示此模板 ChatGPT数据集之谜 …

倒计时3天!2023新榜AIGC生态大会看点剧透

倒计时3天&#xff01;「AIGC赋能重塑内容生态」2023新榜AIGC生态大会将于7月14日在北京丽都皇冠假日酒店重磅登场。 内容行业正在步入AI时代。 AIGC&#xff08;AI Generated Content&#xff0c;即人工智能生成内容&#xff09;被认为是继OGC、PGC和UGC之后的新型内容生产方式…

携程平台增长部总经理王绩强:原生互联网企业正在经历一场数字升级丨数据猿专访...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 以大数据和人工智能为核心&#xff0c;众多新兴技术开始赋能数字营销。于是&#xff0c;智能营销已然从工具化走向了业务化。 如今&#xff0c;数字化营销已经成为了企业数字化转型中的重要一环。相较于传统营销逻辑&#x…

技术总监亲自上阵,手撸了个推荐系统!

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 从0到1详解推荐系统基础知识和框架 推荐技术在vivo互联网商业化业务中的实践.pdf 推荐系统基本问题及系统优化路径.pdf 大规模推荐类深度学习系统的…

融合GPT大模型产品,WakeData新一轮产品升级

近期&#xff0c;WakeData惟客数据&#xff08;以下简称 “ WakeData ” &#xff09;完成了新一轮的产品能力升级。就 ToB 企服公司如何融合GPT 大模型&#xff0c;WakeData 给出了自己的答案。 在2022年11月的产品发布会上&#xff0c;已传递出WakeData的“三个坚定”&#x…

借助chatGPT强大的源码理解能力,来快速学习elasticsearch 7.11.1整体源码结构(用chatGPT学源码太香了)

ES阅读学习源码的难处 es的源码非常之多。能够查阅的资料非常少。如果是我们一行一行的去扒着源码看&#xff0c;在我看来至少需要2年的时间&#xff0c;并且至少要耗费四分之一的头发。源码读起来很枯燥&#xff0c;特别是在我们一头雾水的时候。很容易产生放弃的念头。很少有…

大语言模型中的涌现现象是不是伪科学?

深度学习在理论上的孱弱一直被诟病&#xff0c;但科学史上存在大量先有应用再有理论的事例&#xff0c;而其中不能解释的重大实验现象往往预示着理论创新的契机。我们首先从现象出发&#xff0c;来看下LLM中最神秘的emergent ability&#xff0c;如图 上图中x、y轴分别表示模型…

自制开源的 Midjourney、Stable Diffusion “咒语”作图工具

本篇文章聊聊如何通过 Docker 和八十行左右的 Python 代码&#xff0c;实现一款类似 Midjourney 官方图片解析功能 Describe 的 Prompt 工具。 让你在玩 Midjourney、Stable Diffusion 这类模型时&#xff0c;不再为生成 Prompt 描述挠头。 写在前面 本文将提供两个版本的工…

【区块链技术社区】区块链微信群

磨链mochain社区-区块链技术讨论交流不定期进行线上的技术交流学习&#xff0c;技术分享。线下技术交流&#xff0c;成员主要在北京、上海、浙江、广东等地。欢迎&#xff1a;区块链技术大咖、区块链爱好者、区块链技术爱好者、想了解区块链技术的小白不欢迎&#xff1a;广告党…

区块链笔记:典型应用:数据资产、交易系统、即时通信、链上游戏、追踪溯源等

数据资产 1 &#xff09; 详解 这是区块链的一个比较核心的应用&#xff0c;对于软件系统或者说对于互联网系统来讲&#xff0c;对数据的处理、分析、计算&#xff0c;这些功能是属于比较基本的软件功能对于区块链来讲它的核心的功能是在于创新式的提供了一个原先各种软件都没…

靠谱的区块链应用到底是啥?通证啊!——第二次中关村-CSDN区块链开发技术沙龙【含PPT下载】

针对“通证”话题的多篇分析文章预热&#xff0c;本期沙龙在开始前就被区块链网友广泛关注。此次沙龙的参会者经过层层的严格筛选&#xff0c;才得以与众位大咖面对面沟通。 12月15日下午&#xff0c;中关村区块链产业联盟、CSDN、枫玉科技联合举办的区块链系列沙龙。来自中关村…

云图说丨不同区块链之间如何跨链交互?

本文分享自华为云社区《【云图说】第237期 不同区块链之间如何跨链交互&#xff1f;》&#xff0c;作者&#xff1a; 阅识风云。 可信跨链服务是基于一系列制定的可信区块链标准跨链协议&#xff0c;保证跨链交易全栈可追溯、可扩展性及可靠性等&#xff0c;助力不同区块链可…

知乎高赞 | 区块链是什么? (一)

首先不要把区块链想的过于高深&#xff0c;他是一个分布在全球各地、能够协同运转的数据库存储系统&#xff0c;区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上&#xff08;中心化的特征&#xff09;&#xff0c;区块链认为&#xff0c;任何有能力架设服务器…

XuperChain 百度区块链简易学习帖

百度XuperChain基于Ubuntu系统从零开始到部署简单合约 环境配置go语言安装git安装客户端安装 启动私链基本操作命令1. 创建普通用户2. 创建合约账号3. 查询余额4. 转账5. 查询交易信息6. 查询block信息 网络部署&#xff08;选择性阅读&#xff09;1. 创建网络部署环境2. 配置种…

建议收藏,轻松搞懂区块链

未来已来&#xff0c;只是不均衡地分布在当下 大家好&#xff0c;我是菜农&#xff0c;欢迎来到我的频道。 本文共 5844字&#xff0c;预计阅读 30 分钟 区块链是近些年来最热门的前沿技术&#xff0c;被认为是未来十几年对金融、物联网、医疗等诸多领域产生最大影响的"…