当前位置: 首页 > news >正文

男女做那个全面视频网站嘉定网站建站

男女做那个全面视频网站,嘉定网站建站,网页工程师培训机构,高端制造前段时间在参加比赛#xff0c;发现有一些比赛上公开的代码#xff0c;其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理#xff0c;现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作#xff0c;以便为… 前段时间在参加比赛发现有一些比赛上公开的代码其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作以便为后续的建模或分析任务做准备。这包括处理缺失值、异常值、重复值以及对数据进行归一化、标准化等操作使数据适合模型处理。 特征工程则更侧重于从原始数据中提取、构建或转换特征以提高模型的性能。这包括特征选择、特征抽取、特征转换等过程。在特征工程中可以创建新的特征、组合现有特征、进行降维等操作以便使模型更好地捕捉数据中的模式和关系 训练集 测试集 注这个代码也可以用在自己的工程项目中还是比较不错的也是目前在Kaggle社区里公开代码分数比较高的一个单模型。 1、安装库 !pip install rdkit !pip install -U /kaggle/input/lightning-2-2-1/lightning-2.2.1-py3-none-any.whlRDKit是一个用于化学信息学和药物发现的开源软件包。它提供了丰富的化学信息处理功能和工具用于分子建模、药物设计、化合物筛选等领域。 PyTorch Lightning于简化和加速深度学习项目开发的库。它构建在PyTorch之上提供了高级抽象和预定义模板使得构建、训练和调试神经网络模型变得更加简单和高效。 2、导入所需的Python库和模块 from pathlib import Path import numpy as np import polars as pl from sklearn.model_selection import train_test_split import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from torchmetrics import AveragePrecision import lightning as L from lightning.pytorch.callbacks import (EarlyStopping,ModelCheckpoint,TQDMProgressBar, ) from transformers import AutoConfig, AutoTokenizer, AutoModel, DataCollatorWithPadding import datasets from rdkit import Chem导入数据处理、深度学习、Lightning等相关模块 3、配置超参数  DEBUG False NORMALIZE True N_ROWS 180_000_000 assert N_ROWS is None or N_ROWS % 3 0 if DEBUG:N_SAMPLES 10_000 else:N_SAMPLES 2_000_000 PROTEIN_NAMES [BRD4, HSA, sEH] data_dir Path(/kaggle/input/leash-BELKA) model_name DeepChem/ChemBERTa-10M-MTR batch_size 256 trainer_params {max_epochs: 5,enable_progress_bar: True,accelerator: auto,precision: 16-mixed,gradient_clip_val: None,accumulate_grad_batches: 1,devices: [0], }DEBUG False设置调试标志表示是否处于调试模式。 NORMALIZE True设置规范化标志表示是否对化学分子的SMILES表示进行规范化处理。 N_ROWS 180_000_000设置处理的最大行数这里指定了处理的数据集的行数上限。 assert N_ROWS is None or N_ROWS % 3 0使用assert语句确保数据行数是3的倍数因为后面的代码根据这个假设进行数据处理。 if DEBUG:检查是否处于调试模式。 N_SAMPLES 10_000 if DEBUG else 2_000_000根据是否处于调试模式设置样本数目。 PROTEIN_NAMES [BRD4, HSA, sEH]定义了需要处理的蛋白质名称列表。 data_dir Path(/kaggle/input/leash-BELKA)指定数据存储的目录路径。 model_name DeepChem/ChemBERTa-10M-MTR指定使用的预训练BERT模型的名称。 batch_size 256指定训练中使用的批量大小。 trainer_params定义了训练器的参数包括最大训练周期数、是否启用进度条、使用的加速器、精度、梯度裁剪值、累积梯度批次数以及使用的设备。 4、准备数据集 df pl.read_parquet(Path(data_dir, train.parquet),columns[molecule_smiles, protein_name, binds],n_rowsN_ROWS, ) test_df pl.read_parquet(Path(data_dir, test.parquet),columns[molecule_smiles],n_rows10000 if DEBUG else None, ) df.head() 这里读取了训练数据和测试数据并显示了训练数据的前几行。 dfs [] for i, protein_name in enumerate(PROTEIN_NAMES):sub_df df[i::3]sub_df sub_df.rename({binds: protein_name})if i 0:dfs.append(sub_df.drop([id, protein_name]))else:dfs.append(sub_df[[protein_name]]) df pl.concat(dfs, howhorizontal) df df.sample(nN_SAMPLES) print(df.head()) print(df[PROTEIN_NAMES].sum()) dfs []初始化一个空列表用于存储每个蛋白质的子数据框。 for i, protein_name in enumerate(PROTEIN_NAMES):使用enumerate函数遍历PROTEIN_NAMES列表中的每个蛋白质名称同时获取其对应的索引值i和名称protein_name。enumerate函数用于同时遍历一个可迭代对象如列表、元组中的元素及其对应的索引。 sub_df df[i::3]根据索引i对原始数据框df进行切片操作每隔3行取出一个子数据框。这样可以将原始数据按照每个蛋白质分成3份分别处理。 sub_df sub_df.rename({binds: protein_name})将子数据框的列名binds重命名为当前蛋白质的名称以便后续处理和识别。 if i 0:如果是第一个蛋白质则将子数据框中的id和protein_name列删除并将处理后的子数据框添加到dfs列表中。 else:如果不是第一个蛋白质则只保留当前蛋白质的绑定情况数据并将处理后的子数据框添加到dfs列表中。 df pl.concat(dfs, howhorizontal)将所有处理后的子数据框按水平方向拼接成一个新的数据框df。 df df.sample(nN_SAMPLES)从新的数据框df中随机抽样N_SAMPLES个样本。 print(df.head())打印新数据框df的前几行。 print(df[PROTEIN_NAMES].sum())计算新数据框df中每个蛋白质的绑定情况并打印出来。 def normalize(x):mol Chem.MolFromSmiles(x)smiles Chem.MolToSmiles(mol, canonicalTrue, isomericSmilesFalse)return smilesif NORMALIZE:df df.with_columns(pl.col(molecule_smiles).map_elements(normalize, return_dtypepl.Utf8))test_df test_df.with_columns(pl.col(molecule_smiles).map_elements(normalize, return_dtypepl.Utf8))这部分代码定义了一个函数normalize()用于对分子结构的SMILES表示进行规范化。如果NORMALIZE为True则对训练数据和测试数据中的分子SMILES进行规范化处理。 normalize 函数这个函数接受一个 SMILES 表示的分子作为输入并返回规范化后的 SMILES 表示。在这里它使用了 RDKit 包中的功能。Chem.MolFromSmiles() 将输入的 SMILES 字符串转换为 RDKit 的分子对象然后 Chem.MolToSmiles() 将这个分子对象转换回 SMILES 字符串使用了 canonicalTrue 参数确保生成的 SMILES 是规范化的isomericSmilesFalse 则确保不考虑分子的立体异构体。 if NORMALIZE:这个条件语句检查一个名为 NORMALIZE 的变量是否为真。如果为真就会对数据进行规范化操作。如果 NORMALIZE 是一个布尔值这个条件通常会在前面被定义以确定是否要进行规范化处理。 df df.with_columns(pl.col(molecule_smiles).map_elements(normalize, return_dtypepl.Utf8))这一行代码应该是 Pandas 或类似的数据处理库比如 Dask 或 Modin的语法。它将 DataFrame 中的 molecule_smiles 列中的每个元素都应用 normalize 函数进行规范化处理然后将结果保存回原来的列中。这里使用了 map_elements() 函数它是 Pandas 的 apply() 方法的替代用于元素级别的操作。 test_df test_df.with_columns(pl.col(molecule_smiles).map_elements(normalize, return_dtypepl.Utf8))同上一行只是这一行是对另一个 DataFrame test_df 执行同样的操作。 train_idx, val_idx train_test_split(np.arange(len(df)), test_size0.2) train_df, val_df df[train_idx], df[val_idx] len(train_df), len(val_df)这段代码将数据拆分为训练集和验证集比例为80:20。   train_test_split(np.arange(len(df)), test_size0.2)这行代码使用了 train_test_split 函数来将索引数组 np.arange(len(df)) 分割成训练集和验证集的索引。参数 test_size0.2 指定了验证集所占的比例这里是20%。训练集和验证集的索引分别存储在 train_idx 和 val_idx 中。 train_df, val_df df[train_idx], df[val_idx]这行代码使用了 Pandas 或类似的库的索引功能将原始 DataFrame df 中对应索引的行划分给训练集和验证集分别存储在 train_df 和 val_df 中。 len(train_df), len(val_df)这一行简单地打印出了训练集和验证集的长度以确认它们的大小是否符合预期。 5、建立数据集 tokenizer AutoTokenizer.from_pretrained(model_name) 这行代码根据给定的模型名称加载了相应的tokenizer用于将文本数据转换成模型输入。 def tokenize(batch, tokenizer):output tokenizer(batch[molecule_smiles], truncationTrue)return outputclass LMDataset(Dataset):def __init__(self, df, tokenizer, stagetrain):assert stage in [train, val, test]self.tokenizer tokenizerself.stage stagedf (datasets.Dataset.from_pandas(df.to_pandas()).map(tokenize, batchedTrue, fn_kwargs{tokenizer: self.tokenizer}).to_pandas())self.df pl.from_pandas(df)def __len__(self):return len(self.df)def __getitem__(self, index):data self._generate_data(index)data[label] self._generate_label(index)return data def _generate_data(self, index):data {input_ids: np.array(self.df[index, input_ids]),attention_mask: np.array(self.df[index, attention_mask]),}return datadef _generate_label(self, index):if self.stage test:return np.array([0, 0, 0])else:return self.df[index, PROTEIN_NAMES].to_numpy()[0]LMDataset(train_df[:100], tokenizer)[0] tokenize 函数这是一个辅助函数接受一个批次的数据和一个分词器tokenizer并对批次中的分子 SMILES 进行分词处理。在这里使用了 Hugging Face Transformers 库提供的 tokenizer 对批次中的分子 SMILES 进行分词设置了 truncationTrue 以确保分词后的序列长度不超过指定的最大长度。 LMDataset 类这是一个自定义的 PyTorch Dataset 类用于加载数据集。主要功能包括 __init__ 方法初始化数据集对象。接受一个 DataFrame df、一个分词器 tokenizer 和一个阶段 stage默认为 train。在这个方法中将输入的 DataFrame 转换为 PyTorch 的 Dataset 对象并使用 map 方法对数据进行分词处理得到包含分词结果的 DataFrame并将其转换为 Polars 的 DataFrame。__len__ 方法返回数据集的长度即数据集中样本的数量。__getitem__ 方法根据给定的索引 index 返回对应的样本数据和标签。在这里调用了 _generate_data 和 _generate_label 方法来生成数据和标签。_generate_data 方法根据给定的索引 index 生成数据。返回一个字典包含 input_ids 和 attention_mask。_generate_label 方法根据给定的索引 index 生成标签。如果阶段为 test则返回一个全为 0 的数组否则根据索引获取对应的样本的标签值。 LMDataset(train_df[:100], tokenizer)[0]创建了一个 LMDataset 对象并取出第一个样本的数据和标签。 class LBDataModule(L.LightningDataModule):def __init__(self, train_df, val_df, test_df, tokenizer):super().__init__()self.train_df train_dfself.val_df val_dfself.test_df test_dfself.tokenizer tokenizerdef _generate_dataset(self, stage):if stage train:df self.train_dfelif stage val:df self.val_dfelif stage test:df self.test_dfelse:raise NotImplementedErrordataset LMDataset(df, self.tokenizer, stagestage)return datasetdef _generate_dataloader(self, stage):dataset self._generate_dataset(stage)if stage train:shuffleTruedrop_lastTrueelse:shuffleFalsedrop_lastFalsereturn DataLoader(dataset,batch_sizebatch_size,shuffleshuffle,drop_lastdrop_last,pin_memoryTrue,collate_fnDataCollatorWithPadding(self.tokenizer),)def train_dataloader(self):return self._generate_dataloader(train)def val_dataloader(self):return self._generate_dataloader(val)def test_dataloader(self):return self._generate_dataloader(test)datamodule LBDataModule(train_df, val_df, test_df, tokenizer) __init__ 方法初始化 DataModule 类接受训练集、验证集、测试集的 DataFrame 数据以及一个分词器 tokenizer。在这个方法中将输入的数据和分词器保存到类的属性中。 _generate_dataset 方法根据给定的阶段train、val 或 test生成对应阶段的数据集对象。根据阶段选择对应的 DataFrame 数据然后使用 LMDataset 类创建相应的数据集对象并传入对应的 DataFrame 和分词器。 _generate_dataloader 方法根据给定的阶段train、val 或 test生成对应阶段的数据加载器对象。调用 _generate_dataset 方法生成对应阶段的数据集对象然后根据阶段设定加载器的参数如是否打乱数据、是否丢弃最后一个不完整的批次等最后使用 PyTorch 的 DataLoader 类创建数据加载器对象。 train_dataloader、val_dataloader 和 test_dataloader 方法分别返回训练、验证和测试阶段的数据加载器对象通过调用 _generate_dataloader 方法实现。 datamodule 实例使用给定的训练集、验证集、测试集和分词器创建了一个 DataModule 对象。 6、建立模型 class LMModel(nn.Module):def __init__(self, model_name):super().__init__()self.config AutoConfig.from_pretrained(model_name, num_labels3)self.lm AutoModel.from_pretrained(model_name, add_pooling_layerFalse)self.dropout nn.Dropout(self.config.hidden_dropout_prob)self.classifier nn.Linear(self.config.hidden_size, self.config.num_labels)self.loss_fn nn.BCEWithLogitsLoss(reductionmean)def forward(self, batch):last_hidden_state self.lm(batch[input_ids],attention_maskbatch[attention_mask],).last_hidden_statelogits self.classifier(self.dropout(last_hidden_state[:, 0]))return {logits: logits,}def calculate_loss(self, batch):output self.forward(batch)loss self.loss_fn(output[logits], batch[labels].float())output[loss] lossreturn outputLMModel(model_name) class LMModel(nn.Module):: 这是定义了一个名为 LMModel 的类它继承自 nn.Module表示这个类是一个 PyTorch 模型。 def __init__(self, model_name):: 这是 LMModel 类的初始化函数接受一个参数 model_name表示要使用的预训练语言模型的名称。 self.config AutoConfig.from_pretrained(model_name, num_labels3): 使用 Hugging Face 的 AutoConfig 类从预训练模型 model_name 中加载配置。num_labels3 指定了模型的输出类别数量为 3。 self.lm AutoModel.from_pretrained(model_name, add_pooling_layerFalse): 使用 Hugging Face 的 AutoModel 类从预训练模型 model_name 中加载模型add_pooling_layerFalse 表示不添加池化层。 self.dropout nn.Dropout(self.config.hidden_dropout_prob): 创建了一个 Dropout 层用于在训练过程中随机将一部分神经元的输出置为零以防止过拟合。 self.classifier nn.Linear(self.config.hidden_size, self.config.num_labels): 创建了一个线性层将语言模型的隐藏状态映射到指定数量的标签上。 self.loss_fn nn.BCEWithLogitsLoss(reductionmean): 创建了一个二元交叉熵损失函数用于计算模型的损失。这里使用 BCEWithLogitsLoss 是因为多标签分类问题中每个标签都是独立的所以对每个标签使用二元交叉熵损失。 def forward(self, batch):: 这是模型的前向传播函数接受一个批次的输入数据 batch包括输入的标记化的文本和注意力掩码。 last_hidden_state self.lm(: 使用加载的语言模型处理输入数据得到最后一层的隐藏状态。 logits self.classifier(: 将最后一层隐藏状态经过线性层映射到标签空间得到每个标签的预测概率。 def calculate_loss(self, batch):: 这是计算模型损失的函数接受一个批次的输入数据 batch。 output self.forward(batch): 调用前向传播函数得到模型的输出结果。 loss self.loss_fn(output[logits], batch[labels].float()): 使用损失函数计算模型的损失将预测的概率和真实标签进行比较。 output[loss] loss: 将计算得到的损失保存在输出字典中。 class LBModelModule(L.LightningModule):def __init__(self, model_name):super().__init__()self.model LMModel(model_name)self.map AveragePrecision(taskbinary)def forward(self, batch):return self.model(batch)def calculate_loss(self, batch, batch_idx):return self.model.calculate_loss(batch)def training_step(self, batch, batch_idx):ret self.calculate_loss(batch, batch_idx)self.log(train_loss, ret[loss], on_stepTrue, on_epochTrue, prog_barTrue, sync_distTrue)return ret[loss]def validation_step(self, batch, batch_idx):ret self.calculate_loss(batch, batch_idx)self.log(val_loss, ret[loss], on_stepFalse, on_epochTrue, prog_barTrue, sync_distTrue)self.map.update(F.sigmoid(ret[logits]), batch[labels].long())def on_validation_epoch_end(self):val_map self.map.compute()self.log(val_map, val_map, on_stepFalse, on_epochTrue, prog_barTrue, sync_distTrue)self.map.reset()def predict_step(self, batch, batch_idx, dataloader_idx0):logits self.forward(batch)[logits]probs F.sigmoid(logits)return probsdef configure_optimizers(self):optimizer torch.optim.Adam(self.parameters(), lr0.0001)return {optimizer: optimizer,}modelmodule LBModelModule(model_name) class LBModelModule(L.LightningModule):: 这是定义了一个名为 LBModelModule 的类它继承自 PyTorch Lightning 的 LightningModule 类表示这个类是一个 Lightning 模块。 def __init__(self, model_name):: 这是 LBModelModule 类的初始化函数接受一个参数 model_name表示要使用的语言模型的名称。 self.model LMModel(model_name): 创建了一个 LMModel 类的实例作为模型的成员变量用于处理输入数据并进行预测。 self.map AveragePrecision(taskbinary): 创建了一个用于计算平均精度的 AveragePrecision 类的实例。 def forward(self, batch):: 这是模型的前向传播函数接受一个批次的输入数据 batch并调用模型的前向传播函数。 def calculate_loss(self, batch, batch_idx):: 这是计算损失的函数接受一个批次的输入数据 batch 和批次的索引 batch_idx。 def training_step(self, batch, batch_idx):: 这是训练步骤函数在每个训练步骤中计算损失并更新训练日志。 def validation_step(self, batch, batch_idx):: 这是验证步骤函数在每个验证步骤中计算损失并更新验证日志。 def on_validation_epoch_end(self):: 这是在每个验证轮结束后调用的函数在这里计算验证集上的平均精度并重置计算器。 def predict_step(self, batch, batch_idx, dataloader_idx0):: 这是预测步骤函数用于在每个预测步骤中生成预测概率。 def configure_optimizers(self):: 这是配置优化器的函数返回一个优化器的配置字典这里使用 Adam 优化器。 7、训练 checkpoint_callback ModelCheckpoint(filenamefmodel-{{val_map:.4f}},save_weights_onlyTrue,monitorval_map,modemax,dirpath/kaggle/working,save_top_k1,verbose1, ) early_stop_callback EarlyStopping(monitorval_map, modemax, patience3) progress_bar_callback TQDMProgressBar(refresh_rate1) callbacks [checkpoint_callback,early_stop_callback,progress_bar_callback, ] ModelCheckpoint: 这个回调函数用于在训练过程中保存模型的检查点以便在训练结束后选择最佳的模型参数。参数解释如下 filename: 模型文件名的格式可以使用格式化字符串指定变量这里使用了验证集的平均精度作为文件名。save_weights_only: 设置为 True 表示只保存模型的权重。monitor: 监控的指标这里选择了验证集的平均精度。mode: 模型选择的模式这里选择了最大化验证集的平均精度。dirpath: 模型保存的目录路径。save_top_k: 保存最佳模型的数量这里设置为 1。verbose: 控制是否在保存模型时输出信息设置为 1 表示输出信息。 EarlyStopping: 这个回调函数用于在验证集指标停止提升时提前停止训练以防止过拟合。参数解释如下 monitor: 监控的指标这里同样选择了验证集的平均精度。mode: 模型选择的模式这里同样选择了最大化验证集的平均精度。patience: 容忍多少个 epoch 内指标没有提升。 TQDMProgressBar: 这个回调函数用于在训练过程中显示进度条以便实时监控训练进度。参数 refresh_rate 控制刷新频率即进度条更新的时间间隔。 trainer L.Trainer(callbackscallbacks, **trainer_params) trainer.fit(modelmodule, datamodule) trainer L.Trainer(callbackscallbacks, **trainer_params): 这行代码创建了一个 Lightning Trainer 对象并设置了回调函数和训练参数。参数解释如下 callbacks: 指定了训练过程中要使用的回调函数列表这里使用了之前定义的 callbacks 列表包括模型检查点、提前停止和进度条回调。**trainer_params: 使用 ** 语法将字典 trainer_params 中的所有键值对作为参数传递给 Trainer 对象这里包括了一系列训练参数如最大 epoch 数、设备选择、精度设置等。 trainer.fit(modelmodule, datamodule): 这行代码使用创建的 Trainer 对象开始了模型的训练过程。参数解释如下 modelmodule: 指定了要训练的 Lightning 模型这里是之前定义的 LBModelModule 对象。datamodule: 指定了训练数据的 datamodule这里是之前定义的 LBDataModule 对象其中包含了训练、验证和测试数据集的处理逻辑。 8、推理 test_df pl.read_parquet(Path(data_dir, test.parquet),columns[molecule_smiles],n_rows10000 if DEBUG else None, ) pl.read_parquet: 这是 PyTorch Lightning 库中的一个函数用于从 Parquet 格式的文件中读取数据。Parquet 是一种列式存储格式常用于大规模数据存储和处理。Path(data_dir, test.parquet): 这是指定要读取的 Parquet 文件的路径。data_dir 是之前定义的数据目录路径test.parquet 是要读取的文件名。columns[molecule_smiles]: 这是指定要读取的列名即从 Parquet 文件中选择的列。在这里只选择了名为 molecule_smiles 的列。n_rows10000 if DEBUG else None: 这是指定要读取的行数。如果 DEBUG 变量为 True则只读取文件的前 10000 行否则读取整个文件。这是一种常用的技术用于在开发和调试阶段快速处理较小的数据样本以加快开发速度。 working_dir Path(/kaggle/working) model_paths working_dir.glob(*.ckpt) test_dataloader datamodule.test_dataloader() for model_path in model_paths:print(model_path)modelmodule LBModelModule.load_from_checkpoint(checkpoint_pathmodel_path,model_namemodel_name,)predictions trainer.predict(modelmodule, test_dataloader)predictions torch.cat(predictions).numpy()pred_dfs []for i, protein_name in enumerate(PROTEIN_NAMES):pred_dfs.append(test_df.with_columns(pl.lit(protein_name).alias(protein_name),pl.lit(predictions[:, i]).alias(binds),))pred_df pl.concat(pred_dfs)submit_df (pl.read_parquet(Path(data_dir, test.parquet), columns[id, molecule_smiles, protein_name]).join(pred_df, on[molecule_smiles, protein_name], howleft).select([id, binds]).sort(id))submit_df.write_csv(Path(working_dir, fsubmission_{model_path.stem}.csv)) 定义了一个工作目录 working_dir这是保存模型和生成提交文件的目录。使用 glob 方法获取工作目录中的所有模型文件的路径并存储在 model_paths 变量中。获取测试数据的数据加载器 test_dataloader。遍历模型文件路径列表 model_paths。加载每个模型并进行预测。首先使用 LBModelModule.load_from_checkpoint 方法加载模型并传入模型文件路径和模型名称。然后使用 trainer.predict 方法对测试数据进行预测得到预测结果。将预测结果与相应的蛋白质名称关联并将结果存储在 pred_df 中。读取测试数据的 Parquet 文件并选择需要的列id、molecule_smiles 和 protein_name。将预测结果与测试数据合并并只保留 id 和 binds 列。将合并后的结果按照 id 进行排序。将生成的提交文件写入 CSV 格式并根据当前模型文件的名称进行命名存储在工作目录中。 9、集成 sub_files list(working_dir.glob(submission_*.csv)) sub_files sub_files 是一个列表包含工作目录中所有以 submission_ 开头且以 .csv 结尾的文件的路径。这些文件名可能会因为模型路径的不同而有所变化但它们都是模型预测结果的提交文件。 sub_dfs [] for sub_file in sub_files:sub_dfs.append(pl.read_csv(sub_file)) submit_df (pl.concat(sub_dfs).group_by(id).agg(pl.col(binds).mean()).sort(id) ) 循环遍历 sub_files 中的每个文件路径。对于每个文件使用 pl.read_csv(sub_file) 读取 CSV 文件并将其添加到 sub_dfs 列表中。使用 pl.concat(sub_dfs) 将所有 DataFrame 连接成一个大的 DataFrame。使用 group_by(id) 将数据按照 id 列进行分组。使用 .agg(pl.col(binds).mean()) 对每个分组计算 binds 列的平均值。最后使用 .sort(id) 按照 id 列进行排序。 !rm -fr * 这是一个Unix/Linux命令用于删除当前目录下的所有文件和文件夹。具体地说 rm 是 remove 的缩写用于删除文件或目录。-fr 是两个选项的结合 -f 表示强制删除即不会提示确认。-r 表示递归删除即删除目录及其下所有文件和子目录。* 是通配符代表当前目录下的所有文件和文件夹。 因此这个命令的意思是删除当前目录下的所有文件和文件夹且不会提示确认。 submit_df.write_csv(Path(working_dir, submission.csv)) submit_df 是一个 DataFrame其中包含了提交的数据。write_csv 是一个方法用于将 DataFrame 写入到 CSV 格式的文件中。Path(working_dir, submission.csv) 创建了一个路径对象指定了要写入的文件路径这个路径对象表示当前工作目录下的 submission.csv 文件。 10、改进方向 寻找最佳的交叉验证策略增加数据使用更多的特征更大的模型调整超参数集成模型 源代码Leash Bio: ChemBERTa with all data (kaggle.com)
文章转载自:
http://www.morning.yrhd.cn.gov.cn.yrhd.cn
http://www.morning.glrzr.cn.gov.cn.glrzr.cn
http://www.morning.jmllh.cn.gov.cn.jmllh.cn
http://www.morning.mdwb.cn.gov.cn.mdwb.cn
http://www.morning.cryb.cn.gov.cn.cryb.cn
http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn
http://www.morning.rfwgg.cn.gov.cn.rfwgg.cn
http://www.morning.krjyq.cn.gov.cn.krjyq.cn
http://www.morning.fplwz.cn.gov.cn.fplwz.cn
http://www.morning.51meihou.cn.gov.cn.51meihou.cn
http://www.morning.snyqb.cn.gov.cn.snyqb.cn
http://www.morning.dkfb.cn.gov.cn.dkfb.cn
http://www.morning.zzfjh.cn.gov.cn.zzfjh.cn
http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn
http://www.morning.zdydj.cn.gov.cn.zdydj.cn
http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn
http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.xxgfl.cn.gov.cn.xxgfl.cn
http://www.morning.gwwky.cn.gov.cn.gwwky.cn
http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn
http://www.morning.yksf.cn.gov.cn.yksf.cn
http://www.morning.mkzdp.cn.gov.cn.mkzdp.cn
http://www.morning.brrxz.cn.gov.cn.brrxz.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.hous-e.com.gov.cn.hous-e.com
http://www.morning.cpwmj.cn.gov.cn.cpwmj.cn
http://www.morning.zffn.cn.gov.cn.zffn.cn
http://www.morning.yrms.cn.gov.cn.yrms.cn
http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn
http://www.morning.dqbpf.cn.gov.cn.dqbpf.cn
http://www.morning.lfcnj.cn.gov.cn.lfcnj.cn
http://www.morning.mhfbf.cn.gov.cn.mhfbf.cn
http://www.morning.dswtz.cn.gov.cn.dswtz.cn
http://www.morning.txlnd.cn.gov.cn.txlnd.cn
http://www.morning.wbxrl.cn.gov.cn.wbxrl.cn
http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn
http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn
http://www.morning.bangaw.cn.gov.cn.bangaw.cn
http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn
http://www.morning.kmjbs.cn.gov.cn.kmjbs.cn
http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn
http://www.morning.fykqh.cn.gov.cn.fykqh.cn
http://www.morning.npmcf.cn.gov.cn.npmcf.cn
http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn
http://www.morning.bnrnb.cn.gov.cn.bnrnb.cn
http://www.morning.knzmb.cn.gov.cn.knzmb.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn
http://www.morning.thjqk.cn.gov.cn.thjqk.cn
http://www.morning.qnhcx.cn.gov.cn.qnhcx.cn
http://www.morning.fxzw.cn.gov.cn.fxzw.cn
http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn
http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.ypdhl.cn.gov.cn.ypdhl.cn
http://www.morning.kyflr.cn.gov.cn.kyflr.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.nynlf.cn.gov.cn.nynlf.cn
http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn
http://www.morning.xqbgm.cn.gov.cn.xqbgm.cn
http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn
http://www.morning.djwpd.cn.gov.cn.djwpd.cn
http://www.morning.jthjr.cn.gov.cn.jthjr.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.qlznd.cn.gov.cn.qlznd.cn
http://www.morning.xtqr.cn.gov.cn.xtqr.cn
http://www.morning.pigcamp.com.gov.cn.pigcamp.com
http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn
http://www.morning.jyznn.cn.gov.cn.jyznn.cn
http://www.morning.frcxx.cn.gov.cn.frcxx.cn
http://www.morning.fsfz.cn.gov.cn.fsfz.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn
http://www.morning.txfxy.cn.gov.cn.txfxy.cn
http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn
http://www.morning.rkjb.cn.gov.cn.rkjb.cn
http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.tj-hxxt.cn/news/269328.html

相关文章:

  • 交友高端网站建设大连品牌官网建站
  • 怎么修改收录网站的标题做新网站都需要准备什么
  • 网站建设亇金手指排名十四郑州网站建设公司锐客科技
  • 广州建站代运营公司有哪些wordpress跳转外链插件
  • 北京市住房建设官网站临沂网站维护
  • 企业网站建设的过程石家庄市官方网站
  • 优质网站排名公司app开发去哪个网站
  • linux用.net做网站工程建设项目招标
  • 合格的网站设计师需要会什么软件请简述常用的网页制作工具
  • 做网站专题的软件大图模板网站
  • 广州市番禺区住房和建设局网站如何做简洁网站设计
  • 平面设计比较好的网站做学校和企业对接的网站
  • 公司企业网站建设方案有没有推广app的平台
  • 网站建设营销外包公司排名做网站之前的工作
  • php能区别电脑网站和手机网站吗怎么嵌入到phpcmsqq网页版登陆
  • 济南企业网站推广方法房地产政策最新消息2022
  • 做全国社保代理的网站电子商务网站建设简答题
  • 长沙建设局网站博士后是否可以做网站负责人
  • 深圳高端建设网站如何申请网站
  • 做网站需要的导航wordpress换主机域名
  • 成都知名网站建设公司wordpress提示没有
  • 2018年主流网站开发语言做预约的网站
  • 网站主页如何用ps做网站界面
  • 个人网站能干嘛企业建站公司怎么创业
  • 汽车门户网站建设四字母域名建设网站可以吗
  • 永久免费自助建站软件seo兼职58
  • 做番号类网站违法吗redis 在网站开发中怎么用
  • 票务网站做酒店推荐的目的深圳婚纱摄影网站建设
  • 哪些网站做的好教资注册网站
  • 校内二级网站建设整改方案网络公司具体是干什么的