亚太杯赛题思路发布(中文版)
导读: 本文将继续修炼回归模型算法,并总结了一些常用的除线性回归模型之外的模型,其中包括一些单模型及集成学习器。
保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归、AdaBoost回归、梯度提升决策树回归、人工神经网络、随机森林回归、多输出随机森林回归、XGBoost回归。
需要面试或者需要总体了解/复习机器学习回归模型的小伙伴可以通读下本文,理论总结加代码实操,有助于理解模型。
本文所用数据说明:所有模型使用数据为股市数据,与线性回归模型中的数据一样,可以做参考,此处将不重复给出。
保序回归
保序回归或单调回归是一种将自由形式的直线拟合到一系列观测值上的技术,这样拟合的直线在所有地方都是非递减(或非递增)的,并且尽可能靠近观测值。
理论规则是
- 如果预测输入与训练中的特征值完全匹配,则返回相应标签。如果一个特征值对应多个预测标签值,则返回其中一个,具体是哪一个未指定。
- 如果预测输入比训练中的特征值都高(或者都低),则相应返回最高特征值或者最低特征值对应标签。如果一个特征值对应多个预测标签值,则相应返回最高值或者最低值。
- 如果预测输入落入两个特征值之间,则预测将会是一个分段线性函数,其值由两个最近的特征值的预测值计算得到。如果一个特征值对应多个预测标签值,则使用上述两种情况中的处理方式解决。
n = len(dataset[
'Adj Close'
])X = np.array(dataset[
'Open'
].values)y = dataset[
'Adj Close'
].valuesfrom sklearn.isotonic import IsotonicRegressionir=IsotonicRegression()y_ir=ir.fit_transform(X,y)
将拟合过程可视化
红色散点图是原始数据X-y
关系图,绿色线为保序回归拟合后的数据X-y_ir
关系图。这里以可视化的形式表现了保序回归的理论规则。
lines=[[[i,y[i]],[i,y_ir[i]]]
for
i
in
range(n)]lc=LineCollection(lines)plt.figure(figsize=(
15
,
6
))plt.plot(X,y,
'r.'
,markersize=
12
)plt.plot(X,y_ir,
'g.-'
,markersize=
12
)plt.gca().add_collection(lc)plt.legend((
'Data'
,
'Isotonic Fit'
,
'Linear Fit'
))plt.title(
"Isotonic Regression"
)plt.show(
多项式回归
多项式回归(PolynomialFeatures)是一种用多项式函数作为自变量的非线性方程的回归方法。
将数据转换为多项式。多项式回归是一般线性回归模型的特殊情况。它对于描述曲线关系很有用。曲线关系可以通过平方或设置预测变量的高阶项来实现。
sklearn中的多项式拟合
X = dataset.iloc[ : ,
0
:
4
].valuesY = dataset.iloc[ : ,
4
].values
from
sklearn.preprocessing
import
PolynomialFeatures
from
sklearn.linear_model
import
LinearRegressionpoly=PolynomialFeatures(degree=
3
)poly_x=poly.fit_transform(X)regressor=LinearRegression()regressor.fit(poly_x,Y)plt.scatter(X,Y,color=
'red'
)plt.plot(X,regressor.predict(poly.fit_transform(X)),color=
'blue'
)plt.show()
以原始数据绘制X-Y
红色散点图,并绘制蓝色的、经过多项式拟合后再进行线性回归模型拟合的直线图。
一元自变量计算三阶多项式
from
scipy
import
*f = np.polyfit(X,Y,
3
)p = np.poly1d(f)print(p)
3 2-6.228e-05x + 0.0023x + 0.9766x + 0.05357
多元自变量的多项式
from
sklearn.preprocessing
import
PolynomialFeatures
from
sklearn
import
linear_modelX = np.array(dataset[[
'Open'
,
'High'
,
'Low'
]].values)Y = np.array(dataset[
'Adj Close'
].values)Y = Y.reshape(Y.shape[
0
],
-1
)poly = PolynomialFeatures(degree=
3
)X_ = poly.fit_transform(X)predict_ = poly.fit_transform(Y)
Pipeline形式
from
sklearn.pipeline
import
PipelineX = np.array(dataset[
'Open'
].values)Y = np.array(dataset[
'Adj Close'
].values)X = X.reshape(X.shape[
0
],
-1
)Y = Y.reshape(Y.shape[
0
],
-1
)Input=[(
'scale'
,StandardScaler()),(
'polynomial'
, PolynomialFeatures(include_bias=
False
)),(
'model'
,LinearRegression())]pipe = Pipeline(Input)pipe.fit(X,Y)yhat = pipe.predict(X)yhat[
0
:
4
]
array([[3.87445269],[3.95484371],[4.00508501],[4.13570206]])
numpy 中的多项式拟合
首先理解nump用于多项式拟合的两个主要方法。
np.poly1d
np.poly1d(c_or_r, r=
False
, variable=
None
)
一维多项式类,用于封装多项式上的"自然"操作,以便上述操作可以在代码中采用惯用形式。如何理解呢?看看下面几个例子。
c_or_r
系数向量
import
numpy
as
npa=np.array([
2
,
1
,
1
])f=np.poly1d(a)print(f)
22 x + 1 x + 1
r=False
是否反推
表示把数组中的值作为根,然后反推多项式。
f=np.poly1d([
2
,
3
,
5
],r=
True
)
#(x - 2)*(x - 3)*(x - 5) = x^3 - 10x^2 + 31x -30
print(f)
3 21 x - 10 x + 31 x - 30
variable=None
表示改变未知数的字母
f=np.poly1d([
2
,
3
,
5
],r=
True
,variable=
'z'
)print(f)
3 21 z - 10 z + 31 z - 30
np.polyfit
np.polyfit(x, y, deg, rcond=
None
, full=
False
, w=
None
, cov=
False
)
最小二乘多项式拟合。
拟合多项式。返回一个系数'p'
的向量,以最小化平方误差的顺序'deg'
,'deg-1',…"0"
。
推荐使用 <numpy.polynomial.polynomial.Polynomial.fit> 类方法,因为它在数值上更稳定。
下图是以原始数据绘制的蓝色X-Y
散点图,以及红色的X
分布图。
X = dataset[
'Open'
].valuesy = dataset[
'Adj Close'
].values
from
sklearn.model_selection
import
train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=
0.25
)plt.figure(figsize=(
10
,
6
))plt.plot(X_train, y_train,
'bo'
)plt.plot(X_test, np.zeros_like(X_test),
'r+')plt.show()
numpy与sklearn中的多项式回归对比
# numpy
model_one = np.poly1d(np.polyfit(X_train, y_train,
1
))preds_one = model_one(X_test)print(preds_one[:
3
])
>>>
[
11.59609048
10.16018804
25.23716889
]
# sklearn
from
sklearn.linear_model
import
LinearRegressionmodel = LinearRegression()model.fit(X_train.reshape(
-1
,
1
), y_train)preds = model.predict(X_test.reshape(
-1
,
1
))preds[:
3
]
>>>
array([
11.59609048
,
10.16018804
,
25.23716889
])
#
预测结果是一样的
print(
"all close?"
, np.allclose(preds, preds_one))
>>>
'all close? True
结果表明两者相比预测结果时一致的。
多阶多项式效果对比
比较一阶、二阶及三阶多项式拟合,多线性回归模型的效果影响。由图可看出,三条线基本重合,且RMSE
相差不大。
model_one = np.poly1d(np.polyfit(X_train, y_train,
1
))model_two = np.poly1d(np.polyfit(X_train, y_train,
2
))model_three = np.poly1d(np.polyfit(X_train, y_train,
3
))fig, axes = plt.subplots(
1
,
2
, figsize=(
14
,
5
),sharey=
True
)labels = [
'line'
,
'parabola'
,
'nonic'
]models = [model_one, model_two, model_three]train = (X_train, y_train)test = (X_test, y_test)
for
ax, (ftr, tgt)
in
zip(axes, [train, test]):ax.plot(ftr, tgt,
'k+'
)num =
0
for
m, lbl
in
zip(models, labels):ftr = sorted(ftr)ax.plot(ftr, m(ftr),
'-'
, label=lbl)
if
ax == axes[
1
]:ax.text(
2
,
55
-num,
f"
{lbl}
_RMSE:
{round(np.sqrt(mse(tgt, m(tgt))),
3
)}
"
)num +=
5
axes[
1
].set_ylim(
-10
,
60
)axes[
0
].set_title(
"Train"
)axes[
1
].set_title(
"Test"
);axes[
0
].legend(loc=
'best'
);
绘制类似学习曲线
因低阶多项式效果相差并不明显,因此增大多项式阶数,并以残差平方和为y轴,看模型拟合效果,由图可以看出,随着多项式阶数越来越高,模型出现严重的过拟合(训练集残差平方和降低,而测试集却在上涨)。
results = []
for
complexity
in
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]:model = np.poly1d(np.polyfit(X_train, y_train, complexity))train_error = np.sqrt(mse(y_train, model(X_train)))test_error = np.sqrt(mse(y_test,model(X_test)))results.append((complexity, train_error, test_error))columns = [
"Complexity"
,
"Train Error"
,
"Test Error"
]results_df = pd.DataFrame.from_records(results, columns=columns,index=
"Complexity"
)results_dfresults_df.plot(figsize=(
10
,
6
))
多输出回归
多输出回归为每个样本分配一组目标值。这可以认为是预测每一个样本的多个属性,比如说一个具体地点的风的方向和大小。
多输出回归支持 MultiOutputRegressor
可以被添加到任何回归器中。这个策略包括对每个目标拟合一个回归器。因为每一个目标可以被一个回归器精确地表示,通过检查对应的回归器,可以获取关于目标的信息。因为 MultiOutputRegressor
对于每一个目标可以训练出一个回归器,所以它无法利用目标之间的相关度信息。
支持多类-多输出分类的分类器:
sklearn.tree.DecisionTreeClassifier sklearn.tree.ExtraTreeClassifier sklearn.ensemble.ExtraTreesClassifier sklearn.neighbors.KNeighborsClassifiersklearn.neighbors.RadiusNeighborsClassifiersklearn.ensemble.RandomForestClassifier
X = dataset.drop([
'Adj Close'
,
'Open'
], axis=
1
)Y = dataset[[
'Adj Close'
,
'Open'
]]
from
sklearn.multioutput
import
MultiOutputRegressor
from
sklearn.svm
import
LinearSVRmodel = LinearSVR()wrapper = MultiOutputRegressor(model)wrapper.fit(X, Y)data_in = [[
23.98
,
22.91
,
7.00
,
7.00
,
1.62
,
1.62
,
4.27
,
4.25
]]yhat = wrapper.predict(data_in)print(yhat[
0
])
>>>
[
16.72625136
16.72625136
]wrapper.score(X, Y)
多输出K近邻回归
多输出K近邻回归可以不使用MultiOutputRegressor
作为外包装器,直接使用KNeighborsRegressor
便可以实现多输出回归。
X = dataset.drop([
'Adj Close'
,
'Open'
], axis=
1
)Y = dataset[[
'Adj Close'
,
'Open'
]]
from
sklearn.neighbors
import
KNeighborsRegressormodel = KNeighborsRegressor()model.fit(X, Y)data_in = [[
23.98
,
22.91
,
7.00
,
7.00
,
1.62
,
1.62
,
4.27
,
4.25
]]yhat = model.predict(data_in)print(yhat[
0
])
>>>
[
2.34400001
2.352
]model.score(X, Y)
>>>
0.7053689393640217
决策树回归
决策树是一种树状结构,她的每一个叶子结点对应着一个分类,非叶子结点对应着在某个属性上的划分,根据样本在该属性上的不同取值降气划分成若干个子集。
基本原理
数模型通过递归切割的方法来寻找最佳分类标准,进而最终形成规则。CATA树,对回归树用平方误差最小化准则,进行特征选择,生成二叉树。
CATA回归树的生成
在训练数据集所在的空间中,递归地将每个空间区域划分为两个子区域,并决定每个子区域上的输出值,生产二叉树。
选择最优切分变量 和最优切分点 ,求解
遍历 ,对固定的切分变量 扫描切分点 ,使得上式达到最小值的对 ,不断循环直至满足条件停止。
X = dataset.drop([
'Adj Close'
,
'Close'
], axis=
1
) y = dataset[
'Adj Close'
]
#
划分训练集和测试集略
#
模型实例化
from
sklearn.tree
import
DecisionTreeRegressor regressor = DecisionTreeRegressor()
#
训练模型
regressor.fit(X_train, y_train)
#
回归预测
y_pred = regressor.predict(X_test)df = pd.DataFrame({
'Actual'
:y_test,
'Predicted'
:y_pred}) print(df.head(
2
))
Actual PredictedDate 2017-08-09 12.83 12.632017-11-14 11.12 11.20
模型评价
from
sklearn
import
metrics
#
平均绝对误差
print(metrics.mean_absolute_error(y_test, y_pred))
#
均方差
print(metrics.mean_squared_error(y_test, y_pred))
#
均方根误差
print(np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
0.09246808936170.02269660102120.1506539114039
交叉验证
from
sklearn.model_selection
import
cross_val_scoredt_fit = regressor.fit(X_train, y_train)dt_scores = cross_val_score(dt_fit, X_train, y_train, cv =
5
)print(
"Mean cross validation score: {}"
.format(np.mean(dt_scores)))print(
"Score without cv: {}"
.format(dt_fit.score(X_train, y_train)))
Mean cross validation score: 0.99824909037Score without cv: 1.0
R2
from
sklearn.metrics
import
r2_scoreprint(
'r2 score:'
, r2_score(y_test, dt_fit.predict(X_test)))print(
'Accuracy Score:'
, dt_fit.score(X_test, y_test))
r2 score: 0.9989593390532074Accuracy Score: 0.9989593390532074
亚太杯赛题思路发布(中文版)
https://mbd.pub/o/bread/ZpeZm5dp
相关文章:
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
亚太杯赛题思路发布(中文版)
导读: 本文将继续修炼回归模型算法,并总结了一些常用的除线性回归模型之外的模型,其中包括一些单模型及集成学习器。 保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归、AdaBoost回归、梯度提升决策树回归…...
![](https://www.ngui.cc/images/no-images.jpg)
【Linux】部署 GitLab 服务
1、配置实验环境 安装git apt install git 安装docker apt install docker 安装tree apt install tree 2、安装 Gitlab 下载官方库与安装包 下载官方库的安装脚本 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bas…...
![](https://img-blog.csdnimg.cn/direct/bc3bda3063364b979425b1b56bcceaa7.png)
cs与msf权限传递以及mimikatz抓取win2012明文密码
启动服务端 进入客户端 建立监听 制作脚本 客户端运行程序 主机上线 打开msf 调用handler模块 创建监听 11.cs->msf 传递会话 12.传参完成 msf->cs会话传递 抓取密码(null) 修改注册表 shell reg add "HKEY_LOC…...
![](https://img-blog.csdnimg.cn/img_convert/5004eb9dc4eb7806dcc28ccb6dbf3d44.png)
C++ 矩阵的最小路径和解法
描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。 数据范围: 1≤𝑛,𝑚≤5001≤n,m≤500,矩阵中任意值都满足 0≤𝑎𝑖,𝑗≤1000≤ai,j≤100 要求…...
![](https://img-blog.csdnimg.cn/direct/024e433466f248e7a8de9355d5e8e890.png)
http服务网络请求如何确保数据安全(含python示例源码)
深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程…...
![](https://img-blog.csdnimg.cn/direct/812ad30cae744309893406405a624db6.jpeg)
网络构建关键技术_2.IPv4与IPv6融合组网技术
互联网数字分配机构(IANA)在2016年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持IPv6,不再兼容IPv4。目前,IPv6已经成为唯一公认的下一代互联网商用解决方案&#…...
![](https://www.ngui.cc/images/no-images.jpg)
数仓建模—数据生命周期管理
数仓建模—数据生命周期管理 数据生命周期管理 (DLM) 是一种在从数据输入到数据销毁的整个生命周期内管理数据的方法。 数据根据不同的条件分处不同的阶段,随着其完成不同的任务或满足特定要求而逐次经历这些阶段。 一个出色的 DLM 流程提供针对企业数据的结构和组织,帮助实…...
![](https://www.ngui.cc/images/no-images.jpg)
【INTEL(ALTERA)】Nios II软件开发人员手册中设计位置的错误示例
目录 说明 解决方法 说明 Nios II软件开发人员手册正确无误 请参阅 Nios 中包含的Nios II硬件设计示例 II 嵌入式设计套件 (EDS)。提供设计示例 设计上 Altera网站的示例页面。 Nios II软件开发人员手册正确无误 请参阅 创建本应用程序和创建本 bsp …...
![](https://img-blog.csdnimg.cn/direct/fd997ae1e6f9451a894c6c6bf839de2a.png)
jeecg导入excel 含图片(嵌入式,浮动式)
jeecgboot的excel导入 含图片(嵌入式,浮动式) 一、啰嗦二、准备三、 代码1、代码(修改覆写的ExcelImportServer)2、代码(修改覆写的PoiPublicUtil)3、代码(新增类SAXParserHandler&a…...
![](https://www.ngui.cc/images/no-images.jpg)
GPT-5 一年半后发布?对此你有何期待?
GPT-5 一年半后发布?对此你有何期待? IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,…...
![](https://img-blog.csdnimg.cn/direct/410767c8969f4229974ee7bbd37163f3.png#pic_center)
SHELL脚本学习(十二)sed进阶
一、多行命令 概述 sed 编辑器的基础命令都是对一行文本进行操作。如果要处理的数据分布在多行中,sed基础命令是没办法处理的。 幸运的是,sed编辑器的设计人员已经考虑了这个问题的解决方案。sed编辑器提供了3个处理多行文本的特殊命令。 命令描述N加…...
![](https://img-blog.csdnimg.cn/direct/642f518ec953404fa6e954109d5b3134.png)
【python】一篇文零基础到入门:快来玩吧~
本笔记材料源于: PyCharm | 创建你的第一个项目_哔哩哔哩_bilibili Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法-CSDN博客 0为什么安装python和pycharm? 不同于c,c࿰…...
![](https://img-blog.csdnimg.cn/direct/f4c7ac65a6024daa8af9900bb0860c7d.png)
Python武器库开发-武器库篇之Thinkphp5 SQL注入漏洞(六十六)
Python武器库开发-武器库篇之Thinkphp5 SQL注入漏洞(六十六) 漏洞环境搭建 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行ThinkPHP漏洞环境的安装,我们进入 ThinkPHP漏洞环境,可以 cd ThinkPHP,然后通过 …...
![](https://www.ngui.cc/images/no-images.jpg)
2024.6.28刷题记录
目录 一、13. 罗马数字转整数 贪心 二、16. 最接近的三数之和 排序指针 三、17. 电话号码的字母组合 dfs(深度优先搜索) 四、19. 删除链表的倒数第 N 个结点 1.模拟 2.前后同步指针 五、20. 有效的括号 栈 六、21. 合并两个有序链表 1.递归 …...
![](https://img-blog.csdnimg.cn/direct/b5090c6c9c8949a392df49767f554c4b.png)
柔性数组(flexible array)
柔性数组从C99开始支持使用 1.柔性数组的概念 概念: 结构体中,结构体最后一个元素允许是未知大小的数组,这就叫[柔性数组]的成员 struct S {int n;char arr[]; //数组大小未知(柔性数组成员) }; 柔性数组的特点: 结构体中柔性…...
![](https://www.ngui.cc/images/no-images.jpg)
服务器配置路由
translator 在Linux系统中,通过ip route add命令添加的路由规则通常不会永久保存,它们只会在当前会话中生效。当系统重新启动后,这些临时添加的路由规则会丢失。 要求在开关机之后仍然保留这条路由,需要将路由规则永久保存。在大多…...
![](https://img-blog.csdnimg.cn/direct/fc87d23fbdd9425b8aead1d3c829035c.png)
老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!!
老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!! 缓存穿透发生场景解决方案 缓存击穿解决方案 缓存雪崩发生场景解决方案 总结三者区分三者原因三者解决方案 想象一下,你开了一家便利店,店里…...
![](https://www.ngui.cc/images/no-images.jpg)
[code snippet] 生成随机大文件
[code snippet] 生成随机大文件 一个无聊的测试代码,因为要测试大文件的网络传输,就写了一个随机大文件生成脚本,做个备份。 基本上都是 GPT 生成的,哈哈。 C# 代码 namespace ConsolePlayground;internal class BigFileGenera…...
![](https://img-blog.csdnimg.cn/img_convert/e07122cc2600cb9e00fe95284e80f2ed.png)
计算机网路面试HTTP篇三
HTTPS RSA 握手解析 我前面讲,简单给大家介绍了的 HTTPS 握手过程,但是还不够细! 只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。 对于还不知道对称…...
![](https://img-blog.csdnimg.cn/direct/efc056b146334106bf84146b3a60e94c.png#pic_center)
如何不改变 PostgreSQL 列类型#PG培训
开发应用程序并在其背后操作数据库集群时,会遇到一个意想不到的问题是实践与理论、开发环境与生产之间的差异。这种不匹配的一个完美例子就是更改列类型。 #PG考试#postgresql培训#postgresql考试#postgresql认证 关于如何在 PostgreSQL(以及其他符合 SQ…...
![](https://img-blog.csdnimg.cn/direct/ebe43044e1d94ad79e387602fb345b74.png)
RocketMQ快速入门:事务消息原理及实现(十)
目录 0. 引言1. 原理2. 事务消息的实现2.1 java client实现(适用于spring框架)2.2 springboot实现 3. 总结 0. 引言 rocketmq 的一大特性就是支持事务性消息,这在诸多场景中有所应用。在之前的文章中我们已经讲解过事务消息的使用࿰…...
![](https://img-blog.csdnimg.cn/direct/b580c553f6b0467dbbe1eddbc3d4988d.png)
Kotlin设计模式:深入理解桥接模式
Kotlin设计模式:深入理解桥接模式 在软件开发中,随着系统需求的不断增长和变化,类的职责可能会变得越来越复杂,导致代码难以维护和扩展。桥接模式(Bridge Pattern)是一种结构型设计模式,它通过…...
![](https://img-blog.csdnimg.cn/direct/ef88994c03df40adaf2d58ef9dc652e3.png)
常用MQ消息中间件Kafka、ZeroMQ和RabbitMQ对比及RabbitMQ详解
1、概述 在现代的分布式系统和实时数据处理领域,消息中间件扮演着关键的角色,用于解决应用程序之间的通信和数据传递的挑战。在众多的消息中间件解决方案中,Kafka、ZeroMQ和RabbitMQ 是备受关注和广泛应用的代表性系统。它们各自具有独特的特…...
![](https://img-blog.csdnimg.cn/direct/411f6df9f19b4f4498189ef6ad961138.png)
【UE5.3】笔记6-第一个简单小游戏
打砖块小游戏: 1、制造一面砖块组成的墙 在关卡中放置一个cube,放这地面上,将其转换成蓝图类,改名BP_Cube,更换砖块的贴图,按住alt键进行拷贝,堆出一面墙,复制出来的会很多,全选移动…...
![](https://img-blog.csdnimg.cn/direct/b88f22e37f4d42e890dce361df27ac8f.png)
LeetCode---402周赛
题目列表 3184. 构成整天的下标对数目 I 3185. 构成整天的下标对数目 II 3186. 施咒的最大总伤害 3187. 数组中的峰值 一、构成整天的下标对数目 I & II 可以直接二重for循环暴力遍历出所有的下标对,然后统计符合条件的下标对数目返回。代码如下 class So…...
![](https://www.ngui.cc/images/no-images.jpg)
循环冗余校验
循环冗余校验(Cyclic Redundancy Check,简称CRC)是一种广泛使用的错误检测编码技术,用于检测数据在传输或存储过程中是否发生错误。CRC通过在数据后面添加一个校验值(通常称为CRC码或CRC校验和)来实现错误检…...
![](https://www.ngui.cc/images/no-images.jpg)
resample sensor
resample sensor 的一个问题。 背景: 项目要求,发送多个数据到 sensor-hal 上去,发现无论怎样,在 sensor-hal 上都 只有一个数据。 resample sensor 是重新采样,这个怎么理解的,我的理解是: 假设 sensor 采…...
![](https://img-blog.csdnimg.cn/direct/573bb8e53f724552b336e5db5a3a291a.png)
【Linux】多线程的相关知识点
一、线程安全 1.1 可重入 VS 线程安全 1.1.1 概念 线程安全:多个线程并发执行同一段代码时,不会出现不同的结果。常见对全局变量或者静态变量进行操作,并且没有锁的保护的情况下,会出现问题。重入:同一个函数被不同…...
![](https://www.ngui.cc/images/no-images.jpg)
Java反射详解
Java反射 一.什么是反射 我们使用的一些像框架,tomcat,或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名,就可以创建给定类的对象,并调用该对象的方法和属性。这是如何做到的? 当他们加载我们…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代分布式系统中,消息队列的作用愈发重要࿰…...
![](https://img-blog.csdnimg.cn/direct/3ddb2ad2267c45d9a93acb9840c53a42.png#pic_center)
甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文
论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…...
![](https://img-blog.csdnimg.cn/direct/237c24e3f43148d5ad9d145e857c75c8.png)
uniapp开发企业微信内部应用
最近一直忙着开发项目,终于1.0版本开发完成,抽时间自己总结下在项目开发中遇到的技术点。此次项目属于自研产品,公司扩展业务,需要在企业微信中开发内部应用。因为工作中使用的是钉钉,很少使用企业微信,对于…...
![](https://www.ngui.cc/images/no-images.jpg)
0122__linux之eventfd理解
linux之eventfd理解-CSDN博客 Linux fd 系列 — eventfd 是什么?-CSDN博客...
![](https://www.ngui.cc/images/no-images.jpg)
数学建模 —— 查找数据
目录 百度搜索技巧 完全匹配搜索:查询词的外边加上双引号“ ” 标题必含关键词:查询词前加上intitle: 搜索文档:空格再输入filetype:文件格式 去掉不想要的:查询词后面加空格后加减号与关键字 知网查文献 先看知网的硕博士…...
![](https://img-blog.csdnimg.cn/direct/914fc564194b4de89fe0e0155a586a9e.png)
合并有序链表
合并有序链表 图解代码如下 图解 虽然很复杂,但能够很好的理解怎么使用链表,以及对链表的指针类理解 代码如下 Node* merge_list_two_pointer(List& list1, List& list2) {Node* new_head1 list1.head;Node* new_head2 list2.head;Node* s…...
![](https://www.ngui.cc/images/no-images.jpg)
【SpringBoot Web框架实战教程】05 Spring Boot 使用 JdbcTemplate 操作数据库
不积跬步,无以至千里;不积小流,无以成江海。大家好,我是闲鹤,微信:xxh_1459,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了…...
![](https://img-blog.csdnimg.cn/img_convert/66104645f7cc32eedf0a8be2dec6e857.png)
Spark基于DPU的Native引擎算子卸载方案
1.背景介绍 Apache Spark(以下简称Spark)是一个开源的分布式计算框架,由UC Berkeley AMP Lab开发,可用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Mini2440 start.s 修改支持串口输出,方便调试 (四)
经常会遇到点板子的时候,板子没有任何反应!怎么知道板子有没有在正常启动,在uboot阶段 start.s 中加入串口打印信息是很有必要的! 输出串口信息 ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoo…...
![](https://img-blog.csdnimg.cn/direct/5d9ed8482f3843fd85d9c2405a378dbb.png)
【教程】几种不同的RBF神经网络
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…...
![](https://img-blog.csdnimg.cn/direct/bb0a6f44389d41ecb2129949c26ca7b8.png)
【Liunx-后端开发软件安装】Liunx安装FDFS并整合nginx
【Liunx-后端开发软件安装】Liunx安装nacos 文章中涉及的相关fdfs相关软件安装包请点击下载: https://download.csdn.net/download/weixin_49051190/89471122 一、简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括…...
![](https://i-blog.csdnimg.cn/direct/54af8d012fe94115888c4c03c10650a0.png)
【Java笔记】Flyway数据库管理工具的基本原理
文章目录 1. 工作流程2. 版本号校验算法3. 锁机制3.1 为什么数据库管理工具需要锁3.2 flyway的锁机制 Reference 最近实习做的几个项目都用到了Flyway来做数据库的版本管理,顺便了解了下基本原理,做个记录。 详细的使用就不写了,网上教程很多…...
![](https://img-blog.csdnimg.cn/img_convert/24cb2e512ed9fe0ca06cfa1ead928821.webp?x-oss-process=image/format,png)
国际数字影像产业园创业培训,全面提升创业能力!
国际数字影像产业园作为数字影像产业的创新高地,致力于提供全面的创业支持服务。其中,创业培训作为重要的组成部分,旨在通过系统的课程设置和专业的讲师团队,为创业者提供从基础到进阶的全方位指导,帮助他们在数字影像…...
![](https://img-blog.csdnimg.cn/direct/03519e4290bd417ebd4e55ff1ea2be17.png)
pyqt5 制作视频剪辑软件,切割视频
该软件用于切割视频,手动选取视频片段的起始帧和结束帧并保存为json文件。gui界面如下:包含快进、快退、暂停等功能, 代码如下: # codingUTF-8 """ theme: pyqt5实现动作起始帧和结束帧的定位,将定位到…...
![](https://www.ngui.cc/images/no-images.jpg)
VUE----通过nvm管理node版本
使用 NVM(Node Version Manager)来管理和切换 Node.js 版本是一个很好的选择。以下是在 苹果电脑macos系统 上使用 NVM 安装和切换 Node.js 版本的步骤: 1. 安装 NVM 如果你还没有安装 NVM,可以按照以下步骤进行安装:…...
![](https://www.ngui.cc/images/no-images.jpg)
R语言进行字符的替换和删减gsub,substr函数
目录 R语言读文件“-“变成“.“ 提取列字符前几个 提取列字符末尾几个 进行字母替换 paste0函数使用 长宽数据转换 R语言读文件“-“变成“.“ R语言读文件“-“变成“.“_r语言 列名中的-变成了点-CSDN博客 怎样将"."还原为"-" rm(list = ls()…...
![](https://img-blog.csdnimg.cn/img_convert/e4636501805a994c0fea7507c10d9763.png)
2024年6月27日,欧盟REACH法规新增第31批1项SVHC高关注物质
ECHA公布第31批1项SVHC,物质已增至241项 2024年6月27日,ECHA公布第31批1项SVHC,总数达241项。新增物质未包括磷酸三苯酯,仍在评议中。REACH法规要求SVHC含量超0.1%需告知下游,出口超1吨须通报ECHA。SCIP通报要求SVHC含…...
![](https://img-blog.csdnimg.cn/direct/53bcb0a9dab04cbb9c9ed79cd6877ce7.png)
高通410-linux棒子设置网络驱动
1.首先打开设备管理器 2.看到其他设备下的RNDIS,右键更新驱动程序 3.点击浏览我的电脑… 最后一个...
![](https://www.ngui.cc/images/no-images.jpg)
PostgreSQL的系统视图pg_stat_archiver
PostgreSQL的系统视图pg_stat_archiver 在 PostgreSQL 数据库中,pg_stat_archiver 视图提供了关于归档进程(archiver process)的统计信息。归档进程负责将 WAL(Write-Ahead Logging)日志文件复制到归档存储࿰…...
![](https://img-blog.csdnimg.cn/direct/ef66e995eb1240c89985e4c1c4269128.png#pic_center)
【D3.js in Action 3 精译】第一部分 D3.js 基础知识
第一部分 D3.js 基础知识 欢迎来到 D3.js 的世界!可能您已经迫不及待想要构建令人惊叹的数据可视化项目了。我们保证,这一目标很快就能达成!但首先,我们必须确保您已经掌握了 D3.js 的基础知识。这一部分提到的概念将会在您后续的…...
![](https://www.ngui.cc/images/no-images.jpg)
面试经验分享 | 渗透测试工程师(实习岗)
所面试的公司:某安全厂商 所在城市:南京 面试职位:渗透测试工程师实习岗位 面试过程: 腾讯会议(视频) 面试过程:整体流程就是自我介绍加上一些问题问题balabalabala。。。由于面的岗位是渗透…...
![](https://img-blog.csdnimg.cn/direct/f2e22b67b6ae42f48e1a68d5c73bab3b.png)
iOS 视图实现渐变色背景
需求 目的是要实现视图的自定义的渐变背景色,实现一个能够随时使用的工具。 实现讨论 在 iOS 中,如果设置视图单一的背景色,是很简单的。可是,如果要设置渐变的背景色,该怎么实现呢?其实也没有很是麻烦&…...
![](https://img-blog.csdnimg.cn/d8b810c80cec4359a11ff9c972bd02d3.gif#pic_center)
【软件测试】Junit单元测试框架 | 注解 | 参数化 | 测试套件
文章目录 Junit单元测试框架1.注解TestDisableBeforeAll、AfterAllBeforeEach、AfterEach 2.参数化单参数CSV获取参数多参数方法获取参数测试用例执行顺序断言 3.测试套件通过class运行测试用例通过包来运行测试用例 Junit单元测试框架 Selenium3是自动化测试框架 Junit5是单元…...
![](https://img-blog.csdnimg.cn/direct/ce90c8277eab43e58796a0e19578ca03.png#pic_center)
华为云物联网的使用
这里我们设置三个属性 1.温度DHT11_T 上传 2.湿度DHT11_H 上传 3.风扇motor 远程控制(云平台控制设备端) 发布主题: $oc/devices/{device_id}/sys/properties/report 发布主题时,需要上传数据,这个数据格式是JSON格式…...
![](https://img-blog.csdnimg.cn/direct/5d7d5380961d42be9f4c3dd0b04a9e57.png)
【第三版 系统集成项目管理工程师】第5 章 软件工程
持续更新。。。。。。。。。。。。。。。 【第三版】第五章 软件工程 5.1软件工程定义练习 5.2软件需求5.2.1雾求的层次1.业务需求-P2032.用户需求-P2033.系统需求-P203 5.2.2质量功能部署 P2035.2.3需求获取 P2045.2.4需求分析1.结构化分析-P2042.面向对象分析-P207 5.2.5号求…...
![](https://img-blog.csdnimg.cn/direct/0d4455378c994195a2d2a04f23f8fe74.png)
【计算机网络】网络层(作业)
【一】 1、某主机的 IP 地址为 166.199.99.96/19。若该主机向其所在网络发送广播 IP 数据报, 则目的地址可以是(D)。 A. 166.199.99.255B. 166.199.96.255C. 166.199.96.0D. 166.199.127.255 解析: 166.199.99.96/19166.199.0…...
![](https://img-blog.csdnimg.cn/direct/b5c9582cb8dd4ce1be54cbf2494c4f0c.png)
第十四届蓝桥杯省赛C++B组E题【接龙数列】题解(AC)
需求分析 题目要求最少删掉多少个数后,使得数列变为接龙数列。 相当于题目要求求出数组中的最长接龙子序列。 题目分析 对于一个数能不能放到接龙数列中,只关系到这个数的第一位和最后一位,所以我们可以先对数组进行预处理,将…...
![](https://pic2.pedaily.cn/24/202406/20246261446152009.png)
必胜客之后,DQ冰淇淋也跨界卖汉堡了
汉堡界又迎来一重磅新玩家。近日,DQ冰淇淋在其官方微博、小红书等社交媒体上发文称,DQ汉堡全国首店将于7月10日登陆上海。新玩家入局同时,哈比特汉堡、摩斯汉堡等一批“老玩家”却遗憾陆续退出中国市场。汉堡界,似乎从来不缺新故事。01.冰淇淋“专家”卖汉堡29元起卖,不“…...
![](https://img-blog.csdnimg.cn/direct/13a8e7dc16534159bc1dbc1a3fa8e3f6.jpeg)
你对仲裁裁决不服怎么办?我教你四个狠招!
你对仲裁裁决不服怎么办?我教你四个狠招! 这个标题是什么意思呢?也就是说,当你(或用人单位)向劳动仲裁委提出仲裁申请后,但劳动仲裁结果没有维护你的权益,或者你不满意,…...
![](https://www.ngui.cc/images/no-images.jpg)
python下将sqlite数据提取出来,转化为json数据
问题描述:我需要将sqlite数据提取出来做一部分处理,使用pandas,sqlite3库实现 大致的思路:使用sqlite3读取指定路径的数据,然后使用pandas.read_sql_query接收数据,然后to_dict,再写入到json文件…...
![](https://img-blog.csdnimg.cn/direct/e2182d9c58ee43d491be07a331b0e679.png)
Postman实现批量发送json请求
最近有一个场景,需要本地批量调用某个接口,从文件中读取每次请求的请求体,实现方法记录一下。 1.读取请求体 在 Postman 中,如果你想在 Pre-request Script 阶段读取文件内容,比如为了将文件内容作为请求的一部分发送…...
![](https://www.ngui.cc/images/no-images.jpg)
Github 2024-05-27 开源项目日报 Top10
根据Github Trendings的统计,今日(2024-05-27统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目5TypeScript项目3HTML项目1Go项目1非开发语言项目1Rust项目1Svelte项目1Jupyter Notebook项目1免费编程书籍和学习资源清单 创建周期…...
![](https://img-blog.csdnimg.cn/direct/b68fa57be8a84fd990f7c996587ff105.png)
数组单调栈-901. 股票价格跨度、leetcode
单调栈作为一种数据结构在求解类递增、递减方面的题目中有较为广泛的应用,在以往的leetcode中所见到的相关单调栈的题目均为单一元素,今天刷到901题目时,想到了将数组元素作为单调栈中元素的方法进行求解。 题目链接及描述 901. 股票价格跨…...