【机器学习】Datawhale-AI夏令营分子性质AI预测挑战赛

news/2024/7/7 21:00:46 标签: 人工智能, 机器学习

参赛链接:零基础入门 Ai 数据挖掘竞赛-速通 Baseline - 飞桨AI Studio星河社区

一、赛事背景

在当今科技日新月异的时代,人工智能(AI)技术正以前所未有的深度和广度渗透到科研领域,特别是在化学及药物研发中展现出了巨大潜力。精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以PROTACs为例,它是一种三元复合物由目标蛋白配体、linker、E3连接酶配体组成,靶向降解目标蛋白质。本次大赛聚焦于运用先进的人工智能算法预测其降解效能,旨在激发参赛者创新思维,推动AI技术与化学生物学的深度融合,进一步提升药物研发效率与成功率,为人类健康事业贡献智慧力量。通过此次大赛,我们期待见证并孵化出更多精准、高效的分子性质预测模型,共同开启药物发现的新纪元。

二、赛事任务

  • 选手根据提供的demo数据集,可以基于demo数据集进行数据增强、自行搜集数据等方式扩充数据集,并自行划分数据。运用深度学习、强化学习或更加优秀人工智能的方法预测PROTACs的降解能力,若DC50>100nM且Dmax<80% ,则视为降解能力较差(demo数据集中Label=0);若DC50<=100nM或Dmax>=80%,则视为降解能力好(demo数据集中Label=1)。

三、跑通baseline

1.安装库

pip install lightgbm openpyxl

2.跑baseline

# 1. 导入需要用到的相关库
# 导入 pandas 库,用于数据处理和分析
import pandas as pd
# 导入 numpy 库,用于科学计算和多维数组操作
import numpy as np
# 从 lightgbm 模块中导入 LGBMClassifier 类
from lightgbm import LGBMClassifier


# 2. 读取训练集和测试集
# 使用 read_excel() 函数从文件中读取训练集数据,文件名为 'traindata-new.xlsx'
train = pd.read_excel('./data/data280993/traindata-new.xlsx')
# 使用 read_excel() 函数从文件中读取测试集数据,文件名为 'testdata-new.xlsx'
test = pd.read_excel('./data/data280993/testdata-new.xlsx')

# 3 特征工程
# 3.1 test数据不包含 DC50 (nM) 和 Dmax (%),将train数据中的DC50 (nM) 和 Dmax (%)删除
train = train.drop(['DC50 (nM)', 'Dmax (%)'], axis=1)

# 3.2 将object类型的数据进行目标编码处理
for col in train.columns[2:]:
    if train[col].dtype == object or test[col].dtype == object:
        train[col] = train[col].isnull()
        test[col] = test[col].isnull()

# 4. 加载决策树模型进行训练
model = LGBMClassifier(verbosity=-1)
model.fit(train.iloc[:, 2:].values, train['Label'])
pred = model.predict(test.iloc[:, 1:].values, )

# 5. 保存结果文件到本地
pd.DataFrame(
    {
        'uuid': test['uuid'],
        'Label': pred
    }
).to_csv('submit.csv', index=None)

3.提交submit.csv

四、进阶代码

CatBoost学习

CatBoost是一个开源的梯度提升库,由俄罗斯的搜索引擎公司Yandex开发。它专为处理分类和回归任务而设计,尤其擅长处理具有大量类别特征(categorical features)的数据集。CatBoost的名称来源于“Categorical Boosting”,即对类别特征进行增强的算法。

为了提升catboost的效果,尝试了多种参数组合,以获得最优的参数效果。

# 5. 定义模型并进行参数优化
param_grid = {
    'iterations': [100, 500],
    'depth': [6, 8],
    'learning_rate': [0.01, 0.05],
}

model = CatBoostClassifier(loss_function='Logloss', verbose=0)

提交submit.csv

提高了不少。


http://www.niftyadmin.cn/n/5535254.html

相关文章

验证输入数据的注解:@NotNull和@NotEmpty的区别

NotNull 和 NotEmpty 是用于验证输入数据的注解&#xff0c;它们有不同的作用和适用场景&#xff1a; NotNull 注解&#xff1a; 作用&#xff1a;确保字段的值不是 null。适用类型&#xff1a;任何对象类型&#xff08;例如 String、Collection、Map、Array 等&#xff09;。示…

【ai】ubuntu18.04 找不到 nvcc --version问题

nvcc --version显示command not found问题 这个是cuda 库: windows安装了12.5 : 参考大神:解决nvcc --version显示command not found问题 原文链接:https://blog.csdn.net/Flying_sfeng/article/details/103343813 /usr/local/cuda/lib64 与 /usr/local/cuda-11.3/lib64 完…

一、安全完善度等级SIL(Safety Integrity Level)介绍

目录 一、背景 二、定义 2.1 相关概念介绍如下&#xff1a; 2.2 扩展 2.3 注意事项 三、区分航空GNSS完好性监测中的误警率&#xff08;False Alarm Rate&#xff09;与列车安全完整性中的容忍故障发生率THR&#xff08;Tolerable Hazard Rate&#xff09; 3.1 航空GNSS…

前端工程化09-webpack静态的模块化打包工具(未完结)

9.1、开发模式的进化历史 webpacks是一个非常非常的强大的一个工具&#xff0c;相应的这个东西的学习也是有一定的难度的&#xff0c;里边的东西非常的多&#xff0c;里面涉及到的 概念的话也是非常非常的多的。 这个东西既然非常重要&#xff0c;那么在我们前端到底处于怎样…

自定义控件动画篇(八)animateLayoutChanges与LayoutTransition的使用

在Android开发中&#xff0c;animateLayoutChanges 和 LayoutTransition 都是用来在布局改变时添加动画效果的特性&#xff0c;但是它们的使用场景和方式有所不同。 animateLayoutChanges animateLayoutChanges 是一个布尔属性&#xff0c;当它被设置为true时&#xff0c;会使…

大数据可视化实验(六)——ECharts与pyecharts数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1、ECharts可视化制作.. 1 1&#xff09;使用ECharts绘制折线图显示一周的天气变换。... 1 2&#xff09;使用ECharts绘制柱状图显示商品销量的变化。... 4 2、pyecharts可视化制作.. 7 1&#xff09;使用…

配置下载 docker镜像 playedu开源 最佳实践部署

下载docker-compose docker-ce https://github.com/docker/compose/tagswget https://github.com/docker/compose/releases/download/v2.28.0/docker-compose-linux-x86_64sudo chmod x /usr/local/bin/docker-compose下载docker镜像 国内加速地址 目前仍可用的镜像(随时可能失…

Android super.img结构及解包和重新组包

Android super.img结构及解包和重新组包 从Android10版本开始&#xff0c;Android系统使用动态分区&#xff0c;system、vendor、 odm等都包含在super.img里面&#xff0c;编译后的最终镜像不再有这些单独的 image&#xff0c;取而代之的是一个总的 super.img. 1. 基础知识 …