【机器学习-21】集成学习---Bagging之随机森林(RF)

news2024/7/4 5:50:34

【机器学习】集成学习---Bagging之随机森林(RF)

  • 一、引言
    • 1. 简要介绍集成学习的概念及其在机器学习领域的重要性。
    • 2. 引出随机森林作为Bagging算法的一个典型应用。
  • 二、随机森林原理
    • 1. Bagging算法的基本思想
    • 2. 随机森林的构造
    • 3. 随机森林的工作机制
  • 三、随机森林的伪代码
  • 四、随机森林的优点
  • 五、案例分析
  • 六、总结与展望

一、引言

1. 简要介绍集成学习的概念及其在机器学习领域的重要性。

  在机器学习的广袤领域中,集成学习是一种强大且灵活的策略,它通过将多个单独的学习器(或称为“基学习器”)组合起来,形成一个更加强大的学习器,以提升模型的预测性能。集成学习的核心思想在于“集体智慧”的力量,即多个学习器的联合决策通常会比单一学习器的决策更为准确和稳健。

  集成学习的重要性在于它能够有效解决单一学习器可能存在的过拟合、欠拟合、稳定性差等问题。通过将多个基学习器的预测结果进行综合,集成学习不仅能够提高预测精度,还能增强模型的鲁棒性和泛化能力。此外,集成学习还能够利用不同基学习器之间的差异性,捕捉到数据中的更多信息,从而进一步提升预测性能。

  在集成学习的众多策略中,Bagging(Bootstrap Aggregating)是一种非常受欢迎的方法。Bagging通过自助法采样生成多个不同的训练子集,并在每个子集上构建基学习器。由于每个基学习器都是在不同的数据子集上训练的,因此它们之间具有较大的差异性。这种差异性使得Bagging能够在集成过程中有效地降低模型的方差,提高预测的稳定性。

2. 引出随机森林作为Bagging算法的一个典型应用。

  随机森林(Random Forest,简称RF)则是Bagging算法的一个典型应用,也是当前机器学习领域最受欢迎的算法之一。随机森林以决策树作为基学习器,并在构建每棵决策树时引入了额外的随机性。具体来说,随机森林在构建决策树时不仅使用自助法采样生成不同的训练子集,还会在每个节点分裂时随机选择一部分特征进行考虑。这种随机性的引入进一步增加了基学习器之间的差异性,使得随机森林能够取得更好的预测性能。

  综上所述,集成学习是一种强大的机器学习策略,而随机森林作为Bagging算法的一个典型应用,不仅继承了Bagging的优点,还通过引入随机性进一步提升了模型的预测性能。在接下来的内容中,我们将详细探讨随机森林的原理、实现方式、优点以及实际应用案例,以期为读者提供更深入的理解和认识。

二、随机森林原理

  随机森林是一种基于集成学习的预测模型,它结合了多个决策树的预测结果来提高整体预测的准确性。随机森林的构造基于Bagging算法,通过在数据样本和特征选择上的随机性,增加模型的多样性和稳定性。

1. Bagging算法的基本思想

  在集成学习原理总结中,给出bagging的原理图。
在这里插入图片描述

  (1)、Bagging的特点“随机采样”。随机采集跟训练集个数m相同的样本,采集T次。得到采样集。

  (注意:GBDT(Gradient Boosted Decision Tree)的子采样是无放回采样,而Bagging的子采样是放回采样。)

  (2)、对于一个样本,在m个样本的随机采样中,每次被采集到的概率是1/m。

  在m次采样中没有采集到的概率是:

   P (一次都未被采集) = ( 1 − 1 / m ) m P(一次都未被采集) = (1-1/m)^m P(一次都未被采集)=(11/m)m

  对m取极限得到:
lim ⁡ m → ∞ ( 1 − 1 m ) m → 1 e ≈ 0.368 \begin{aligned} \lim_{m\to \infty} (1 - \tfrac{1}{m})^m \rightarrow \tfrac{1}{e} \approx 0.368 \end{aligned} mlim(1m1)me10.368

  也就是说bagging的每轮随机采样中,训练集大约有36.8%的数据没被采集。

  对于大约36.8%没被采样的数据,称为“袋外数据”。这些数据没参与训练集模型的拟合,但可以作为测试集用于测试模型的泛化能力,这样的测试结果称为“外包估计”。

  (3)、bagging对于弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络。

  (4)、bagging的结合策略也比较简单,对于分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。

  由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些。

  Bagging算法的基本思想是通过结合多个基学习器的预测结果来提升整体性能。具体来说,Bagging采用自助法(Bootstrap)采样来生成多个不同的训练子集,并在每个子集上构建基学习器。这种采样方式是有放回的,即每次从原始训练集中随机抽取一个样本后,该样本仍然可以被再次抽取。

  通过自助法采样,每个基学习器都是在不同的数据子集上训练的,因此它们之间具有较大的差异性。这种差异性使得Bagging能够在集成过程中有效地降低模型的方差,提高预测的稳定性。

  在构建基学习器时,Bagging通常采用决策树作为基学习器。决策树是一种易于理解和实现的分类与回归方法,通过递归地将数据集划分为若干个子集,并根据子集的纯度来选择最佳的划分属性。

  在得到多个基学习器的预测结果后,Bagging通过投票或平均的方式将它们组合起来得到最终的预测结果。对于分类问题,通常采用投票的方式,即选择出现次数最多的类别作为最终的预测结果;对于回归问题,则采用平均的方式,即将所有基学习器的预测值取平均得到最终的预测值。

2. 随机森林的构造

  随机森林在Bagging的基础上进行了扩展,通过在构建决策树时引入额外的随机性来增加模型的多样性。具体来说,随机森林在构建每棵决策树时,不仅使用自助法采样生成不同的训练子集,还会在每个节点分裂时随机选择一部分特征进行考虑。

  这种随机选择特征子集的方式使得每棵决策树在构建过程中都只能看到部分特征的信息,从而增加了基学习器之间的差异性。由于每棵决策树都是基于不同的特征子集进行构建的,因此它们对于相同的输入数据可能会产生不同的预测结果。这种差异性使得随机森林能够在集成过程中捕捉到更多的信息,进一步提高预测的准确性。

3. 随机森林的工作机制

  随机森林的工作机制相对简单直观。首先,通过对原始训练集进行自助法采样生成多个不同的子数据集。然后,在每个子数据集上构建一棵决策树,并在构建过程中随机选择特征子集进行分裂。这样,我们就得到了一个由多棵决策树组成的随机森林。

  在预测阶段,对于一个新的输入样本,我们将其输入到随机森林中的每一棵决策树中,得到每棵树的预测结果。然后,根据具体的任务类型(分类或回归),通过投票或平均的方式将所有树的预测结果组合起来,得到最终的预测结果。

  由于随机森林结合了多个基学习器的预测结果,并且基学习器之间具有较大的差异性,因此它能够有效地降低模型的方差和偏差,提高预测的准确性和稳定性。同时,随机森林还具有良好的可解释性和可视化能力,使得用户可以更好地理解和分析模型的预测结果。

三、随机森林的伪代码

  随机森林(Random Forest,简称RF)是一种基于集成学习的算法,它通过构建并结合多个决策树来提高预测的准确性和稳定性。下面我们将通过伪代码的形式详细描述随机森林的算法流程。

输入:
    D:原始训练数据集
    m:每次分裂时考虑的特征数(m < 总特征数)
    n_trees:随机森林中决策树的数量

输出:
    RF:随机森林模型

算法流程:
1. 初始化随机森林模型RF为空

2. 对于i从1到n_trees:
    a. 使用自助法(Bootstrap)从D中有放回地随机抽取样本,形成训练子集D_i
    
    b. 在D_i上构建一棵决策树T_i:
        i. 初始化根节点,包含D_i中的所有样本
        ii. 对于当前节点N,如果它包含的样本都属于同一类别C,或者样本数少于预设阈值,或者没有更多特征可用进行分裂,则将该节点标记为叶节点,其类别为C(对于分类问题)或该节点样本的平均值(对于回归问题)
        iii. 否则,从D_i中的m个特征中随机选择一个特征子集
        iv. 使用最佳划分准则(如信息增益、基尼指数等)在选定的特征子集中选择一个特征进行分裂,将当前节点N分裂为多个子节点
        v. 对每个子节点递归执行步骤ii-iv,直到满足停止条件
    
    c. 将构建好的决策树T_i添加到随机森林模型RF中

3. 返回随机森林模型RF

  在上面的伪代码中,我们描述了随机森林算法的主要步骤。首先,我们初始化一个空的随机森林模型。然后,对于每一棵树,我们使用自助法从原始训练数据集中随机抽取样本以形成训练子集。在构建每棵决策树时,我们采用了随机选择特征子集的策略来增加基学习器之间的差异性。具体来说,在每次分裂时,我们并不是考虑所有的特征,而是从特征集中随机选择一个子集来进行分裂。这样,每棵树都是在不同的特征和样本子集上构建的,从而增加了模型的多样性。最后,我们将所有构建好的决策树添加到随机森林模型中,并返回这个模型以供后续的预测使用。

  需要注意的是,随机森林中的每棵树都是独立构建的,并且它们的预测结果是通过投票(对于分类问题)或平均(对于回归问题)的方式来进行集成的。这种集成策略使得随机森林能够充分利用各个基学习器的优势,提高整体的预测性能。

  此外,随机森林还有一些超参数可以调整,如每棵树的最大深度、分裂时考虑的最小样本数等,这些参数的选择会影响到模型的复杂度和性能。在实际应用中,我们可以通过交叉验证等方法来选择合适的超参数,以优化模型的预测效果。

四、随机森林的优点

  随机森林作为一种集成学习算法,在机器学习领域具有广泛的应用,其优点使得它在处理各种复杂问题时表现出色。下面将详细阐述随机森林的几个主要优点。

1、预测精度高

  随机森林通过集成多个基学习器(通常是决策树)的预测结果,能够有效提升整体的预测精度。由于每棵决策树都是基于不同的样本子集和特征子集构建的,因此它们之间具有较大的差异性。当这些差异性的基学习器进行集成时,可以通过投票或平均的方式将各自的优点融合起来,从而得到更为准确和稳定的预测结果。这使得随机森林在分类和回归问题上都能表现出色,尤其在处理具有复杂结构和非线性关系的数据时更为有效。

2、能够处理高维数据

  在高维数据场景下,许多机器学习算法可能会面临维度灾难的问题,即随着特征数量的增加,模型的复杂度急剧上升,导致过拟合和计算效率下降。然而,随机森林在处理高维数据时具有天然的优势。它通过在每个节点分裂时随机选择特征子集进行考虑,有效地降低了模型的复杂度,并避免了过拟合的发生。同时,由于随机森林是基于树的算法,它能够自动地选择对预测结果有贡献的特征,忽略那些不相关的特征,从而提高了模型的泛化能力。

3、能够评估特征的重要性

  随机森林提供了一种有效的特征重要性评估方法。在构建每棵决策树的过程中,可以计算每个特征在分裂节点时所带来的不纯度减少量(如信息增益或基尼指数减少量)。通过将这些不纯度减少量在随机森林中所有决策树上进行平均,就可以得到每个特征的平均不纯度减少量,从而评估特征的重要性。这种方法不仅能够帮助我们理解哪些特征对预测结果有重要影响,还可以用于特征选择和降维,进一步提高模型的性能和可解释性。

4、对缺失值不敏感

  在实际应用中,数据往往存在缺失值的问题。许多机器学习算法在处理含有缺失值的数据时需要进行数据清洗或填充操作,这可能会引入额外的噪声或偏差。然而,随机森林对缺失值并不敏感。在构建决策树时,随机森林能够自动地处理含有缺失值的样本,通过考虑不同特征值的组合来找到最优的分裂方式。这使得随机森林能够在不进行数据清洗的情况下直接应用于实际数据集,提高了算法的灵活性和实用性。

5、易于并行化

  由于随机森林中的每棵决策树都是独立构建的,因此该算法可以很容易地进行并行化。这意味着我们可以利用多核处理器或分布式计算平台来同时构建多棵决策树,从而显著提高计算效率。这种并行化的特性使得随机森林能够处理大规模数据集和实时预测任务,满足实际应用中的性能需求。

  综上所述,随机森林具有预测精度高、能够处理高维数据、能够评估特征的重要性、对缺失值不敏感以及易于并行化等优点。这些优点使得随机森林在机器学习领域具有广泛的应用前景,并为解决各种实际问题提供了有效的工具。

五、案例分析

  在本节中,我们将通过一个具体的案例来展示随机森林(RF)在实际问题中的应用。我们将选择一个具有代表性的数据集,执行数据预处理,构建随机森林模型,并评估其性能。最后,我们将分析特征的重要性,并讨论随机森林在该案例中的优势和局限性。

1、案例选择

  我们选择使用经典的Iris数据集进行分类任务。Iris数据集包含了150个样本,每个样本有四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及一个目标变量(鸢尾花的种类)。

2、数据预处理

  首先,我们需要加载数据。在Python中,我们可以使用sklearn库中的load_iris函数来加载Iris数据集。然后,我们可以查看数据的形状和特征描述。由于Iris数据集是完整且标准化的,我们不需要进行缺失值处理或特征缩放。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
import numpy as np

# 加载数据
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.3, random_state=42)

3、模型构建与评估

  接下来,我们构建随机森林分类器,并设置合适的参数。然后,我们使用交叉验证来评估模型的性能。

# 构建随机森林模型
rf = RandomForestClassifier(n_estimators=100, max_depth=3, random_state=42)

# 交叉验证评估模型性能
scores = cross_val_score(rf, X_train, y_train, cv=5)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

# 训练模型
rf.fit(X_train, y_train)

# 预测测试集
y_pred = rf.predict(X_test)

# 评估模型性能
print("Accuracy:", accuracy_score(y_test, y_pred));
print(classification_report(y_test, y_pred))

  模型识别的结果的如下:
在这里插入图片描述

  为了分析模型的过拟合和欠拟合情况,我们可以绘制学习曲线和验证曲线。这需要更多的代码,并涉及到对模型性能的详细分析。

4、特征重要性分析

  随机森林提供了评估特征重要性的功能,我们可以利用这一功能来分析哪些特征对预测结果贡献最大。

# 获取特征重要性
importances = rf.feature_importances_
indices = np.argsort(importances)[::-1]

# 打印特征排名
for f in range(X.shape[1]):
    print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))

# 绘制特征重要性图
plt.figure(figsize=(12, 6))
plt.title("Feature importances")
plt.bar(range(X.shape[1]), importances[indices], color="r", align="center")
plt.xticks(range(X.shape[1]), iris.feature_names, rotation=90)
plt.xlim([-1, X.shape[1]])
plt.show()

在这里插入图片描述

5、结果讨论

  通过与其他机器学习算法(如决策树、逻辑回归、支持向量机等)进行比较,我们可以发现随机森林在分类任务中通常表现出较高的性能。随机森林的优势在于它能够自动处理特征选择,对噪声和异常值具有较好的鲁棒性,并且不易过拟合。然而,随机森林也可能存在计算成本较高和解释性相对较差的局限性。在本案例中,随机森林成功地识别了鸢尾花分类的关键特征,并实现了较高的分类准确率。

  通过以上案例分析,我们详细展示了随机森林在实际问题中的应用过程,并通过代码实现了模型的构建、评估以及特征重要性分析。这些步骤不仅帮助我们理解随机森林的工作原理,还为我们在实际项目中应用随机森林提供了有益的参考。

六、总结与展望

  在本文中,我们深入探讨了集成学习中的一种重要方法——随机森林(Random Forest, RF)。随机森林以其出色的预测性能和稳定性,在机器学习领域占据了重要的地位。通过构建多个基学习器(决策树)的集成,随机森林能够显著提升预测的精度,并降低过拟合的风险。同时,随机森林在处理高维数据、评估特征重要性以及处理缺失值等方面也展现出独特的优势。

  在案例分析部分,我们以Iris数据集为例,展示了随机森林在实际分类任务中的应用。通过数据预处理、模型构建与评估以及特征重要性分析,我们验证了随机森林在分类任务中的高效性和准确性。此外,我们还通过与其他机器学习算法的性能对比,进一步凸显了随机森林在该案例中的优势。

  然而,随机森林并非万能之药。尽管它在许多问题上表现出色,但在某些特定情况下可能仍存在局限性。例如,当数据集的样本量较小时,随机森林的性能可能受到影响。此外,由于随机森林基于树的算法,其解释性相对较差,有时难以直观地理解模型的决策过程。

  展望未来,随机森林仍有广阔的发展前景。随着大数据和云计算技术的不断进步,随机森林在处理大规模数据集和实时预测任务方面的能力将得到进一步提升。同时,随着研究的深入,我们有望开发出更高效的算法和更精细的参数调优方法,以进一步提高随机森林的性能和稳定性。

  此外,随机森林在多个应用领域也具有广阔的应用前景。例如,在生物信息学领域,随机森林可以用于基因表达数据的分析和疾病预测;在金融领域,随机森林可以用于风险评估和信用评分;在医疗领域,随机森林可以用于辅助诊断和制定治疗方案。

  总之,随机森林作为一种强大的机器学习算法,已经在许多领域取得了显著的应用成果。未来,随着技术的不断进步和应用领域的不断扩展,随机森林将继续发挥其在机器学习领域的重要作用,并为解决实际问题提供有力的支持。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Samsung三星NP930XCJ-K01CN笔记本原厂Win10系统安装包下载

三星SAMSUNG笔记本电脑原装出厂Windows10预装OEM系统&#xff0c;恢复开箱状态自带系统 链接&#xff1a;https://pan.baidu.com/s/1Y3576Tsp8MtDxIpJGDucbA?pwdt0ox 提取码&#xff1a;t0ox 三星原装W10系统自带声卡,网卡,显卡,指纹,蓝牙等所有驱动、三星出厂主题专用壁纸…

vivado 在硬件中调试串行 I/O 设计-属性窗口

只要在“硬件 (Hardware) ”窗口中选中 GT 或 COMMON 块、在“链接 (Link) ”窗口中选中链接 &#xff0c; 或者在“扫描 (Scan)”窗口中选中扫描 &#xff0c; 那么就会在“ Properties ”窗口中显示该对象的属性。对于 GT 和 COMMON &#xff0c; 包括这些对象的所有属性、…

未雨绸缪:25岁Python程序员如何规划职业生涯,避免35岁职业危机?

一、程序员如何避免中年危机&#xff1f; 为了避免在35岁时被淘汰&#xff0c;程序员在25岁时可以采取一系列策略来规划自己的职业发展和提升技能。以下是我给大家整理的一些建议&#xff1a; 1. 持续学习 科技行业更新换代迅速&#xff0c;程序员需要保持对新技术和工具的敏…

揭秘大模型应用如何成为当红顶流?

Kimi广告神话背后的关键词战略 如果你生活在中国&#xff0c;你可能不认识ChatGPT&#xff0c;但你一定知道Kimi。无论是学生党还是打工人&#xff0c;都无法避开Kimi的广告。 刘同学在B站上搜教学视频时&#xff0c;弹出了一则软广&#xff0c;上面写着&#xff1a;“作业有…

SQL 基础 | BETWEEN 的常见用法

在SQL中&#xff0c;BETWEEN是一个操作符&#xff0c;用于选取介于两个值之间的数据。 它包含这两个边界值。BETWEEN操作符常用于WHERE子句中&#xff0c;以便选取某个范围内的值。 以下是BETWEEN的一些常见用法&#xff1a; 选取介于两个值之间的值&#xff1a; 使用 BETWEEN来…

批处理优化

1.4、总结 Key的最佳实践 固定格式&#xff1a;[业务名]:[数据名]:[id]足够简短&#xff1a;不超过44字节不包含特殊字符 Value的最佳实践&#xff1a; 合理的拆分数据&#xff0c;拒绝BigKey选择合适数据结构Hash结构的entry数量不要超过1000设置合理的超时时间 2、批处理优…

​【收录 Hello 算法】第 3 章 数据结构

第 3 章 数据结构 Abstract 数据结构如同一副稳固而多样的框架。 它为数据的有序组织提供了蓝图&#xff0c;算法得以在此基础上生动起来。 本章内容 3.1 数据结构分类3.2 基本数据类型3.3 数字编码 *3.4 字符编码 *3.5 小结

课时115:sed命令_进阶实践_高阶用法2

2.2.4 高阶用法2 学习目标 这一节&#xff0c;我们从 暂存实践、其他实践、小结 三个方面来学习。 暂存实践 简介 我们可以在缓存空间和暂存空间中进行数据的简单读取&#xff0c;还可以对数据进行一些复杂性的编辑操作常见的高阶命令P 打印模式空间开端至\n内容&#xff0…

Unable to find assembler. Install ‘yasm‘ or ‘nasm.‘ To build without

Unable to find assembler. Install yasm or nasm. To build without 一、概述二、解决办法 一、概述 系统&#xff1a;Ubuntu 22.04 在编译一个项目的时候提示我汇编器有一个问题&#xff0c;一个ysam 或者 nasm未安装 二、解决办法 sudo apt install yasm

银行智能化数据安全分类分级实践分享

文章目录 前言一、数据安全智能分类分级平台建设背景二、数据安全分类分级建设思路和实践1、做标签– 数据安全标签体系2、打标签– 鹰眼智能打标平台 3.03、用标签– 全行统一“数据安全打标签结果”服务提供前言 随着国家对数据安全的高度重视,以及相关法律法规的出台,数据…

【Leetcode每日一题】 分治 - 排序数组(难度⭐⭐)(69)

1. 题目解析 题目链接&#xff1a;912. 排序数组 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 归并排序&#xff08;Merge Sort&#xff09;是一种采用“分而治之”&#xff08;Divide and Conquer&#xff09;策略…

HNU-人工智能-实验3-贝叶斯分类器

人工智能-实验3 计科210x 甘晴void 【感悟】本实验值得自己完成一遍 文章目录 人工智能-实验3一、实验目的二、实验平台三、实验内容3.0 基础知识3.1 条件概率&#xff08;选择题&#xff09;3.2 贝叶斯公式&#xff08;选择题&#xff09;3.3 朴素贝叶斯分类算法流程3.3.1 算…

【华为】AC三层旁挂直接转发

【华为】AC三层旁挂直接转发 实验需求实验拓扑配置AC和AP二层通信ACLSW1LSW2AP2获取到的管理地址AP3获取到的管理地址 AP上线配置WLAN业务ACLSW1&#xff08;作DHCP地址池&#xff09;业务成功下发 访问公网&#xff08;NAT&#xff09;LSW1AR1 配置文档ACLSW1LSW2AR1 实验需求…

原来spring也可以AI

最近大模型是相当的火&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;、图像识别、语音识别等领域的应用&#xff0c;那对于工程同学来说应该如何接住这波破天的富贵呢&#xff1f; 想啥来啥&#xff0c;前段时间LangChain给我们整了一套钢铁战甲&#xff0c;让…

【机器学习】Ctrl-Adapter:视频生成领域的革新者

Ctrl-Adapter&#xff1a;视频生成领域的革新者 一、ControlNets的挑战与Ctrl-Adapter的应运而生二、Ctrl-Adapter的技术原理与实现三、Ctrl-Adapter的应用实例与性能表现四、Ctrl-Adapter的意义与未来展望 随着人工智能技术的飞速发展&#xff0c;图像与视频生成领域正经历着前…

Java性能优化(三):HashMap的设计与优化

作者主页&#xff1a; &#x1f517;进朱者赤的博客 精选专栏&#xff1a;&#x1f517;经典算法 作者简介&#xff1a;阿里非典型程序员一枚 &#xff0c;记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; ❤️觉得文章还…

《动手学深度学习》V2(00-10)

文章目录 一、学习目标二、环境搭建三、数据操作1、张量介绍2、运算符介绍3、广播介绍4、索引和切片5、节省内存6、课后练习实现 :fire: 四、数据预处理1、读取数据集2、处理缺失数据3、课后练习实现 :fire:①第一步&#xff1a;造数据②第二步 筛选遍历缺失值③第三步 统计降序…

arthas无法捕获到try catch了的异常怎么办呢?

本案例使用的arthas是最新版本3.7.2 要跟踪的代码&#xff1a; 1、arthas watch试下能不能捕获到 页面上请求 http://localhost:8080/exception发现捕获不了。 2、可以使用btrace捕获&#xff0c;能够捕获到 我本案例使用Eclipse编写btrace脚本 &#xff0c;首先引入btrace的…

assert函数详解

assert函数详解 1.函数概述2.assert函数一般用法3.assert函数的一些使用案例3.1判断大小3.2strlen函数的模拟实现3.3其它 4.注意 1.函数概述 评价一个表达式&#xff0c;当表达式错误时&#xff0c;输出一个诊断信息并且终止程序 assert是一个宏&#xff0c;在使用之前要调用库…

详解:-bash: mysql command not found (mysql未找到命令)

1、确认是否安装MySQL rpm -qa |grep mysql rpm -qa |grep mariadb MariaDB是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;是广泛使用的MySQL数据库技术的替代品。安装MySQL后就会覆盖掉之前的mariadb。 如果没有就需要找教程安装 2、找到自己My…