【人工智能】利用大语言模型(LLM)实现机器学习模型选择与实验的自动化

文章目录

    • 引言
    • 环境准备
      • 数据集说明
    • 项目结构
      • 主要文件说明
    • 导入必要的软件包
      • 软件包功能简述
    • 辅助函数定义
      • 加载配置文件
      • 加载数据集
      • 预处理数据集
      • 函数功能详解
    • 集成LLM进行模型选择
      • 调用LLM的函数定义
      • 函数功能详解
    • 清理和验证LLM的输出
      • 清理超参数建议
      • 提取模型名称
      • 验证超参数
      • 修正超参数
      • 函数功能详解
    • 模型训练与评估
      • 训练与评估函数定义
      • 函数功能详解
    • 自动化流程实现
      • 自动化流程函数定义
      • 函数功能详解
    • 主函数
      • 主函数定义
      • 函数功能详解
    • 执行代码
      • 前置步骤
      • 执行命令
    • 示例输出
      • 输出解释
      • 主要优势
      • 更多文章
      • 结语

引言

在机器学习项目中,模型选择和实验设计是至关重要的步骤。传统方法依赖于开发者手动选择合适的模型并进行调优,这不仅耗时且容易出错。随着模型数量和复杂性的增加,手动优化变得愈加困难和低效。借助LLM的强大能力,我们可以自动化这些过程,简化工作流程,并确保模型性能的最优化。

本文将介绍如何使用LLM(以GPT-4为例)来自动选择最佳模型,并进行超参数调优。通过自动化流程,我们可以大幅提升实验效率,减少人为错误,并快速迭代优化模型性能。
在这里插入图片描述

环境准备

在开始之前,我们需要准备项目所需的环境和数据集。具体步骤包括:

  1. 安装必要的软件包:确保你的环境中安装了必要的Python包。
  2. 下载和预处理数据集:以Kaggle的信用卡欺诈检测数据集为例,我们需要对数据进行预处理,以便后续模型训练。大模型聚集地-ChatMoss & ChatGPT中文版

以下是预处理数据集的代码示例:

import pandas as pd# 读取数据集
df = pd.read_csv('fraud_data.csv')# 删除不必要的列
df = df.drop(['trans_date_trans_time', 'merchant', 'dob', 'trans_num', 'merch_lat', 'merch_long'], axis=1)# 丢弃缺失值
df = df.dropna().reset_index(drop=True)# 保存预处理后的数据
df.to_csv('fraud_data.csv', index=False)

数据集说明

Kaggle的信用卡欺诈检测数据集包含了大量的交易记录,每条记录包含多个特征,如交易金额、时间、商家信息等。其中,is_fraud 列是目标变量,表示该交易是否为欺诈行为。通过删除一些不必要的列和丢弃含有缺失值的记录,我们简化了数据集,使其更加适合后续的建模工作。

注意:以上预处理步骤只是一个简单的示例。在实际项目中,你可能需要进行更复杂的数据清洗和特征工程,以提升模型的性能。

项目结构

为确保项目的组织结构清晰,我们建议创建一个专门的项目文件夹,并在其中存放所有相关文件。以下是推荐的项目结构:

automated_model_selection/
│
├── data/
│   └── fraud_data.csv
│
├── config.yaml
├── requirements.txt
├── automated_model_llm.py
│
├── README.md
└── .gitignore

主要文件说明

  • data/: 存放数据集的文件夹。
  • config.yaml: 存储项目配置和元数据的YAML文件。
  • requirements.txt: 列出项目所需的Python包,以便快速安装依赖。
  • automated_model_llm.py: 主脚本文件,包含自动化模型选择和实验的所有代码。
  • README.md: 项目说明文件。
  • .gitignore: Git忽略文件配置,防止不必要的文件被提交到版本控制系统。

通过这种结构化的组织方式,我们可以更方便地管理项目文件,并确保各部分功能模块化,便于维护和扩展。

导入必要的软件包

在主代码文件中,我们需要导入所有必要的软件包,并定义模型映射关系。这些软件包包括:

  • pandas:用于数据处理和分析。
  • yaml:用于加载配置文件。
  • reast:用于处理字符串和解析字典。
  • sklearn:提供机器学习模型和评估工具。
  • openai:用于调用OpenAI的GPT-4模型。

以下是导入软件包和定义模型映射的代码示例:

import pandas as pd
import yaml
import ast
import re
import sklearn
from openai import OpenAI
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score# 模型映射
model_mapping = {"LogisticRegression": LogisticRegression,"DecisionTreeClassifier": DecisionTreeClassifier,"RandomForestClassifier": RandomForestClassifier
}

软件包功能简述

  • pandas:处理数据集,进行数据清洗和预处理。
  • yaml:读取和解析配置文件,以便动态加载参数。
  • reast:处理LLM生成的文本输出,提取有用的信息。
  • sklearn:提供各种分类模型和评估指标,支持模型训练和评估。
  • openai:用于与OpenAI的GPT-4模型进行交互,获取模型选择和超参数建议。

辅助函数定义

为了简化流程,我们定义了一些辅助函数,包括加载配置、加载数据、预处理数据等。这些函数模块化地处理各个阶段的任务,使主流程代码更加简洁和易于维护。

加载配置文件

def load_config(config_path='config.yaml'):"""加载配置文件参数:config_path (str): 配置文件路径返回:dict: 配置内容"""with open(config_path, 'r') as file:config = yaml.safe_load(file)return config

加载数据集

def load_data(dataset_path):"""加载数据集参数:dataset_path (str): 数据集路径返回:DataFrame: 加载的数据集"""return pd.read_csv(dataset_path)

预处理数据集

def preprocess_data(df):"""预处理数据集参数:df (DataFrame): 原始数据集返回:DataFrame: 预处理后的数据集dict: 标签编码器"""label_encoders = {}for column in df.select_dtypes(include=['object']).columns:le = LabelEncoder()df[column] = le.fit_transform(df[column])label_encoders[column] = lereturn df, label_encoders

函数功能详解

  • load_config:读取并解析YAML格式的配置文件,返回配置内容的字典。
  • load_data:读取CSV格式的数据集,返回DataFrame对象。
  • preprocess_data:对数据集进行预处理,主要包括标签编码,将类别型特征转换为数值型,以便于模型处理。

这些辅助函数的定义确保了代码的模块化和可重用性,增强了代码的可维护性。

集成LLM进行模型选择

在同一个文件中,我们设置LLM(如GPT-4)作为机器学习专家,用于评估和选择最佳模型。通过与LLM的对话,我们可以让其根据模型的性能指标推荐最优的模型和相应的超参数。大模型聚集地-ChatMoss & ChatGPT中文版

调用LLM的函数定义

def call_llm(prompt, api_key):"""调用LLM生成响应参数:prompt (str): 提示语api_key (str): OpenAI API密钥返回:str: LLM生成的响应内容"""client = OpenAI(api_key=api_key)response = client.chat.completions.create(model="gpt-4",messages=[{"role": "system", "content": "You are an expert in machine learning and able to evaluate the model well."},{"role": "user", "content": prompt}])return response.choices[0].message.content.strip()

函数功能详解

  • call_llm:接受提示语和API密钥,通过OpenAI的API调用GPT-4模型,获取生成的响应内容。系统提示中明确了LLM的角色为机器学习专家,使其在响应时更加专业和准确。

使用场景示例

prompt = (f"I have trained the following models with these metrics: {model_performance}. ""Which model should I select based on the best performance?"
)
best_model_response = call_llm(prompt, config['llm_api_key'])
print(f"LLM response for best model selection:\n{best_model_response}")

在上述示例中,我们向LLM提供了各个模型的性能指标,询问其基于最佳性能推荐哪个模型。这一过程自动化了模型选择的决策,减少了人为干预和偏见。

清理和验证LLM的输出

LLM生成的响应通常是以自然语言形式呈现,可能包含噪音或额外的信息。为了确保输出能够被后续流程有效利用,我们需要对其进行清理和验证。

清理超参数建议

def clean_hyperparameter_suggestion(suggestion):"""清理LLM生成的超参数建议参数:suggestion (str): LLM生成的超参数建议返回:str: 清理后的建议字典字符串,或None"""pattern = r'\{.*?\}'match = re.search(pattern, suggestion, re.DOTALL)if match:cleaned_suggestion = match.group(0)return cleaned_suggestionelse:print("Could not find a dictionary in the hyperparameter suggestion.")return None

提取模型名称

def extract_model_name(llm_response, available_models):"""从LLM响应中提取模型名称参数:llm_response (str): LLM生成的响应内容available_models (list): 可用模型列表返回:str: 提取到的模型名称,或None"""for model in available_models:pattern = r'\b' + re.escape(model) + r'\b'if re.search(pattern, llm_response, re.IGNORECASE):return modelreturn None

验证超参数

def validate_hyperparameters(model_class, hyperparameters):"""验证超参数的有效性参数:model_class (class): 模型类hyperparameters (dict): 超参数字典返回:bool: 超参数是否有效"""valid_params = model_class().get_params()invalid_params = []for param, value in hyperparameters.items():if param not in valid_params:invalid_params.append(param)else:if param == 'max_features' and value == 'auto':print(f"Invalid value for parameter '{param}': '{value}'")invalid_params.append(param)if invalid_params:print(f"Invalid hyperparameters for {model_class.__name__}: {invalid_params}")return Falsereturn True

修正超参数

def correct_hyperparameters(hyperparameters, model_name):"""修正不合法的超参数参数:hyperparameters (dict): 原始超参数model_name (str): 模型名称返回:tuple: 修正后的超参数字典和是否进行了修正的布尔值"""corrected = Falseif model_name == "RandomForestClassifier":if 'max_features' in hyperparameters and hyperparameters['max_features'] == 'auto':print("Correcting 'max_features' from 'auto' to 'sqrt' for RandomForestClassifier.")hyperparameters['max_features'] = 'sqrt'corrected = Truereturn hyperparameters, corrected

函数功能详解

  • clean_hyperparameter_suggestion:使用正则表达式提取LLM响应中的字典形式的超参数建议。如果未找到有效的字典,则返回None并输出错误信息。

  • extract_model_name:从LLM的响应中提取出推荐的模型名称。它会遍历可用模型列表,并匹配响应中的模型名称,确保提取到的是有效的模型。

  • validate_hyperparameters:验证LLM建议的超参数是否与模型类兼容。会检查超参数名称是否存在于模型的参数列表中,并过滤掉不合法或弃用的参数值。

  • correct_hyperparameters:根据模型名称对不合法的超参数值进行修正。例如,RandomForestClassifier的max_features参数不能设为'auto',应改为'sqrt'

这些函数确保了LLM生成的建议能被准确解析和应用,防止因无效的超参数导致模型训练失败或性能下降。

模型训练与评估

接下来,我们定义一个函数,用于训练和评估给定模型,并返回评估指标。这个过程涉及数据的分割、模型的实例化、训练、预测和评估。

大模型聚集地-ChatMoss & ChatGPT中文版

训练与评估函数定义

def train_and_evaluate(X_train, X_test, y_train, y_test, model_name, hyperparameters=None):"""训练并评估模型参数:X_train (DataFrame): 训练特征X_test (DataFrame): 测试特征y_train (Series): 训练标签y_test (Series): 测试标签model_name (str): 模型名称hyperparameters (dict, optional): 超参数字典返回:dict: 评估指标model: 训练好的模型"""if model_name not in model_mapping:print(f"Valid model names are: {list(model_mapping.keys())}")return None, Nonemodel_class = model_mapping.get(model_name)try:if hyperparameters:hyperparameters, corrected = correct_hyperparameters(hyperparameters, model_name)if not validate_hyperparameters(model_class, hyperparameters):return None, Nonemodel = model_class(**hyperparameters)else:model = model_class()except Exception as e:print(f"Error instantiating model with hyperparameters: {e}")return None, Nonetry:model.fit(X_train, y_train)except Exception as e:print(f"Error during model fitting: {e}")return None, Noney_pred = model.predict(X_test)metrics = {"accuracy": accuracy_score(y_test, y_pred),"precision": precision_score(y_test, y_pred, average='weighted', zero_division=0),"recall": recall_score(y_test, y_pred, average='weighted', zero_division=0),"f1_score": f1_score(y_test, y_pred, average='weighted', zero_division=0)}return metrics, model

函数功能详解

  • train_and_evaluate

    1. 模型实例化:根据传入的模型名称,从model_mapping中获取相应的模型类。如果提供了超参数,则在实例化模型时传入这些参数;否则使用默认参数。

    2. 模型训练:使用训练数据(X_trainy_train)对模型进行训练。

    3. 模型预测:使用测试数据(X_test)进行预测,得到预测结果y_pred

    4. 指标评估:计算并返回模型在测试集上的各项评估指标,包括准确率(accuracy)、精确率(precision)、召回率(recall)和F1分数(f1_score)。

通过这个函数,我们可以轻松地对不同的模型进行训练和评估,并获取一致的性能指标,便于后续的比较和选择。

自动化流程实现

现在,我们将上述功能整合起来,实现整个自动化的模型选择与实验流程。该流程包括以下几个关键步骤:

  1. 训练并评估所有模型:对配置文件中指定的所有模型进行训练和评估,记录各自的性能指标。
  2. LLM选择最佳模型:将各个模型的性能指标输入LLM,询问其推荐最佳模型。
  3. 检查最佳模型的超参数调优:询问LLM针对最佳模型的超参数建议。
  4. 自动运行超参数调优:如果LLM提供了有效的超参数建议,自动应用这些参数并重新训练评估模型。

自动化流程函数定义

def run_llm_based_model_selection_experiment(df, config):"""运行基于LLM的模型选择和实验自动化流程参数:df (DataFrame): 预处理后的数据集config (dict): 配置字典"""# 数据拆分X = df.drop("is_fraud", axis=1)y = df["is_fraud"]X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)available_models = config['default_models']model_performance = {}# 训练并评估所有模型for model_name in available_models:print(f"训练模型: {model_name}")metrics, _ = train_and_evaluate(X_train, X_test, y_train, y_test, model_name)model_performance[model_name] = metricsprint(f"模型: {model_name} | 评估指标: {metrics}")# 使用LLM选择最佳模型sklearn_version = sklearn.__version__prompt = (f"我训练了以下模型,并获得了这些评估指标: {model_performance}. ""基于最佳性能,我应该选择哪个模型?")best_model_response = call_llm(prompt, config['llm_api_key'])print(f"LLM选择的最佳模型:\n{best_model_response}")best_model = extract_model_name(best_model_response, available_models)if not best_model:print("错误: 无法从LLM响应中提取有效的模型名称。")returnprint(f"LLM选择的最佳模型: {best_model}")# 检查并建议超参数调优prompt_tuning = (f"选择的模型是 {best_model}。你能建议一些超参数以提升性能吗? ""请以Python字典格式提供,例如 {{'max_depth': 5, 'min_samples_split': 4}}。"f"确保所有建议的超参数在scikit-learn版本 {sklearn_version} 中是有效的,""并避免使用已弃用或无效的值,例如 'max_features': 'auto'。""不要提供任何解释或以其他格式返回。")tuning_suggestion = call_llm(prompt_tuning, config['llm_api_key'])print(f"超参数调优建议:\n{tuning_suggestion}")cleaned_suggestion = clean_hyperparameter_suggestion(tuning_suggestion)if cleaned_suggestion is None:suggested_params = Noneelse:try:suggested_params = ast.literal_eval(cleaned_suggestion)if not isinstance(suggested_params, dict):print("超参数建议不是有效的字典。")suggested_params = Noneexcept (ValueError, SyntaxError) as e:print(f"解析超参数建议时出错: {e}")suggested_params = None# 根据建议自动运行超参数调优if suggested_params:print(f"使用建议的超参数运行 {best_model}: {suggested_params}")tuned_metrics, _ = train_and_evaluate(X_train, X_test, y_train, y_test, best_model, hyperparameters=suggested_params)print(f"调优后的评估指标: {tuned_metrics}")else:print("未提供有效的超参数进行调优。")

函数功能详解

  1. 数据拆分:将数据集划分为训练集和测试集,比例为70%训练,30%测试。这里使用了random_state=42以确保结果的可重复性。

  2. 训练并评估所有模型

    • 遍历配置文件中指定的所有模型。
    • 对每个模型调用train_and_evaluate函数,获取其性能指标,并将结果记录在model_performance字典中。
    • 打印每个模型的评估指标,便于实时监控训练进程。
  3. 使用LLM选择最佳模型

    • 构建一个提示语,包含各个模型的性能指标,询问LLM推荐哪个模型。
    • 调用call_llm函数获取LLM的响应。
    • 使用extract_model_name函数从LLM响应中提取出推荐的模型名称。
    • 打印并确认LLM选择的最佳模型。
  4. 检查并建议超参数调优

    • 基于LLM选择的最佳模型,构建一个新的提示语,请求LLM提供超参数调优建议。
    • 调用call_llm函数获取LLM的超参数建议。
    • 使用clean_hyperparameter_suggestion函数清理LLM的响应,提取出有效的超参数字典。
  5. 自动运行超参数调优

    • 如果LLM提供了有效的超参数建议,调用train_and_evaluate函数重新训练模型,并评价其调优后的性能。
    • 打印调优后的评估指标,以便对比和验证性能提升效果。

通过这一流程,整个模型选择和调优过程实现了高度自动化,极大地提升了工作效率,并减少了人为错误的可能性。

主函数

最后,定义主函数以运行整个自动化流程。主函数负责加载配置文件、加载和预处理数据集,并调用自动化流程函数。

主函数定义

def main():"""主函数,运行整个自动化模型选择与实验流程"""# 加载配置文件config = load_config()# 加载数据集df = load_data(config['dataset_path'])# 预处理数据集df, _ = preprocess_data(df)# 运行自动化流程run_llm_based_model_selection_experiment(df, config)if __name__ == "__main__":main()

函数功能详解

  • 加载配置文件:调用load_config函数读取config.yaml中的配置信息,包括LLM API密钥、待测试的模型列表、评估指标和数据集路径。

  • 加载数据集:调用load_data函数读取预处理后的数据集。

  • 预处理数据集:调用preprocess_data函数对数据进行进一步处理,如标签编码,以确保模型能够正确处理数据。

  • 运行自动化流程:调用run_llm_based_model_selection_experiment函数,执行整个模型选择与实验的自动化流程。

通过主函数的调用,整个流程得以顺利运行,实现从数据加载到模型选择和调优的全自动化。

执行代码

确保所有文件准备就绪后,你可以通过以下命令运行整个自动化过程:

python automated_model_llm.py

前置步骤

  1. 安装依赖:确保安装了requirements.txt中列出的所有软件包。你可以使用以下命令快速安装:

    pip install -r requirements.txt
    
  2. 配置文件设置:在config.yaml中填入你的OpenAI API密钥,并根据需求调整模型列表和评估指标。

    llm_api_key: "YOUR-OPENAI-API-KEY"
    default_models:- LogisticRegression- DecisionTreeClassifier- RandomForestClassifier
    metrics: ["accuracy", "precision", "recall", "f1_score"]
    dataset_path: "fraud_data.csv"
    
  3. 数据集准备:将预处理后的fraud_data.csv放入data/文件夹中。

执行命令

python automated_model_llm.py

运行命令后,脚本将依次执行各个步骤,最终输出模型选择和调优的结果。

示例输出

以下是一个示例输出,展示了自动化流程的运行结果:

训练模型: LogisticRegression
模型: LogisticRegression | 评估指标: {'accuracy': 0.954, 'precision': 0.952, 'recall': 0.954, 'f1_score': 0.953}
训练模型: DecisionTreeClassifier
模型: DecisionTreeClassifier | 评估指标: {'accuracy': 0.912, 'precision': 0.910, 'recall': 0.912, 'f1_score': 0.911}
训练模型: RandomForestClassifier
模型: RandomForestClassifier | 评估指标: {'accuracy': 0.970, 'precision': 0.968, 'recall': 0.970, 'f1_score': 0.969}LLM选择的最佳模型:
根据以上评估指标,我推荐选择RandomForestClassifier,因为它在所有评估指标上表现最佳。LLM选择的最佳模型: RandomForestClassifier
超参数调优建议:
{
'n_estimators': 100,
'max_depth': None,
'min_samples_split': 2,
'min_samples_leaf': 1,
'max_features': 'sqrt',
'bootstrap': True
}
使用建议的超参数运行 RandomForestClassifier: {'n_estimators': 100, 'max_depth': None, 'min_samples_split': 2, 'min_samples_leaf': 1, 'max_features': 'sqrt', 'bootstrap': True}
调优后的评估指标: {'accuracy': 0.973, 'precision': 0.972, 'recall': 0.973, 'f1_score': 0.972}

输出解释

  1. 模型训练与评估结果

    • LogisticRegression:准确率95.4%,精确率95.2%,召回率95.4%,F1分数95.3%。
    • DecisionTreeClassifier:准确率91.2%,精确率91.0%,召回率91.2%,F1分数91.1%。
    • RandomForestClassifier:准确率97.0%,精确率96.8%,召回率97.0%,F1分数96.9%。

    从结果可以看出,RandomForestClassifier在所有评估指标上均表现最佳。

  2. LLM选择的最佳模型:基于评估指标,LLM推荐选择RandomForestClassifier。

  3. 超参数调优建议

    • n_estimators: 100
    • max_depth: None
    • min_samples_split: 2
    • min_samples_leaf: 1
    • max_features: ‘sqrt’
    • bootstrap: True
  4. 调优后的评估指标

    • RandomForestClassifier:准确率97.3%,精确率97.2%,召回率97.3%,F1分数97.2%。

    通过应用LLM建议的超参数,RandomForestClassifier的性能得到了进一步提升。

注意:实际输出可能因数据不同或LLM的响应而有所差异。你可以根据需要调整提示语和生成参数,以获得更加多样化或严格的LLM输出。

主要优势

  1. 效率提升:自动化流程极大地减少了手动选择和调优模型的时间,提高了工作效率。
  2. 一致性:减少了人为错误和主观偏见,确保模型选择和调优的一致性和客观性。
  3. 可扩展性:通过调整配置文件和提示语,可以轻松扩展到更多的模型和更复杂的调优任务。

更多文章

【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键
【VScode】VSCode中的智能编程利器,全面揭秘ChatMoss & ChatGPT中文版

结语

随着LLM能力的进一步提升,其在数据科学和机器学习领域的应用前景将更加广阔。未来,LLM可能不仅能自动选择和调优模型,还能进行更复杂的特征工程、模型解释和结果分析,全面助力数据科学家的工作。

希望本文能够帮助你理解如何利用LLM实现机器学习模型选择与实验的自动化。如果有任何问题或建议,欢迎在评论区交流讨论!

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

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

相关文章

我与Linux的爱恋:基础IO 软硬连接+动静态库

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:Linux的学习 文章目录 一、软硬链接使用对应的特征 内容 以及作用二、动态库静态库的制作打包与使用生成静态库库搜索路径动态库的打包以及使用生成动态库一、软硬链接 使用 软连接 硬链接​ ​ 通过观察我们可以发现: 1.l…

CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳

2024年11月9日至10日,以“湾区聚力 开源启智”为主题的2024年中国计算机学会中国开源大会(CCF ChinaOSC)将在深圳召开。大会将汇聚国内外学术界、顶尖科技企业、科研机构及开源社区的精英力量,共同探索人工智能技术和人类智慧的无…

stm8开发笔记--STVD开发软件的安装

文章目录 1 开发软件安装1.1 安装软件1.2 编译器下载安装1.2.1 下载编译器1.2.2 安装1.2.3 添加密钥 1.3 编译器地址配置 2 编程开发2.1 下载软件开发包2.2 解压,打开工程2.3 选择对应芯片2.4 点击重新编译,不要有错误2.5 如果提示你,需要加载…

RNN天气预测

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 与上篇一样,依然是二维数据结构。这里通过构建基础的网络块来做天气类别的预测,网络如下: 预测是否下雨# 1.搭建神经网络 model Sequential() # 添加第一密集…

Elasticsearch如果集群出现节点故障,我应该如何快速定位问题?

当 Elasticsearch (ES) 集群发生故障时,快速定位问题源头非常重要。Elasticsearch 是一个分布式系统,故障可能由多种原因引起,涉及到硬件、配置、网络、集群本身的健康状况等多个层面。以下是一些定位问题的步骤和工具: 检查集群…

科研绘图系列:R语言热图和点图(heatmap dotplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包准备画图主题数据链接导入数据热图1热图2其他图1其他图2系统信息介绍 热图(Heatmap)是一种数据可视化技术,用于通过颜色的变化来展示数据矩阵中的数值大小。它通常由行和…

【Leecode】Leecode刷题之路第44天之通配符匹配

题目出处 44-通配符匹配-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 44-通配符匹配-官方解法 前言 本题与10. 正则表达式匹配非常类似,但相比较而言,本题稍…

智象未来(HiDream.ai):从科技创新启程,绘制智能未来新篇章

在人工智能领域飞速演进的当下,智象未来(HiDream.ai)作为全球领先的多模态生成式人工智能技术供应商,正以其独树一帜的视觉多模态大模型及创新应用,推动行业趋势的前进。智象未来(HiDream.ai)自…

用 Python搭建一个微型的HTTP服务器用于传输 2024/11/9

使用内置的 http.server 模块,来搭建微型服务器。 快速启动服务器http.server --- HTTP 服务器Python 3.13.0 文档 声明:文章代码部分 由 ai 生成 创建一个简单的文件共享服务器 进入 需要共享的目录 再打开cmd 输入以下代码 python -m http.server 8000 打开服务器 设置主…

【分布式事务】二、NET8分布式事务实践: DotNetCore.CAP 框架 、 消息队列(RabbitMQ)、 数据库(MySql、MongoDB)

介绍 [CAP]是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案, 同样可以用来作为 EventBus 使用 github地址:https://github.com/dotnetcore/CAP官网地址: https://cap.dotnetcore.xyz/官网文档:https://cap.dotnetcore.xyz/userguide/zh/cap/id…

【Syncfusion系列】Diagram 杂谈第一篇

前言 我认为 Diagram 是 Syncfusion 中首屈一指的优秀控件!最近在写一个工作流引擎,前端界面就用的是Diagram ,接下来就来看一看。 Diagram的事件 查看 SfDiagram的属性,如果想实现什么事件,就看这些Command结尾的…

【服务器】使用命令行文本编辑器(如 vim、nano 或 vi)创建文件并编辑

【服务器】使用命令行文本编辑器(如 vim、nano 或 vi)创建文件并编辑 准备:连接至服务器(如ssh)创建 .ncl 文件方法 1: 使用 vim 创建 .ncl 文件方法 2: 使用 nano 创建 .ncl 文件确认文件已创建运行 .ncl 文件 总结参…

[DB] Project-1-MySQL

下载并安装了MySQL-8.0.40 root; 密码为6位 MySQL安装教程(详细版)_mysql安装教程8.0.36-CSDN博客 解决:管理员身份运行cmd出现mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,…

【JavaEE进阶】导读

本节⽬标 了解什么是JavaEE 在JavaEE中, 我们学习什么, 如何学, 难点是什么 一、Java EE 发展历程 Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习…

.NET 黑名单上传 突破WAF防护的SoapShell (免杀版)

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

多线程和线程同步复习

多线程和线程同步复习 进程线程区别创建线程线程退出线程回收全局写法传参写法 线程分离线程同步同步方式 互斥锁互斥锁进行线程同步 死锁读写锁api细说读写锁进行线程同步 条件变量生产者消费者案例问题解答加强版生产者消费者 总结信号量信号量实现生产者消费者同步-->一个…

MySQL_第13章_视图

1. 常见的数据库对象 2. 视图概述 2.1 为什么使用视图? 视图一方面可以使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。 2.2 视图的理解 视图是一种虚拟表,本身是不具有数据的,占用很少的内存…

Python数据分析-Netflix数据分析和可视化

一、研究背景 在当今时代,流媒体技术迅猛发展,如风暴般席卷全球娱乐产业,重塑了大众的娱乐消费模式。Netflix 在这一潮流中一马当先,成为全球首屈一指的在线流媒体平台。自 2007 年开启流媒体服务后,Netflix 就马不停…

数据集市是什么?有什么优势?

一、数据集市是什么? 1、数据集市的产生背景: 因为数据仓库的工作范围和成本比较巨大,技术部门必须对所有的以全企业的眼光对待任何一次决策分析,这样就变成了成本高、耗时高的大项目,而且这种集中式的数据处理方式往往…

Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

代码地址 https://github.com/junjie18/CMT 1. 引言 在本文中,我们提出了Cross-Modal Transformer(CMT),这是一种简单而有效的端到端管道,用于鲁棒的3D对象检测(见图1(c)&#xf…