输入“/”快速插入内容

Task3:进阶baseline详解

2024年6月23日创建
4648
6984
46
5
导入模块
导入Python中用于数据分析、机器学习建模和化学信息学所需的库。以下是每个库的简要说明:
numpy: 提供强大的多维数组对象和相应的操作。
pandas: 提供高性能、易用的数据结构和数据分析工具。
catboost: 一个用于机器学习的库,特别是分类和回归任务。
sklearn.model_selection: 包含模型选择的多种方法,如交叉验证。
sklearn.metrics: 包含评估模型性能的多种指标。
rdkit: 一个化学信息学和机器学习软件,用于处理化学结构。
sklearn.feature_extraction.text: 提供将文本转换为特征向量的Tf-idf向量化器。
tqdm: 用于在长循环中添加进度条的库。
sys: 与Python解释器密切相关的模块,提供访问由解释器使用或维护的变量和函数。
os: 提供与操作系统交互的功能。
gc: 垃圾收集器接口,用于手动标记对象为可删除。
re: 正则表达式库,用于字符串搜索和替换。
argparse: 用于编写用户友好的命令行接口。
warnings: 用于发出警告的库,这里用来忽略警告信息。
代码块
import numpy as np
import pandas as pd
from catboost import CatBoostClassifier
from sklearn.model_selection import StratifiedKFold, KFold, GroupKFold
from sklearn.metrics import f1_score
from rdkit import Chem
from rdkit.Chem import Descriptors
from sklearn.feature_extraction.text import TfidfVectorizer
import tqdm, sys, os, gc, re, argparse, warnings
warnings.filterwarnings('ignore')
数据预处理
代码块
train = pd.read_excel('./dataset-new/traindata-new.xlsx')
test = pd.read_excel('./dataset-new/testdata-new.xlsx')
# test数据不包含 DC50 (nM) 和 Dmax (%)
train = train.drop(['DC50 (nM)', 'Dmax (%)'], axis=1)
# 定义了一个空列表drop_cols,用于存储在测试数据集中非空值小于10个的列名。
drop_cols = []
for f in test.columns:
if test[f].notnull().sum() < 10:
drop_cols.append(f)
# 使用drop方法从训练集和测试集中删除了这些列,以避免在后续的分析或建模中使用这些包含大量缺失值的列
train = train.drop(drop_cols, axis=1)
test = test.drop(drop_cols, axis=1)
# 使用pd.concat将清洗后的训练集和测试集合并成一个名为data的DataFrame,便于进行统一的特征工程处理
data = pd.concat([train, test], axis=0, ignore_index=True)
cols = data.columns[2:]