在这里插入图片描述
决策树算法在工业中本身应用并不多,但是,目前主流的比赛中的王者,包括GBDT、XGBOOST、LGBM都是以决策树为积木搭建出来的,所以理解决策树,是学习这些算法的基石,今天,我们就从模型调用到调参详细说说决策树的使用方法。

一、什么是决策树

既然要用决策树,那么我们首先要知道决策树的基本原理。

初听到决策树这个名字的时候,我觉得他是一种最不像机器学习算法的算法。因为这不就是编程里最基本的if-else选择语句嘛,还能有多厉害?

而且我们生活中的和决策树相关的例子比比皆是,假如你出去买东西,如果价格合适,那就买下来,如果价格太高,那就和商家讨价还价,如果商家同意打折,那就买下来,如果商家不同意便宜点,那就放下东西走人。这就会构建出下图这样的一个决策树。
在这里插入图片描述

别急,决策树算法之所以能成为机器学习十大算法,必然有其过人之处。仔细想想,决策树算法并不是单纯地进行决策,而是通过数据集让程序学会像人一样做这一系列的决策过程。

所以决策树算法的核心是要解决两个问题:

1)如何从数据集中找出最佳分枝?
2)如何在合适的时候让决策树停止生长,防止过拟合?

几乎所有与决策树有关的模型调整方法,都逃不开这两个核心问题。

关于第一个问题,一个数据集必然给出了很多的特征,先按照哪个特征来高效地划分数据集,是决策树需要解决的最大问题。当然,我们完全可以按照特征从头到尾顺次来划分数据集,但是,这样做其实并不好,因为你如果一不小心把重要的特征排到了后边,那么你的决策树会很低效。

比如说,你的一个决策树算法在分辨兔子和鸡(想到了小时候被鸡兔同笼问题支配的恐惧了吗),而你恰恰把眼睛数量、嘴巴数量等次要特征排在了前边,而把腿的数量等重要特征放在了最后,那结果就是本来只需要一步决策就可以分辨出来的问题,你的算法必须执行很多步。

为了解决这个问题,就必须要设置一个衡量标准来衡量特征的重要程度。

于是,机器学习专家们就去信息学科中偷来了一个词语:信息熵。信息越确定(单一),信息熵越小;信息越多变(混乱),信息熵越大。

通过比较拆分前后的信息熵之差找出更重要的特征的方法,就产生了ID3和C4.5两种决策树算法。

之后,科学家又找到了一个更好的衡量方法——基尼系数。于是就产生了CART决策树。

在实际使用中,信息熵和基尼系数的划分效果基本相同。只是信息熵因为要计算对数,速度上比计算基尼系数慢一些。另外,如果数据维度过高或者存在大量噪音数据,使用信息熵很容易过拟合。综上,在我们使用决策树的过程中一般无脑采用基尼系数就好了。

信息熵和基尼系数的公式如下:
在这里插入图片描述

因为篇幅有限,这里就不再详解这些基本公式的含义了,翻开任意一本算法书,都已经讲得很明白了。

【关于决策树的原理以及直观理解,我最近在制作一个动画来直观展示,制作好之后会插入文章中,感兴趣的可以后续关注一下。】

对于ID3,C4.5以及CRAT这三种决策树,单纯从在scikit-learn中使用的角度来说,没必要了解他们的区别,但是在面试等场合还是需要了解一下的。所以我附在了本文后边,感兴趣的可以阅读完正文之后去附录中阅读。

二、决策树的使用

从应用角度可以把决策树分为分类决策树和回归决策树。

顾名思义,分类决策树用来解决分类问题,回归决策树用来解决回归问题。分别通过:“DecisionTreeClassifier()”,“DecisionTreeRegressor()”两个函数来调用。

用scikit-learn调用决策树的方式我在机器学习超详细实践攻略(8):使用scikit-learn构建模型的通用模板【万字长文】中已经给出,只要按照模板套用即可,下面,重点介绍使用决策树需要用到的参数以及调参过程。

分类决策树总共有12个参数可以自己调整,这么多参数一个个记起来太麻烦,我们可以把这些参数分成三个类别。

1、用于模型调参的参数:

1)criterion(划分标准):有两个参数 ‘entropy’(熵) 和 ‘gini’(基尼系数)可选,默认为gini。
2)max_depth(树的最大深度):默认为None,此时决策树在建立子树的时候不会限制子树的深度。也可以设置具体的整数,一般来说,数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间。
3)min_samples_split(分割内部节点所需的最小样本数):意思就是只要在某个结点里有k个以上的样本,这个节点才需要继续划分,这个参数的默认值为2,也就是说只要有2个以上的样本被划分在一个节点,如果这两个样本还可以细分,这个节点就会继续细分
4)min_samples_leaf(叶子节点上的最小样本数):当你划分给某个叶子节点的样本少于设定的个数时,这个叶子节点会被剪枝,这样可以去除一些明显异常的噪声数据。默认为1,也就是说只有有两个样本类别不一样,就会继续划分。如果是int,那么将min_samples_leaf视为最小数量。如果为float,则min_samples_leaf为分数,ceil(min _ samples _ leaf * n _ samples)为每个节点的最小样本数。

2、用于不平衡样本预处理参数:
  • class_weight: 这个参数是用于样本不均衡的情况下,给正负样本设置不同权重的参数。默认为None,即不设置权重。具体原理和使用方法见:【机器学习超详细实践攻略(12):三板斧干掉样本不均衡问题之2——通过正负样本的惩罚权重解决样本不均衡】
3、不重要的参数:

这些参数一般无需自己手工设定,只需要知道具体的含义,在遇到特殊情况再有针对性地调节即可。

1)‘max_features’:如果我们训练集的特征数量太多,用这个参数可以限制生成决策树的特征数量的,这个参数在随机森林中有一定的作用,但是因为随机抽取特征,这个算法有概率把数据集中很重要的特征筛选掉,所以就算特征太多,我宁愿采用降维算法、或者计算特征重要度自己手工筛选也不会设置这个参数。

2) ‘min_impurity_decrease’(节点划分最小不纯度): 这是树增长提前结束的阈值,如果某节点的不纯度(基于基尼系数,均方差)小于这个阈值,则该节点不再生成子节点 。一般不推荐改动。

3)‘max_leaf_nodes’(最大叶子节点数): 默认是"None”,即不限制最大的叶子节点数。如果加了限制,算法会建立一个在最大叶子节点数内最优的决策树。限制这个值可以防止过拟合,如果特征不多,可以不考虑这个值,但是如果特征多的话,可以加以限制。

4)‘random_state’(随机数种子): 默认为None,这里随便设置一个值,可以保证每次随机抽取样本的方式一样。

5)‘splitter’:用来控制决策树中划分节点的随机性,可选”best"和“random"两个值,默认为“best”。当输入”best",决策树在分枝时虽然随机,但是还是会优先选择更重要的特征进行分枝,输入“random",决策树在分枝时会更加随机,从而降低对训练集的拟合成都。这也是防止过拟合的一种方式。当然,这种防止过拟合的方法属于“伤敌一千自损八百”的方法,树的随机分枝会使得树因为含有更多的不必要信息而更深更大,所以我们最好使用上边的剪枝参数来防止过拟合,这个参数一般不用动。

6)min_weight_fraction_leaf(叶子节点最小的样本权重和):这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会被剪枝。 默认是0,就是不考虑权重问题。一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重,这时我们才会稍微注意一下这个值。

7)‘ccp_alpha’(复杂性参数):这个参数同样是是用于避免树的过度拟合。在树生成节点的过程中,加入一个惩罚因子(逻辑回归里的惩罚项),避免生成的树过于冗余,公式如下:
在这里插入图片描述
其中T就是树的总节点个数,α\alpha 就是我们设置的参数,随着树节点的增多,最终损失函数就会变得更大。默认为0,即不加入惩罚项。

以上就是分类决策树12个参数的介绍。

说完了分类决策树,回归决策树就自然而然懂了,它和分类决策树在参数上的区别只有两个地方:
1) ‘criterion’: 评价划分节点质量的参数,类似于分类决策树的熵,有三个参数可选,‘mse’(default)均方误差;'friedman_mse’均方误差近似,最小化L2 loss;'mae’平均绝对误差,最小化L1 loss。
2)少了’class_weight’: None,当然,回归问题也就不存在给每个类别加不同的权重了。

三、决策树调参步骤:

通过上边的介绍,可以看到在模型调参的过程中只需要重点调整决策树的4个参数即可。这四个参数中,criterion只有两个值可选,是最好调的,剩下三个参数在调参过程中会互相影响,需要我们确定一个顺序。

1)确定criterion参数(决策树划分标准):这里可以简单比较一下,不过一般情况选用gini系数模型效果更好。

2)通过绘制得分曲线缩小max_depth(树的最大深度)的搜索范围,得到一个暂定的max_depth。

之所以第一个参数调max_depth,是因为模型得分一般随着max_depth单调递增,之后会区域稳定。

3)利用暂定的max_depth参数,绘制曲线,观察得分随着min_samples_split(分割内部节点所需的最小样本数)的变化规律,从而确定min_samples_split参数的大概范围。

因为随着min_samples_split的增大,模型会倾向于向着简单的方向发展。所以如果模型过拟合,那么随着min_samples_split的增大,模型得分会先升高后下降,我们选取得分最高点附近的min_samples_split参数;如果模型欠拟合,那么随着min_samples_split的增大,模型得分会一直下降,接下来调参时只需要从默认值2开始取就好。

4)利用暂定的max_depth和min_samples_split参数,绘制曲线,观察得分随着min_samples_leaf(叶子节点上应有的最少样例数)的变化规律,从而确定min_samples_leaf参数的大概范围。该参数的范围确定方法同上。

5)利用网格搜索,在一个小范围内联合调max_depth、min_samples_split和min_samples_leaf三个参数,确定最终的参数。

初看这些话,可能觉得很难理解,别急,下面我们通过一个对手写数字识别数据集的调参实例来逐条理解这几句话。

0)首先导入必要包和加载数据集

from sklearn.tree import DecisionTreeClassifier 
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split,GridSearchCV,cross_val_score
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
import numpy as np#准备数据集
data = load_digits()
x = data.data
y = data.target

1)比较决策树划分标准对模型影响

DT = DecisionTreeClassifier(random_state = 66)
score = cross_val_score(DT,x,y,cv=10).mean()
print('基尼系数得分: %.4f'%score)
DT = DecisionTreeClassifier(criterion = 'entropy',random_state = 66)
score = cross_val_score(DT,x,y,cv=10).mean()
print('熵得分: %.4f'%score)

输出:

基尼系数得分: 0.8252
熵得分: 0.8036

可以看到,使用基尼系数比使用熵得到的结果更好。

2.1)在大范围内搜索max_depth的参数范围。

画出得分随着这个参数变化的曲线,观察两者的关系。

###在大范围内画出max_depth这个参数变化曲线
ScoreAll = []
for i in range(10,100,10):DT = DecisionTreeClassifier(max_depth = i,random_state = 66)score = cross_val_score(DT,data.data,data.target,cv=10).mean()ScoreAll.append([i,score])
ScoreAll = np.array(ScoreAll)max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的,其实就是找出最高得分对应的索引
print("最优参数以及最高得分:",ScoreAll[max_score])  
# print(ScoreAll[,0])
plt.figure(figsize=[20,5])
plt.plot(ScoreAll[:,0],ScoreAll[:,1])
plt.show()

输出:

最优参数以及最高得分: [20. 0.82524209]
在这里插入图片描述

可以看到,当树的深度达到20的时候,再增加树的深度,模型正确率不再上升。
但是别忘了,我们为了能够搜索更大的范围,只搜索了10的整数倍的树的深度。既然转折发生在20附近,那么我们在20附近进一步搜索。

2.2)进一步缩小max_depth这个参数的范围

代码和上述一样,只是这回在10~25之间搜索,每个值都不放过。

###进一步缩小max_depth这个参数的范围
ScoreAll = []
for i in range(10,25):DT = DecisionTreeClassifier(max_depth = i,random_state = 66)score = cross_val_score(DT,data.data,data.target,cv=10).mean()ScoreAll.append([i,score])
ScoreAll = np.array(ScoreAll)max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的,其实就是找出最高得分对应的索引
print("最优参数以及最高得分:",ScoreAll[max_score])  
# print(ScoreAll[,0])
plt.figure(figsize=[20,5])
plt.plot(ScoreAll[:,0],ScoreAll[:,1])
plt.show()

输出:

最优参数以及最高得分: [13. 0.82691186]
在这里插入图片描述

从这回的曲线里已经看到了得分随着树的高度的曲折变化了。我们暂定树的高度为13,模型达到了 0.826。

3)利用暂定的max_depth参数,绘制曲线,观察得分随着min_samples_split(分割内部节点所需的最小样本数)的变化规律,从而确定min_samples_split参数的大概范围。

为了减少计算量,令max_depth = 13,然后看看min_samples_split的变化趋势。这里就让min_samples_split从2取到30吧。

#单独看看min_samples_split的变化趋势
ScoreAll = []
for i in range(2,30):DT = DecisionTreeClassifier(max_depth = 13,min_samples_split = i,random_state = 66)score = cross_val_score(DT,data.data,data.target,cv=10).mean()ScoreAll.append([i,score])
ScoreAll = np.array(ScoreAll)max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的,其实就是找出最高得分对应的索引
print("最优参数以及最高得分:",ScoreAll[max_score])  
# print(ScoreAll[,0])
plt.figure(figsize=[20,5])
plt.plot(ScoreAll[:,0],ScoreAll[:,1])
plt.show()

输出:

最优参数以及最高得分: [7. 0.83309848]
在这里插入图片描述

可以看到,随着min_samples_split的增大,模型得分上升一点之后就一直下降,这就说明模型稍微有一些过拟合。所以我们下一步调参时min_samples_split直接从2~10这个范围取数就可以。

4)确定min_samples_leaf参数的大概范围。

###调min_samples_leaf这个参数
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
import numpy as npScoreAll = []
for i in range(1,30):DT = DecisionTreeClassifier(min_samples_leaf = i,min_samples_split = 7,max_depth = 13,random_state = 66)score = cross_val_score(DT,data.data,data.target,cv=10).mean()ScoreAll.append([i,score])
ScoreAll = np.array(ScoreAll)max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的,其实就是找出最高得分对应的索引
print("最优参数以及最高得分:",ScoreAll[max_score])  
# print(ScoreAll[,0])
plt.figure(figsize=[20,5])
plt.plot(ScoreAll[:,0],ScoreAll[:,1])
plt.show()

输出:

最优参数以及最高得分: [1. 0.83309848]
在这里插入图片描述

5)利用网格搜索,在小范围内联调max_depth、min_samples_split和min_samples_leaf三个参数

根据我们前边的一系列操作,我们确定因为max_depth在13附近,min_samples_split在7附近,min_samples_leaf在1附近是最优参数,所以我们分别在这个附近利用网格搜索得到最优参数(具体在这个附近多远需要自己把握)。因为要涉及到三个参数联调,这里就要用到网格搜索函数。代码如下:

#max_depth、min_samples_leaf和min_samples_split一块儿调整  
param_grid = {'max_depth':np.arange(10, 15),'min_samples_leaf':np.arange(1, 8),'min_samples_split':np.arange(2, 8)}rfc = DecisionTreeClassifier(random_state=66)
GS = GridSearchCV(rfc,param_grid,cv=10)
GS.fit(data.data,data.target)
print(GS.best_params_)
print(GS.best_score_)

输出:

{‘max_depth’: 14, ‘min_samples_leaf’: 2, ‘min_samples_split’: 5}
0.8397328881469115

【注:这里采用网格搜索计算得分,和交叉验证得分的计算方式是一模一样的】

可以看到,最终模型从默认参数下的0.8252提高到了0.8397。这里我们可以看到,上述三个参数和我们前边所暂定的参数都不一样。证明三者之间确实是相互影响的!

当然,这只是我个人总结的一个调参顺序,仅用来参考,没必要这么固化。其实,正是调参过程充满的各种不确定性,才是调参的真正魅力所在。

四、附录:ID3、C4.5和CART决策树的比较

ID3决策树算是决策树的鼻祖,它采用了信息增益来作为节点划分标准,但是它有一个缺点:在相同条件下,取值比较多的特征比取值少的特征信息增益更大,导致决策树偏向于选择数量比较多的特征。所以,C4.5在ID3的基础上做了改进,采用了信息增益率来解决这个问题,而且,C4.5采用二分法来处理连续值的特征。以上两个决策树都只能处理分类问题。

决策树的集大成者是CART决策树。

很多文章里提到CART决策树和ID3、C4.5的区别时,都简单地归结为两者使用的节点划分标准不同(用基尼系数代替信息熵)。其实除此之外,CART和以上两种决策树最本质的区别在于两点:

1、CART决策树对树的形状做了规定,只能二叉树,同时规定,内部结点特征的取值左为是,右为否。这个二叉树的规定,使得对于同样的数据集,CART决策树的深度更深。

2、从它的英文名:classification and regression就可以看出,CART决策树不仅可以处理分类问题,而且还可以处理回归问题。在处理回归问题时,回归cart树可以用MSE等多种评价指标。

3、值得一提的是,随机森林、GBDT、XGBOOST算法都是基于CART决策树来的。

三种树的对比做一个总结:

  1. ID3:倾向于选择水平数量较多的变量,可能导致训练得到一个庞大且深度浅的树;另外输入变量必须是分类变量(连续变量必须离散化);最后无法处理空值。
  2. C4.5在ID3的基础上选择了信息增益率替代信息增益,同时,采用二分法来处理连续值的特征,但是生成树浅的问题还是存在,且只能处理分类问题。
  3. CART以基尼系数替代熵,划分规则是最小化不纯度而不是最大化信息增益(率)。同时只允许生成二叉树,增加树的深度,而且可以处理连续特征和回归问题。
  4. CART决策树是根据ID3等决策树改进来的,scikit-learn实现的决策树更像是CRAT决策树。但是,节点的划分标准也可以选择采用熵来划分。

五、本系列相关文章

  • 机器学习超详细实践攻略(1):盘点scikit-learn里那些有趣又有用的彩蛋级入门数据集
  • 机器学习超详细实践攻略(8):使用scikit-learn构建模型的通用模板【万字长文】
  • 机器学习超详细实践攻略(11):三板斧干掉样本不均衡问题之1——过(欠)采样
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 五味2019

    前言恍恍惚惚又是一年,明天就是2019年的最后一个工作日,本想着公历2020年之前写自己的2019总结,没想到明日复明日,一直复到了今天,不过也还好,毕竟农历还是2019年。趁着最后一个工作日之前,总结一下我的今年:我的2019,有激情、有慵懒、有创新、有平淡、有不甘、有失利…...

    2024/4/29 3:56:01
  2. Ozone OM服务HA原理分析

    文章目录前言OzoneManager HA的目标OM HA的Raft方式实现Ozone的读写请求的区别处理OM服务的定期Snapshot、Checkpoint行为附:DoubleBuffer+Table Cache的请求处理引用 前言在分布式系统中,为了避免中心服务节点存在单点问题,我们往往会有HA(High Availability)的防御措施。比…...

    2024/5/1 8:48:59
  3. 白话Elasticsearch67-不随意调节jvm和thread pool的原因&jvm和服务器内存分配的最佳实践

    文章目录不随意调节jvm和thread pool的原因jvm gcthreadpooljvm和服务器内存分配的最佳实践jvm heap分配将机器上少于一半的内存分配给es不要给jvm分配超过32G内存在32G以内的话具体应该设置heap为多大?对于有1TB内存的超大内存机器该如何分配?swapping不随意调节jvm和thread…...

    2024/5/1 6:24:01
  4. H5实现调用本地摄像头实现实时视频以及拍照功能

    Ant Design Pro 教程专栏React 结合中后端框架 Ant Design Pro 的教程专栏a_靖9.90去订阅限制只能选择图片<input type="file" accept="image/*">限制只能选择视频<input type="file" accept="video/*">限制只能选择音频&…...

    2024/5/1 13:34:38
  5. 白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数

    文章目录概述集群重启时的无意义shard重分配问题shard recovery配置概述 继续跟中华石杉老师学习ES,第66篇 课程地址: https://www.roncoo.com/view/55集群重启时的无意义shard重分配问题在集群重启的时候,有一些配置会影响shard恢复的过程。 首先,我们需要理解默认配置下,…...

    2024/5/1 18:20:18
  6. 计量经济学

    入职之前,没有怎么接触过计量经济学,后来见不少同事们的研究基本全用到了计量经济学,才知道还挺有用的,有的学者甚至在 nature 子刊发的论文就是用的计量经济学。 计量经济学当然没有统计学难,属于统计学的一个分支,特别适合用来做实证分析。 本来可以讲这门课,但我选择…...

    2024/5/1 12:05:59
  7. IDEA社区版使用Gradle支持Tomcat

    目录1. 前言 2. 尝试的方法2.1. Smart Tomcat插件 3. 可行方法3.1. 说明3.2. 依赖环境3.3. IDEA中执行Gradle脚本3.3.1. 在Terminal中执行3.3.2. 在Run/Debug Configurations中执行3.3.2.1. 解决在Run/Debug Configurations中执行Gradle脚本中文乱码问题3.4. 在IDEA中进行远程调…...

    2024/5/1 17:46:48
  8. 整理的一些Linux运维工程师面试题 工程师2019年度工作总结

    今年是我成为上班族以来的第二个整年。土建工程师是我从事的第一份工作,是我职业生涯的一个起点,我对此也十分珍惜,尽最大努力去适应这一岗位。通过一年来的不断学习,以及同事、领导的帮助,我已完全融入到了*******这个大家庭中,个人的工作技能也有了明显的提高,虽然工作…...

    2024/5/1 6:20:30
  9. 很多人见过并且用过爬虫,但极少人懂得这些爬虫概念!

    作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘。不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目。 爬虫是什么 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定…...

    2024/5/1 10:54:09
  10. react-基础知识点完全版(未更新完)

    main.js // 基本配置 import React from react import ReactDOM from react-dom import App from ./App //用于将其他组件引入的主页面ReactDOM.render(<App />, document.getElementById(root)) //root在public的index.html页面中App.js // 基本配置 import React fro…...

    2024/4/29 7:42:10
  11. 这Python 的20个骚操作,让我月薪涨了3K!

    Python 是一个解释型语言,可读性与易用性让它越来越热门。在你的日常编码中,以下技巧可以给你带来意想不到的收获。字符串反转 下面的代码片段,使用 Python 中 slicing 操作,来实现字符串反转: 1# Reversing a string using slicing 2 3my_string = "ABCDE" 4re…...

    2024/4/1 11:48:58
  12. 2019_GDUT_新生专题 图论 B - 最短路

    题目在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、…...

    2024/4/26 21:22:53
  13. 微信域名防封跳转系统详解,域名总是被微信屏蔽应该这样做

    很多人问,微信域名防封跳转系统是怎么实现的,域名链接被微信拦截封杀,就是不能在微信环境中打开,需要通过点击右上角选择浏览器打开。 域名链接微信屏蔽,顾名思义,肯定是看不到了。 域名链接被微信封杀,那就是提示已停止访问该网页的字样。那是什么原因引起的域名链接被…...

    2024/3/29 12:59:44
  14. 介绍React.memo, useMemo 和 useCallback

    什么是 React.memo ? React.memo 和 React.PureComponent 类似, React.PureComponent 在类组件中使用,而React.memo 在函数组件中使用 看下面两个例子,有两个计数器组件,两个计数器的数据都来源于父组件,第一个计数器通过点击按钮数字会不断累加而发生改变,第二个计数器…...

    2024/3/29 12:59:43
  15. 【算法】数据结构

    ...

    2024/3/29 7:35:52
  16. 机房收费-----使子窗体显示父窗体的picture控件上

    多文档界面窗体(MDI窗体)中的父窗体没有办法添加控件,我们可以在父窗体中添加一个picture控件,然后将控件放在picture上。但是随之而来的问题就是MDI子窗体没有办法显示出来,被picture控件给挡住了,经过翻阅各种资料,发现的了一些信息以及解决办法。跟大家分享一下。首先…...

    2024/3/29 7:35:46
  17. HDU 3873 Invade the Mars

    题目链接 转载自https://www.cnblogs.com/wally/archive/2013/05/28/3103437.html(侵转删) 题目: Invade the Mars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 365768/165536 K (Java/Others) Total Submission(s): 3169 Accepted Submission(s): 902 Problem D…...

    2024/3/29 7:35:45
  18. 学习光线追踪(18)---镜面反射贴图

    0.简介前面我们实现的镜面反射都是统一的反射指数,但是对于有些材质就不适合有太强的反光效果,通过镜面反射纹理来实现不同部位的反射效果不同1.添加纹理这里和纹理的使用差不多,将原来的参数替换成图片,这里的图片应该是一张灰度图如下图。箱子的反射贴图这个是木箱子的反…...

    2024/3/29 7:35:44
  19. 【DBUtils数据库连接池多表连接查询】

    DBUtils数据库连接池多表连接查询 MapListHandler的使用(具体使用方式查看官方文档http://commons.apache.org/proper/commons-dbutils/apidocs/index.html) key——sql语句查询的字段 value——数据库中查询得到的结果 出现的问题描述 对于多表连接查询,如果使用BeanListHa…...

    2024/3/29 12:59:43
  20. String .toString() String.valueOf(Object)区别

    String .toString() String.valueOf(Object)区别(String)将object转成String类型的值。需要注意的是类型必须能转成String类型,(例如Integer类型就不行)否则抛出ClassCastException备注:null值可以强制转换为任何java类类型,(String)null是合法的.toString()java.lang.…...

    2024/3/29 12:59:41

最新文章

  1. Linux 第十七章

    &#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…...

    2024/5/1 18:34:26
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 文心一言 vs GPT-4 —— 全面横向比较

    对于文心一言和 GPT-4 这两者之间的全面横向比较&#xff0c;我们可以从多个方面来看待它们的区别和优劣势。 文心一言 文心一言是一款基于深度学习的中文文本生成模型&#xff0c;专注于生成优美的古风诗句和语录。以下是它的一些特点&#xff1a; 专注于古风诗句和语录: 文…...

    2024/5/1 7:30:19
  4. verilog设计-CDC:单bit脉冲快时钟域到慢时钟域

    一、前言 当单bit信号由快时钟域传递给慢时钟域时&#xff0c;快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲&#xff0c;快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期&#xff0c;很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间&#xff0c;导致该脉冲…...

    2024/5/1 15:10:30
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57