机器学习算法——决策树算法详细解读

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

分类树(决策树)是一种十分常用的分类方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。

 这里引入一些标签,信息熵、信息增益、信息增益率、基尼系数,这些都是非常常用的必须背会

信息熵

信息熵是由克劳德·香农(Claude Shannon)在20世纪40年代提出的概念,它是信息论中的一个基本概念,用于描述信息的不确定度。信息熵的概念基于热力学中的熵,并将之应用于信息的量化度量。

信息熵通常用数学公式表示为( H(X) ),其中( X )代表一个随机变量,其取值有( n )种可能,每种取值的概率为( p(x_i) ),则( H(X) )的计算公式为

这个公式表明,一个事件的不确定性与该事件发生的概率有关,概率越小的事件发生时带来的信息量越大,反之亦然。

例如,如果在一个班级中随机抽取一名学生,如果抽取到的学生是天津大学或南开大学的学生,猜测正确的概率为0.5,此时的信息熵最高。而当提供更多关于学生的信息,如主修学科或内衣颜色,这些信息可以用来降低不确定性,从而影响信息熵。

信息熵在机器学习、数据压缩、密码学等领域有广泛应用,它帮助我们理解和量化数据中的不确定性。

信息增益

在概率论和信息论中,信息增益(information gain [2])是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。

 H(A/B)是条件信息熵。

信息增益率

信息增益率是一种用于特征选择的指标,通常在决策树算法中使用。它结合了信息增益和特征的自身信息量,可以更好地处理特征取值较多的情况。

信息增益率是在,信息熵和信息增益的基础上进行求解的

基尼系数

基尼系数(英文:Gini index、Gini Coefficient),是国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标之一。其包括收入基尼系数(Income Gini)和财富基尼系数(Wealth Gini)。两者的算法大致相同,区别在于收入基尼系数的数据是来自于某地区的家庭收入统计,财富基尼系数的数据是来自于某地区的家庭总资产统计。

基尼系数最大为“1”,最小等于“0”。基尼系数越接近0表明收入分配越是趋向平等。国际上并没有一个组织或教科书给出最适合的基尼系数标准。但有不少人认为基尼系数小于0.2时,居民收入过于平均,0.2-0.3之间时较为平均,0.3-0.4之间时比较合理,0.4-0.5时差距过大,大于0.5时差距悬殊。

基尼系数最早由意大利统计与社会学家Corrado Gini在1912年提出。据中国国家统计局的数据,用于描绘收入差距的基尼系数自2000年开始就越过了0.4的警戒线,并且直到2009年呈上升趋势,2009-2012年呈下降趋势,并在2013年至今稳定于0.47,仅在2015年降至0.46。 

决策树常用的算法都是,ID3、C4.5、CART

数据展示:

  sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  
0                  5.1               3.5                1.4               0.2   
1                  4.9               3.0                1.4               0.2   
2                  4.7               3.2                1.3               0.2   
3                  4.6               3.1                1.5               0.2   
4                  5.0               3.6                1.4               0.2   
5                  5.4               3.9                1.7               0.4   
6                  4.6               3.4                1.4               0.3   
7                  5.0               3.4                1.5               0.2   
8                  4.4               2.9                1.4               0.2   
9                  4.9               3.1                1.5               0.1   
10                 5.4               3.7                1.5               0.2   
11                 4.8               3.4                1.6               0.2   
12                 4.8               3.0                1.4               0.1   
13                 4.3               3.0                1.1               0.1   
14                 5.8               4.0                1.2               0.2   
15                 5.7               4.4                1.5               0.4   
16                 5.4               3.9                1.3               0.4   
17                 5.1               3.5                1.4               0.3   
18                 5.7               3.8                1.7               0.3   
19                 5.1               3.8                1.5               0.3   
20                 5.4               3.4                1.7               0.2   
21                 5.1               3.7                1.5               0.4   
22                 4.6               3.6                1.0               0.2   
23                 5.1               3.3                1.7               0.5   
24                 4.8               3.4                1.9               0.2   
25                 5.0               3.0                1.6               0.2   
26                 5.0               3.4                1.6               0.4   
27                 5.2               3.5                1.5               0.2   
28                 5.2               3.4                1.4               0.2   
29                 4.7               3.2                1.6               0.2   
30                 4.8               3.1                1.6               0.2   
31                 5.4               3.4                1.5               0.4   
32                 5.2               4.1                1.5               0.1   
33                 5.5               4.2                1.4               0.2   
34                 4.9               3.1                1.5               0.2   
35                 5.0               3.2                1.2               0.2   
36                 5.5               3.5                1.3               0.2   
37                 4.9               3.6                1.4               0.1   
38                 4.4               3.0                1.3               0.2   
39                 5.1               3.4                1.5               0.2   
40                 5.0               3.5                1.3               0.3   
41                 4.5               2.3                1.3               0.3   
42                 4.4               3.2                1.3               0.2   
43                 5.0               3.5                1.6               0.6   
44                 5.1               3.8                1.9               0.4   
45                 4.8               3.0                1.4               0.3   
46                 5.1               3.8                1.6               0.2   
47                 4.6               3.2                1.4               0.2   
48                 5.3               3.7                1.5               0.2   
49                 5.0               3.3                1.4               0.2   
50                 7.0               3.2                4.7               1.4   
51                 6.4               3.2                4.5               1.5   
52                 6.9               3.1                4.9               1.5   
53                 5.5               2.3                4.0               1.3   
54                 6.5               2.8                4.6               1.5   
55                 5.7               2.8                4.5               1.3   
56                 6.3               3.3                4.7               1.6   
57                 4.9               2.4                3.3               1.0   
58                 6.6               2.9                4.6               1.3   
59                 5.2               2.7                3.9               1.4   
60                 5.0               2.0                3.5               1.0   
61                 5.9               3.0                4.2               1.5   
62                 6.0               2.2                4.0               1.0   
63                 6.1               2.9                4.7               1.4   
64                 5.6               2.9                3.6               1.3   
65                 6.7               3.1                4.4               1.4   
66                 5.6               3.0                4.5               1.5   
67                 5.8               2.7                4.1               1.0   
68                 6.2               2.2                4.5               1.5   
69                 5.6               2.5                3.9               1.1   
70                 5.9               3.2                4.8               1.8   
71                 6.1               2.8                4.0               1.3   
72                 6.3               2.5                4.9               1.5   
73                 6.1               2.8                4.7               1.2   
74                 6.4               2.9                4.3               1.3   
75                 6.6               3.0                4.4               1.4   
76                 6.8               2.8                4.8               1.4   
77                 6.7               3.0                5.0               1.7   
78                 6.0               2.9                4.5               1.5   
79                 5.7               2.6                3.5               1.0   
80                 5.5               2.4                3.8               1.1   
81                 5.5               2.4                3.7               1.0   
82                 5.8               2.7                3.9               1.2   
83                 6.0               2.7                5.1               1.6   
84                 5.4               3.0                4.5               1.5   
85                 6.0               3.4                4.5               1.6   
86                 6.7               3.1                4.7               1.5   
87                 6.3               2.3                4.4               1.3   
88                 5.6               3.0                4.1               1.3   
89                 5.5               2.5                4.0               1.3   
90                 5.5               2.6                4.4               1.2   
91                 6.1               3.0                4.6               1.4   
92                 5.8               2.6                4.0               1.2   
93                 5.0               2.3                3.3               1.0   
94                 5.6               2.7                4.2               1.3   
95                 5.7               3.0                4.2               1.2   
96                 5.7               2.9                4.2               1.3   
97                 6.2               2.9                4.3               1.3   
98                 5.1               2.5                3.0               1.1   
99                 5.7               2.8                4.1               1.3   
100                6.3               3.3                6.0               2.5   
101                5.8               2.7                5.1               1.9   
102                7.1               3.0                5.9               2.1   
103                6.3               2.9                5.6               1.8   
104                6.5               3.0                5.8               2.2   
105                7.6               3.0                6.6               2.1   
106                4.9               2.5                4.5               1.7   
107                7.3               2.9                6.3               1.8   
108                6.7               2.5                5.8               1.8   
109                7.2               3.6                6.1               2.5   
110                6.5               3.2                5.1               2.0   
111                6.4               2.7                5.3               1.9   
112                6.8               3.0                5.5               2.1   
113                5.7               2.5                5.0               2.0   
114                5.8               2.8                5.1               2.4   
115                6.4               3.2                5.3               2.3   
116                6.5               3.0                5.5               1.8   
117                7.7               3.8                6.7               2.2   
118                7.7               2.6                6.9               2.3   
119                6.0               2.2                5.0               1.5   
120                6.9               3.2                5.7               2.3   
121                5.6               2.8                4.9               2.0   
122                7.7               2.8                6.7               2.0   
123                6.3               2.7                4.9               1.8   
124                6.7               3.3                5.7               2.1   
125                7.2               3.2                6.0               1.8   
126                6.2               2.8                4.8               1.8   
127                6.1               3.0                4.9               1.8   
128                6.4               2.8                5.6               2.1   
129                7.2               3.0                5.8               1.6   
130                7.4               2.8                6.1               1.9   
131                7.9               3.8                6.4               2.0   
132                6.4               2.8                5.6               2.2   
133                6.3               2.8                5.1               1.5   
134                6.1               2.6                5.6               1.4   
135                7.7               3.0                6.1               2.3   
136                6.3               3.4                5.6               2.4   
137                6.4               3.1                5.5               1.8   
138                6.0               3.0                4.8               1.8   
139                6.9               3.1                5.4               2.1   
140                6.7               3.1                5.6               2.4   
141                6.9               3.1                5.1               2.3   
142                5.8               2.7                5.1               1.9   
143                6.8               3.2                5.9               2.3   
144                6.7               3.3                5.7               2.5   
145                6.7               3.0                5.2               2.3   
146                6.3               2.5                5.0               1.9   
147                6.5               3.0                5.2               2.0   
148                6.2               3.4                5.4               2.3   
149                5.9               3.0                5.1               1.8   

 ID3代码

# 导入所需库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 构建ID3决策树模型
dt_classifier = DecisionTreeClassifier(criterion='entropy')  # 使用信息增益作为划分标准
dt_classifier.fit(X_train, y_train)# 可视化决策树
plt.figure(figsize=(10, 6))
plot_tree(dt_classifier, feature_names=iris.feature_names, class_names=iris.target_names, filled=True)
plt.show()

 

 C4.5和CART算法这里引入了一个剪枝操作

剪枝

剪枝(pruning)的目的是为了避免决策树模型的过拟合。因为决策树算法在学习的过程中为了尽可能的正确的分类训练样本,不停地对结点进行划分,因此这会导致整棵树的分支过多,也就导致了过拟合。

可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集 自身的一些特点当做所有数据都具有的一般性质而导致的过拟合。

决策树的剪枝策略最基本的有两种:预剪枝(pre-pruning)和后剪枝(post-pruning)

预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。

•优点
        –降低过拟合风险
        –显著减少训练时间和测试时间开销。
•缺点
        –欠拟合风险 :有些分支的当前划分虽然不能提升泛化性能,但 在其基础上进行的后续划分却有可能显著提高性能。预剪枝基于 “ 贪心 ”本质禁止这些分支展开,带来了欠拟合风险。
                        

后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。

•优点
        后剪枝比预剪枝保留了更多的分支, 欠拟合风险小 , 泛化性能往往优于预剪枝决策树
•缺点
        训练时间开销大 :后剪枝过程是在生成完全决策树 之后进行的,需要自底向上对所有非叶结点逐一计算

C4.5是前剪枝,CART是后剪枝

C4.5代码

# 导入所需库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 构建C4.5决策树模型,并设置剪枝参数
dt_classifier = DecisionTreeClassifier(criterion='entropy', min_samples_split=3, min_samples_leaf=2)
dt_classifier.fit(X_train, y_train)# 可视化决策树
plt.figure(figsize=(20, 15))
plot_tree(dt_classifier, feature_names=iris.feature_names, class_names=iris.target_names, filled=True)
plt.show()

 

CART代码

# 导入所需库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 构建CART决策树模型,并设置剪枝参数
cart_classifier = DecisionTreeClassifier(criterion='gini', ccp_alpha=0.01)
cart_classifier.fit(X_train, y_train)# 可视化决策树
plt.figure(figsize=(20, 15))
plot_tree(cart_classifier, feature_names=iris.feature_names, class_names=iris.target_names, filled=True)
plt.show()

三种算法对比

分析鸾尾花数据集

代码

# 导入所需库
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt# 加载红酒数据集
wine = load_wine()
X = wine.data
y = wine.target# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化三个模型的准确率列表
accuracies = []# 循环遍历三种算法
for criterion in ['entropy', 'entropy', 'gini']:# 构建并训练决策树模型classifier = DecisionTreeClassifier(criterion=criterion)classifier.fit(X_train, y_train)# 在测试集上进行预测y_pred = classifier.predict(X_test)# 计算准确率并添加到准确率列表中accuracy = (y_pred == y_test).mean()accuracies.append(accuracy)# 绘制折线图
plt.plot(['ID3', 'C4.5', 'CART'], accuracies, marker='o')
plt.title('Decision Tree Algorithms Accuracy Comparison')
plt.xlabel('Algorithm')
plt.ylabel('Accuracy')
plt.ylim(0.9, 1.0)  # 设置y轴范围
plt.grid(True)
plt.show()

由于都是1.0的准确率,所有我们换一种数据集,我这里切换的是红酒品类数据集

 

# 导入所需库
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt# 加载红酒数据集
wine = load_wine()
X = wine.data
y = wine.target# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化三个模型的准确率列表和特征重要性列表
accuracies = []
feature_importances = []# 循环遍历三种算法
for criterion in ['entropy', 'entropy', 'gini']:# 构建并训练决策树模型classifier = DecisionTreeClassifier(criterion=criterion)classifier.fit(X_train, y_train)# 在测试集上进行预测y_pred = classifier.predict(X_test)# 计算准确率并添加到准确率列表中accuracy = (y_pred == y_test).mean()accuracies.append(accuracy)# 提取特征重要性并添加到列表中feature_importances.append(classifier.feature_importances_)# 绘制折线图
plt.figure(figsize=(20, 10))# 绘制准确率比较图
plt.subplot(1, 2, 1)
plt.plot(['ID3', 'C4.5', 'CART'], accuracies, marker='o')
plt.title('Decision Tree Algorithms Accuracy Comparison')
plt.xlabel('Algorithm')
plt.ylabel('Accuracy')
plt.ylim(0.9, 1.0)  # 设置y轴范围
plt.grid(True)# 绘制特征重要性图
plt.subplot(1, 2, 2)
plt.bar(range(len(wine.feature_names)), feature_importances[0], tick_label=wine.feature_names)
plt.title('Feature Importance (ID3)')
plt.xlabel('Features')
plt.ylabel('Importance')plt.xticks(rotation=45, ha='right')  # 旋转x轴标签
plt.tight_layout()  # 调整布局以防止重叠
plt.show()

 

如果你能看到这里,并学会应用,恭喜你你的决策树算法,算是入门了

加油加油

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

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

相关文章

Ansys在压力容器行业的典型应用(下)

压力容器热棘轮效应安定性分析 • 设计中的难点 ‐ 平均应力和交变载荷联合作用时,每次循环可能使容器产生一个不可逆的塑性应变增量,当塑性应变值递增至材料塑性被耗尽时,就会发生断裂。这种断裂与一般的疲劳破坏不同,一般的疲…

爱帮供应链邀您参观2024杭州快递物流供应链与技术装备展览会

2024年7月8-10日|杭州国际博览中心 同期举办:2024中国数字物流技术与应用展 2024国际电商物流包装产业展 2024新能源商用车、物流车展 展会介绍 本届展会致力于全面展示快递物流上下游领域的创新解决方案,涵盖快递物流供应链、智能装备、AGV机器人与…

实现 Table 的增加和删除,不依赖后端数据回显

需求 删除前 删除后 分析 首先写一个 Table <a-card style"width:100%"><template#extra><a-button type"text" click"addSelectItem" style"margin-right: 5px">添加</a-button><a-button type&quo…

基于JavaWeb开发的springboot网约车智能接单规划小程序[附源码]

基于JavaWeb开发的springboot网约车智能接单规划小程序[附源码] &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种…

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点&#xff0c;方便尾插List…

基于Docker构建CI/CD工具链(十)总结

我们用九篇文章简单的介绍了使用Docker构建CICD工具链&#xff0c;希望对你的工作有所帮助。 基于Docker构建CI/CD工具链&#xff08;一&#xff09;构建基础工具镜像 基于Docker构建CI/CD工具链&#xff08;二&#xff09;快速搭建Gitlab代码库 基于Docker构建CI/CD工具链&…

RA4000CE为汽车动力传动系统提供解决方案

目前汽车电气化的水平越来越高&#xff0c;其中比较显著的一个发展方向就是将发动机管理系统和自动变速器控制系统&#xff0c;集成为动力传动系统的综合控制(PCM)。作为汽车动力的核心部件&#xff0c;通过电子系统的运用&#xff0c;将外部多个传感器和执行环节的数据进行统一…

第十五届蓝桥杯题解-好数

题目大意&#xff1a;一个数的低位为奇数&#xff0c;次低位为偶数&#xff0c;以此类推的数成为好数&#xff0c;例如&#xff1a;1&#xff0c;3&#xff0c;5&#xff0c;7&#xff0c;9 给定一个n&#xff0c;求1-n所有好数的个数&#xff0c;n<1e7 思路&#xff1a;一…

媒体邀约的好处?怎么邀请媒体?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约的好处主要体现在提高品牌知名度、扩大受众群体以及与媒体建立良好的合作关系。 媒体邀约是一种有效的公关策略&#xff0c;通过吸引媒体关注来促进信息的传播。它可以帮助组织…

速看!DaVinci Resolve Studio19.0 下载地址及安装教程

DaVinci Resolve是一款全面的视频后期制作软件&#xff0c;由Blackmagic Design开发。它集成了视频编辑、颜色校正、音频后期处理和视觉效果合成等功能&#xff0c;被广泛应用于电影、电视和广告制作等领域。 DaVinci Resolve提供了强大的视频编辑工具&#xff0c;用户可以进行…

【智能算法】鸭群算法(DSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;Zhang等人受到自然界鸭群觅食行为启发&#xff0c;提出了鸭群算法&#xff08;Duck Swarm Algorithm, DSA&#xff09;。 2.算法原理 2.1算法思想 DSA基于自然界鸭群觅食过程&…

机器人视觉软件实现目标检测通常借助深度学习技术和计算机视觉算法

机器人视觉软件实现目标检测通常借助深度学习技术和计算机视觉算法。以下是一般而言的目标检测实现步骤&#xff1a; 1、数据收集与标注&#xff1a;首先需要收集包含目标物体的大量图像数据&#xff0c;并对这些图像进行标注&#xff0c;标注出目标物体的位置和类别信息。这些…

数据结构速成--栈

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 目录 一…

基于微信小程序投票评选系统的设计与实现(论文+源码)_kaic

摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮…

Vue3(四):组件通信详解(九种方法)

主要有九种方法&#xff0c;以下是详细解释及使用方法&#xff1a; 1.props props实现父子间的通信&#xff0c;是使用频率最高的。 &#xff08;1&#xff09;父传子&#xff1a;属性值是非函数。 以Father.vue和Child.vue 为例。 父组件中&#xff0c;引入子组件并给子组…

实战 K8s ConfigMap:打造动态可配置的云原生应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、k8s简介 2、ConfigMap简介 二、Con…

【每日刷题】Day16

【每日刷题】Day16 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 2. 160. 相交链表 - 力扣&…

xcode c++项目设置运行时参数

在 Xcode 项目中&#xff0c;你可以通过配置 scheme 来指定在运行时传递的参数。以下是在 Xcode 中设置运行时参数的步骤&#xff1a; 打开 Xcode&#xff0c;并打开你的项目。在 Xcode 菜单栏中&#xff0c;选择 "Product" -> "Scheme" -> "E…

一次配置Docker环境的完整记录

一次配置Docker环境的完整记录 Docker环境搭建报错与解决报错一报错二报错三 Docker环境搭建 本节介绍了一次配置docker环境的完整记录&#xff1a; 编写Dockerfile文件&#xff1a; FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-develRUN rm /etc/apt/sources.list.d/cuda.l…

LeetCode 409—— 最长回文串

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 要想组成回文串&#xff0c;那么只有最中间的字符可以是奇数个&#xff0c;其余字符都必须是偶数个。 所以&#xff0c;我们先遍历一遍字符串&#xff0c;统计出每个字符出现的次数。 然后如果某个字符出现了偶…