算法金 | 10 大必知的自动化机器学习库(Python)
本文来源公众号“算法金”,仅用于学术分享,侵权删,干货满满。
原文链接:10 大必知的自动化机器学习库(Python)
一、入门级自动化机器学习库
1.1 Auto-Sklearn
简介: Auto-Sklearn 是一个自动机器学习库,基于 Python 的 scikit-learn 接口。它主要用于自动化机器学习的常见过程,特别是算法选择和超参数调整,通过元学习和贝叶斯优化来提高模型性能。
主要功能:
-
自动化算法选择:自动选择最适合数据的机器学习算法。
-
超参数自动调整:使用贝叶斯优化技术找到最优的超参数配置。
-
并行计算:支持多核处理,加快模型训练速度。
-
模型集成:自动集成多个模型以提高预测准确率。
应用实例: 下面是一个使用 Auto-Sklearn 自动化分类任务的简单示例。我们将使用经典的鸢尾花数据集。
import autosklearn.classification as auto_cls
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加载数据
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建一个自动化分类器
automl_classifier = auto_cls.AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=30)# 训练模型
automl_classifier.fit(X_train, y_train)# 预测测试数据
y_pred = automl_classifier.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")
1.2 TPOT
简介: TPOT(Tree-based Pipeline Optimization Tool)是一个利用遗传算法自动化设计机器学习管道的Python库。它自动化地搜索预处理步骤、模型和参数配置的最佳组合,旨在发现性能最优的机器学习管道。
主要功能:
-
自动化管道构建:自动探索数据预处理、特征选择、模型选择和超参数调整的最佳组合。
-
遗传算法优化:使用遗传算法来优化机器学习的整体工作流。
-
并行计算:支持多进程,加速搜索过程。
-
易于集成:可以与 scikit-learn 无缝集成,方便使用已有的数据处理和评估方法。
应用实例: 以下是使用 TPOT 对波士顿房价数据集进行回归分析的示例。这个例子展示了如何利用 TPOT 自动化搜索最优的机器学习管道。
from tpot import TPOTRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 加载数据集
data = load_boston()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.25, random_state=42)# 创建一个 TPOT 回归器,设置最大的管道评估数量为 100,世代数为 5
tpot = TPOTRegressor(generations=5, population_size=100, verbosity=2, random_state=42)# 训练模型
tpot.fit(X_train, y_train)# 预测测试集
y_pred = tpot.predict(X_test)# 计算 MSE
mse = mean_squared_error(y_test, y_pred)
print(f"测试集的均方误差为: {mse:.2f}")# 导出最佳模型的 Python 代码
tpot.export('best_pipeline.py')
1.3 Auto-Keras
简介: Auto-Keras 是一个开源的自动机器学习库,建立在 Keras 框架之上。它主要设计用于自动化搜索最优的深度学习模型结构和超参数,从而简化了构建高效深度学习模型的过程。
主要功能:
-
神经架构搜索(NAS):自动寻找最适合特定数据集的网络结构。
-
超参数优化:自动调整网络的超参数,如学习率、层数、单元数等。
-
模型压缩:提供模型压缩工具,以减小模型大小和提高效率。
-
简易接口:提供简单的 API,用户只需几行代码即可启动模型搜索和训练。
应用实例: 以下是使用 Auto-Keras 进行图像分类任务的示例。此示例使用 CIFAR-10 数据集,展示了如何自动搜索适合该任务的模型结构。
import autokeras as ak
from keras.datasets import cifar10# 加载数据
(x_train, y_train), (x_test, y_test) = cifar10.load_data()# 创建一个图像分类器
clf = ak.ImageClassifier(max_trials=10) # 最大尝试次数设为 10# 搜索模型
clf.fit(x_train, y_train, epochs=10)# 评估模型
accuracy = clf.evaluate(x_test, y_test)
print(f"测试准确率: {accuracy[1]:.2f}%")# 获取最佳模型
model = clf.export_model()
model.save('best_model_autokeras.h5')
1.4 FeatureTools
简介: FeatureTools 是一个开源的 Python 库,专注于自动化特征工程。它可以高效地生成大量的特征,帮助机器学习模型学习更多的潜在信息,从而提升模型的预测能力。
主要功能:
-
深度特征合成(DFS):通过组合和变换数据集中的基础数据列,自动构建复杂的特征。
-
时间索引:处理时间数据,自动识别和构造与时间相关的特征。
-
可扩展性:优化内存使用,能够处理大型数据集。
-
易于集成:可以与 Pandas 和 scikit-learn 等流行的数据科学工具无缝集成。
应用实例: 以下是一个使用 FeatureTools 进行客户购买预测的示例,通过自动构建特征来提升模型性能。
import featuretools as ft
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 模拟一些示例数据
data = {'transaction_id': [1, 2, 3, 4, 5],'customer_id': [1, 2, 1, 3, 4],'amount': [100, 200, 200, 300, 100],'transaction_time': pd.to_datetime(['2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'])
}
transactions = pd.DataFrame(data)# 创建一个 EntitySet
es = ft.EntitySet(id='customer_data')
# 添加数据集
es = es.entity_from_dataframe(entity_id='transactions', dataframe=transactions, index='transaction_id', time_index='transaction_time')# 自动创建特征
features, feature_names = ft.dfs(entityset=es, target_entity='transactions', max_depth=2)# 查看生成的特征
print(features.head())# 数据分割
X = features
y = [0, 1, 0, 1, 0] # 假设的购买结果
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用随机森林分类器
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}%")
二、中级自动化机器学习库
2.1 MLBox
简介: MLBox 是一个全功能的自动化机器学习库,提供从数据预处理到模型部署的一站式解决方案。它支持各种机器学习任务,如分类、回归和聚类,并通过自动化流程优化这些任务的执行效率。
主要功能:
-
数据预处理:自动处理缺失值、异常值和编码问题,优化数据的质量和可用性。
-
特征选择与构建:自动评估和选择最有影响的特征,减少模型复杂度并提升性能。
-
模型选择与超参数优化:自动测试多种算法,找到最适合数据的模型,并调整其超参数。
-
模型堆叠和集成:利用多个模型的优势,自动创建强大的集成模型。
应用实例: 以下是使用 MLBox 对一个分类任务进行处理的简单示例。假设我们有一组关于乘客生存预测的泰坦尼克号数据。
from mlbox.preprocessing import *
from mlbox.optimisation import *
from mlbox.prediction import *# 数据读取
paths = ["train.csv", "test.csv"] # 训练数据和测试数据的路径
target_name = "Survived" # 目标变量# 数据预处理
data = Reader(sep=",").train_test_split(paths, target_name)
data = Drift_thresholder().fit_transform(data)# 优化模型
space = {'est__strategy': {"search": "choice", "space": ["LightGBM"]},'est__n_estimators': {"search": "choice", "space": [150, 200, 300]},'est__max_depth': {"search": "choice", "space": [5, 8, 10]}
}opt = Optimiser(scoring="accuracy", n_folds=5)
best = opt.optimise(space, data, 15)# 模型预测
predictor = Predictor().fit_predict(best, data)# 查看模型的性能
print(predictor)
2.2 H2O AutoML
简介: H2O AutoML 是 H2O.ai 提供的一个自动化机器学习平台,旨在简化机器学习的训练和部署过程。它支持广泛的机器学习模型,包括深度学习、集成学习和线性模型,并通过用户友好的界面降低了使用复杂度。
主要功能:
-
用户友好的界面:提供图形界面(GUI)和命令行界面(CLI),使用户可以轻松选择数据集、启动模型训练和评估结果。
-
自动化模型训练和选择:自动进行数据预处理、特征工程、模型训练、模型验证和集成模型的选择。
-
高效的模型训练过程:使用分布式计算加速模型训练,适合处理大规模数据集。
-
模型解释性:提供模型解释工具,帮助理解模型的决策过程。
应用实例: 以下是使用 H2O AutoML 进行信用卡欺诈检测的示例。该示例展示了如何使用 H2O AutoML 快速训练和评估多个模型。
import h2o
from h2o.automl import H2OAutoMLh2o.init()# 加载数据
data = h2o.import_file('creditcard.csv')# 分割数据集
train, test = data.split_frame(ratios=[.8], seed=123)# 指定目标列和特征列
target = 'Class'
features = data.columns
features.remove(target)# 启动 AutoML
aml = H2OAutoML(max_models=20, seed=1, max_runtime_secs=10000)
aml.train(x=features, y=target, training_frame=train)# 查看所有模型的性能
lb = aml.leaderboard
print(lb.head())# 使用最佳模型进行预测
predictions = aml.leader.predict(test)# 显示预测结果
print(predictions.head())
2.3 NNI (Neural Network Intelligence)
简介: NNI (Neural Network Intelligence) 是一个由微软开发的开源AutoML工具,专为帮助用户优化神经网络的架构(NAS)和超参数而设计。它支持多种优化算法,并可与现有的深度学习框架如 TensorFlow, PyTorch 和 MXNet 等无缝集成。
主要功能:
-
神经网络架构搜索(NAS):自动搜索最优的网络架构,适用于不同的任务和数据集。
-
超参数优化:提供多种优化算法,如贝叶斯优化、进化算法和随机搜索,用以寻找最佳的超参数配置。
-
模型压缩:集成模型剪枝和量化功能,帮助减小模型大小,提升推理速度。
-
可视化和管理:提供一个用户友好的界面,用于监控实验进度和比较不同实验的结果。
应用实例: 以下是使用 NNI 进行图像分类任务的超参数优化示例。这个示例演示了如何配置实验,自动调整神经网络的参数。
# 定义搜索空间
search_space = {"learning_rate": {"_type":"loguniform", "_value":[1e-5, 1e-2]},"optimizer": {"_type":"choice", "_value":["Adam", "SGD"]},"batch_size": {"_type":"choice", "_value":[16, 32, 64, 128]}
}# 配置优化器
config = {"search_space": search_space,"trial_command": "python train.py","tuner": {"builtinTunerName": "TPE","classArgs": {"optimize_mode": "maximize"}},"max_trial_number": 50,"max_duration": "2h"
}# 启动 NNI 实验
nni.create_experiment(name='NNI_Example', config=config)# NNI 实验管理器会自动启动、监控并记录每个试验的结果,用户可以在 NNI 的 Web 界面中查看详细信息和进度。
2.4 Lightwood
简介: Lightwood 是一个基于 PyTorch 的框架,旨在简化机器学习模型的构建过程。该框架提供了一套高级 API,使得开发者可以快速构建、训练并部署机器学习模型,特别适用于深度学习项目。
主要功能:
-
简化的模型定义:通过高级抽象简化模型定义过程,用户只需少量代码即可定义复杂的模型。
-
自动化的数据预处理:自动处理输入数据的标准化、编码和分割,减少手动数据预处理工作。
-
模型自动优化:内置智能算法帮助自动调整模型参数,优化模型性能。
-
简易部署:支持一键部署模型到多种平台,包括云端和边缘设备。
应用实例: 以下是使用 Lightwood 进行房价预测的简单示例。这个示例展示了如何快速构建和训练一个回归模型。
import lightwood
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 加载数据集
data = load_boston()
X = data.data
y = data.target# 数据分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用 Lightwood 构建模型
predictor = lightwood.Predictor(output='regression')
predictor.learn(from_data=(X_train, y_train))# 预测测试数据
predictions = predictor.predict(when=X_test)# 评估模型
mse = mean_squared_error(y_test, predictions)
print(f'Mean Squared Error: {mse:.2f}')
三、高级自动化机器学习库
3.1 Ray
简介: Ray 是一个开源框架,用于构建大规模分布式应用。它最初由加州大学伯克利分校的研究团队开发,目的是为了简化分布式系统的开发过程,特别是在机器学习和AI领域。Ray 提供了一套简单的API,使得开发者可以轻松地将单机应用扩展到大规模的集群环境。
主要功能:
-
任务并行化:自动管理任务的分布和执行,使得复杂的并行计算任务简化。
-
状态管理:通过分布式对象存储,自动管理应用状态,支持高效的数据共享和通信。
-
可伸缩的机器学习库:集成了多种机器学习库,如 Ray RLlib(强化学习)、Ray Tune(超参数优化)和 Ray Serve(模型部署),支持这些库的无缝扩展。
-
容错性:具备自动处理节点失败的能力,确保应用的持续运行和数据的完整性。
应用实例: 以下是使用 Ray 进行大规模数据处理的示例。该示例展示了如何利用 Ray 的并行处理功能快速处理大量数据。
import ray
import numpy as np# 初始化 Ray
ray.init()# 定义一个简单的并行计算任务
@ray.remote
def add(x, y):return np.add(x, y)# 生成大量数据
data_x = np.random.randn(10000)
data_y = np.random.randn(10000)# 并行计算
results = ray.get([add.remote(data_x[i], data_y[i]) for i in range(10000)])# 输出结果
print(f'Processed results: {results[:10]}')
3.2 Pycaret
简介: Pycaret 是一个低代码机器学习库,它使得用户可以用极少的代码完成多种机器学习任务,包括分类、回归、聚类、异常检测和自然语言处理。这个库特别适合于希望快速进行数据科学实验的数据分析师和软件开发者。
主要功能:
-
自动化的数据预处理:自动处理缺失值、标准化、编码等,减少手动数据清洗和准备的工作。
-
模型选择和训练:自动比较多种机器学习模型的性能,帮助选择最适合的模型。
-
模型优化:自动进行超参数调整,以优化模型性能。
-
模型分析:提供多种工具,如模型解释、特征重要性、模型比较等,帮助用户理解和优化模型。
应用实例: 以下是使用 Pycaret 进行分类任务的示例。该示例展示了如何使用 Pycaret 快速训练和比较不同的分类模型。
from pycaret.classification import *# 加载数据集
data = get_data('juice')# 设置环境和初始化数据
s = setup(data, target = 'Purchase', session_id=123)# 比较不同模型的性能
best_model = compare_models()# 创建模型
model = create_model('rf') # 创建一个随机森林分类器# 模型优化
tuned_model = tune_model(model)# 模型评估
evaluate_model(tuned_model)# 预测新数据
predictions = predict_model(tuned_model, data=data)# 显示预测结果
print(predictions.head())
3.3 Kubeflow
简介: Kubeflow 是一个开源项目,旨在使部署机器学习工作流程在 Kubernetes 上尽可能简单。它提供了一套丰富的工具来构建机器学习管道,从数据预处理到模型训练和服务部署,全都可以在 Kubernetes 上进行管理和扩展。
主要功能:
-
机器学习管道:构建、部署和管理端到端的机器学习管道。
-
模型训练:使用 Kubeflow Pipelines 和 Katib 进行模型训练和自动化超参数调整。
-
模型部署:使用 Kubeflow Serving 快速部署和扩展机器学习模型。
-
多框架支持:支持 TensorFlow, PyTorch, MXNet 等多种机器学习框架。
-
资源优化:通过 Kubernetes 的资源管理优化机器学习任务的资源使用。
应用实例: 以下是使用 Kubeflow 在 Kubernetes 上部署机器学习模型的示例。这个示例展示了如何创建一个简单的机器学习管道。
apiVersion: kubeflow.org/v1beta1
kind: Pipeline
metadata:name: demo-pipeline
spec:templates:- name: train-modelcontainer:image: tensorflow/tensorflow:latestcommand: ["python", "train.py"]args: ["--data", "$(inputs.parameters.data-url)", "--model-dir", "$(outputs.artifacts.model-path)"]inputs:parameters:- name: data-urloutputs:artifacts:- name: model-pathpath: /model- name: deploy-modelcontainer:image: kfserving/kfserving:latestcommand: ["python", "deploy.py"]args: ["--model-path", "$(inputs.artifacts.model-path)"]workflow:- name: train-and-deploydag:tasks:- name: train-modeltemplate: train-modelarguments:parameters:- name: data-urlvalue: s3://your-bucket/train-data.csv- name: deploy-modeldependencies: [train-model]template: deploy-model# 使用这个管道,你可以在 Kubernetes 集群中自动化地训练和部署模型。
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。
相关文章:

算法金 | 10 大必知的自动化机器学习库(Python)
本文来源公众号“算法金”,仅用于学术分享,侵权删,干货满满。 原文链接:10 大必知的自动化机器学习库(Python) 一、入门级自动化机器学习库 1.1 Auto-Sklearn 简介: Auto-Sklearn 是一个自动…...

微信小游戏开发难度大吗?开发流程有哪些?
微信小游戏的开发难度因项目的复杂度和规模而定,一般来说,休闲益智类的小游戏的开发周期相对较短,大约在10个工作日到1个月。如果涉及到复杂的算法、高级的交互或特殊的效果,开发时间可能会相应延长。 微信小游戏的开发流程包括需…...

Qt程序打包成单个exe文件
文章目录 0. 准备工作1. 使用 windeployqt 提取必要的动态链接库和资源文件1.1 操作步骤1.2 补充 2. 使用 Enigma Virtual Box将文件夹打包成单个exe2.1 操作步骤 0. 准备工作 Qt程序打包用到的工具有: windeployqt :安装Qt时自带Enigma Virtual Box 下…...

【机器学习】GANs网络在图像和视频技术中的应用前景
📝个人主页:哈__ 期待您的关注 目录 1. 🔥引言 背景介绍 研究意义 2. 🎈GANs的基本概念和工作原理 生成对抗网络简介 工作原理 3. 🤖GANs在图像生成中的应用 图像超分辨率 工作原理 图像去噪 工作原理 图…...

MFC 使用sapi文字转换为语音
文章目录 添加头文件声明变量 添加头文件 声明变量 pSpVoice NULL; //默认构造函数中初始化为空 bool CChKBarSCCodeApp::InitSpVoice() {HRESULT hr ::CoInitialize(NULL); // COM初始化if (!SUCCEEDED(hr)){AfxMessageBox(_T("声音环境初始化失败!…...

(Git)多人协作1
文章目录 前言总结 前言 目标:master分支下file.txt文件新增“aaa”,“bbb” 实现:开发者1新增“aaa”,开发者2新增“bbb” 条件:在同一个分支下协作完成 实际开发过程中,每个用户都与属于自己的码云账户,如果想要进…...

MySQL-分组函数
041-分组函数 重点:所有的分组函数都是自动忽略NULL的 分组函数的执行原则:先分组,然后对每一组数据执行分组函数。如果没有分组语句group by的话,整张表的数据自成一组。 分组函数包括五个: max:最大值mi…...

【C语言】联合(共用体)
目录 一、什么是联合体 二、联合类型的声明 三、联合变量的创建 四、联合的特点 五、联合体大小的计算 六、联合的应用(判断大小端) 七、联合体的优缺点 7.1 优点 7.2 缺点 一、什么是联合体 联合也是一种特殊的自定义类型。由多个不同类型的数…...

【博客715】如何从victorimametrics集群中下线vmstorage节点
How to Decommission a vmstorage Node from a VictoriaMetrics Cluster 我们需要从VictoriaMetrics 集群中优雅地移除一个 vmstorage 节点。每个 vmstorage 节点都包含自己的数据部分,从集群中移除 vmstorage 节点会导致图表出现空白(因为复制超出了范…...

Redis缓存技术详解与实战
Redis缓存技术详解与实战 Redis作为一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息代理。在现代高并发、大数据量处理的系统中,Redis作为缓存层的应用越来越广泛。本文将详细讲解Redis在查询、添加缓存、更新缓存、缓存预热、缓存穿透、…...

业务架构的位置及关系
背景 我们已经了解了业务架构的核心元素组成,以及各个扩展元素,同时对各个元素的关系协同也有了一些了解,那么接下来,我们进一步在宏观层面来看业务架构与其他架构的关系。 企业架构 企业架构有多种理解,也有多种叫…...

CMS与AI的融合:构建万能表单小程序系统
引言: 随着人工智能技术的飞速发展,MyCMS作为一款功能强大的内容管理系统,通过集成AI技术,进一步拓展了其应用范围和智能化水平。本文将探讨如何利用MyCMS结合AI技术,构建一个能够将用户提交的万能表单数据转化为智能提…...

机器学习常见知识点 2:决策树
文章目录 决策树算法1、决策树树状图2、选择最优决策条件3、决策树算法过程→白话决策树原理决策树构建的基本步骤常见的决策树算法决策树的优缺点 【五分钟机器学习】可视化的决策过程:决策树 Decision Tree 关键词记忆: 纯度、选择最优特征分裂、熵、基…...

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)
0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统,灵活、方便、人性化设计、简单易用是最大的特色,可快速建立一个海量内容的专业网站。海洋CMS基于PHP+MySql技术开发,完全开源免费 、无任何加密代码。 0x02 漏洞概述 海洋CMS admin_notify.php 接口处…...

Spring、Spring MVC、MyBatis和Spring Boot对比
在对比Spring、Spring MVC、MyBatis和Spring Boot时,我们可以从以下几个方面进行详细的分析: Spring框架: 作用:Spring是一个轻量级的IoC(控制反转)和AOP(面向切面编程)容器&#…...

【Linux高级IO】select、poll、epoll
【Linux高级IO】select、poll、epoll toc 作者:爱写代码的刚子 时间:2024.6.5 前言:本篇博客将会介绍面试重点考察的select、poll、epoll IO: input && Output read && write 应用层read&&write的时候,…...

Etcd Raft架构设计和源码剖析2:数据流
Etcd Raft架构设计和源码剖析2:数据流 | Go语言充电站 前言 之前看到一幅描述etcd raft的流程图,感觉非常直观,但和自己看源码的又有些不同,所以自己模仿着画了一下,再介绍一下。 下图从左到右依次分为4个部分&…...

深入理解Qt多线程编程(QThreadPool)
多线程编程在现代软件开发中变得越来越重要,它能够提高应用程序的响应速度和处理性能。在Qt框架中,QThreadPool作为线程池管理工具,被频繁的使用。 目录 概述 接口介绍 底层原理解析 使用方法 概述 QThreadPool是Qt提供的一个线程池实现&a…...

Prisma数据库ORM框架学习
初始化项目 中文网站 点击快速开始,点击创建sql项目,后面一步一步往后走 这个博主也挺全的,推荐下 可以看这个页面初始化项目跟我下面是一样的,这里用得是ts,我下面是js,不需要额外的配置了 1.vscode打开一个空文件夹 2.npm init -y 初始化package.json 3.安装相关依赖 …...

Flutter-使用MethodChannel 实现与iOS交互
前言 使用 MethodChannel 在 Flutter 与原生 Android 和 iOS 之间进行通信,可以让你在 Flutter 应用中调用设备的原生功能。 基础概念 MethodChannel:Flutter 提供的通信机制,允许消息以方法调用的形式在 Flutter 与原生代码之间传递。方法…...

【星海随笔】云解决方案学习日志篇(一) ELK,kibana,Logstash安装
心路历程 本来想最近再研究研究DPDK的。但是自己做一个东西很多时候没有回报。因为自己的低学历问题,类似工作的面试都没有。所以很多东西学了很快就忘了,没有地方可以用。 今天看到了一个大佬,除了发型外,很多想法还是很共鸣的。 Shay Banon 决定开始跟…...

【leetcode】hot100 哈希表
1. 两数之和 1.1 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。…...

每日5题Day22 - LeetCode 106 - 110
每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {…...

【Python】读取文件夹中所有excel文件拼接成一个excel表格 的方法
我们平常会遇到下载了一些Excel文件放在一个文件夹下,而这些Excel文件的格式都一样,这时候需要批量这些文件合并成一个excel 文件里。 在Python中,我们可以使用pandas库来读取文件夹中的所有Excel文件,并将它们拼接成一个Excel表…...

7. 通配符和正则表达式
文章目录 7.1 通配符7.1.1 通配符介绍7.1.2 通配符示例 7.2 正则表达式7.2.1 grep命令7.2.2 基本正则表达式7.2.3 扩展正则表达式 7.1 通配符 在 Shell 中通配符用于查找文件名和目录名。它是由 Shell 处理的,只会出现在命令的参数中。 7.1.1 通配符介绍 * 匹…...

ROS2底层机制源码分析
init ->init_and_remove_ros_arguments ->init ->Context::init 保存初始化传入的信号 ->install_signal_handlers→SignalHandler::install 开线程响应信号 ->_remove_ros_arguments 移除ros参数 ->SingleNodeManager::instance().…...

超越 Transformer开启高效开放语言模型的新篇章
在人工智能快速发展的今天,对于高效且性能卓越的语言模型的追求,促使谷歌DeepMind团队开发出了RecurrentGemma这一突破性模型。这款新型模型在论文《RecurrentGemma:超越Transformers的高效开放语言模型》中得到了详细介绍,它通过…...

快速排序-Hoare 递归版 C语言
个人主页点这里~ 快速排序的简介: 快速排序是Hoare于1962年提出的一种 二叉树结构 的 交换 排序方法,其基本思想为:任取待排序元素序列中 的某元素作为 基准值 ,按照该排序码将待排序集合分割成 两子序列 , 左子序列中所有元素均 …...

C语言经典指针运算笔试题图文解析
指针运算常常出现在面试题中,画图解决是最好的办法。 题目1: #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…...

使用 KubeKey v3.1.1 离线部署原生 Kubernetes v1.28.8 实战
今天,我将为大家实战演示,如何基于操作系统 openEuler 22.03 LTS SP3,利用 KubeKey 制作 Kubernetes 离线安装包,并实战离线部署 Kubernetes v1.28.8 集群。 实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不…...