分子AI預測賽Task1筆記

乐池發表於2024-07-02

專案介紹

一、賽事背景
在當今科技日新月異的時代,人工智慧(AI)技術正以前所未有的深度和廣度滲透到科研領域,特別是在化學及藥物研發中展現出了巨大潛力。精準預測分子性質有助於高效篩選出具有優異效能的候選藥物。以PROTACs為例,它是一種三元複合物由目標蛋白配體、linker、E3連線酶配體組成,靶向降解目標蛋白質。本次大賽聚焦於運用先進的人工智慧演算法預測其降解效能,旨在激發參賽者創新思維,推動AI技術與化學生物學的深度融合,進一步提升藥物研發效率與成功率,為人類健康事業貢獻智慧力量。透過此次大賽,我們期待見證並孵化出更多精準、高效的分子性質預測模型,共同開啟藥物發現的新紀元。

二、賽事任務
選手根據提供的demo資料集,可以基於demo資料集進行資料增強、自行蒐集資料等方式擴充資料集,並自行劃分資料。運用深度學習、強化學習或更加優秀人工智慧的方法預測PROTACs的降解能力,若DC50>100nM且Dmax<80% ,則視為降解能力較差(demo資料集中Label=0);若DC50<=100nM或Dmax>=80%,則視為降解能力好(demo資料集中Label=1)。

三、評審規則
本模型依據提交的結果檔案,採用F1-score進行評價。

1、本賽題均提供下載資料,選手在本地進行演算法除錯,在比賽頁面提交結果。

2、每支團隊每天最多提交3次。

3、得分從高到低排序,排行榜將選擇團隊的歷史最優成績進行排名。

跑通baseline

很輕鬆就跑過了,評分是0.7064

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)

構思idea

由於還是初學者,沒什麼知識儲備。根據網上的資料分析了一些

  • 使用GridSearchCV進行超引數調優,選擇最佳引數組合。
  • 可以進行特徵組合的嘗試,例如數值特徵的交叉乘積
train['XLogP3_HeavyAtomProduct'] = train['XLogP3'] * train['Heavy Atom Count']
  • 可以嘗試其他的方法,例如xgboost

相關文章