You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Kaggle蛋白质分类代码预测未知序列数据集的分类?

利用现有蛋白质分类模型预测自定义序列分类的解决方案

问题背景

已获取Kaggle上的蛋白质分类代码与数据集,但自身数据集为仅包含蛋白质序列的CSV文件,仅sequence列与原训练集重合,需基于现有代码/模型预测自定义序列对应的分类。

解决方案步骤

1. 完成原模型训练(关键修改)

原代码中存在sys.exit()语句,会中断模型训练流程,需先注释该语句,确保模型完成训练,并保存训练好的特征向量器与模型,方便后续复用:

# 导入必要库(原代码已包含,此处仅作提示)
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
import sys
import joblib

# ...(原代码中数据加载、预处理、训练集划分部分保持不变)

# 注释原代码中的sys.exit(),避免中断训练
# sys.exit()

# 4). ------ Machine Learning Models ------
prediction = dict()

# 训练朴素贝叶斯模型(原代码逻辑)
model = MultinomialNB()
model.fit(X_train_df, y_train)
NB_pred = model.predict(X_test_df)
prediction["MultinomialNB"] = accuracy_score(NB_pred, y_test)
print(f"MultinomialNB准确率: {prediction['MultinomialNB']}")

# 保存特征向量器和训练好的模型,方便后续复用
joblib.dump(vect, 'protein_sequence_vectorizer.pkl')
joblib.dump(model, 'protein_classification_model.pkl')
print("向量器与模型已保存")

2. 加载自定义数据集并执行预测

无论是训练完成后直接预测,还是后续单独加载模型预测,都可使用以下代码:

# 加载自定义序列CSV文件
custom_data = pd.read_csv('你的自定义序列文件.csv')
# 若你的序列列名不是sequence,修改为对应列名
# custom_data = custom_data.rename(columns={'原列名': 'sequence'})

# 加载之前保存的向量器和模型
vect = joblib.load('protein_sequence_vectorizer.pkl')
model = joblib.load('protein_classification_model.pkl')

# 对自定义序列执行与训练集一致的特征转换
X_custom = vect.transform(custom_data['sequence'])

# 执行分类预测
custom_predictions = model.predict(X_custom)
# 可选:获取每个预测结果的置信概率
custom_probs = model.predict_proba(X_custom)
custom_data['prediction_confidence'] = np.max(custom_probs, axis=1)

# 合并预测结果并保存到CSV
custom_data['predicted_classification'] = custom_predictions
custom_data.to_csv('蛋白质分类预测结果.csv', index=False)
print("预测结果已保存至蛋白质分类预测结果.csv")

3. 关键注意事项

  • 确保自定义序列格式与原训练集一致:仅包含标准氨基酸缩写(如A、C、D等),无特殊字符、缺失值或格式错误
  • 原模型仅针对样本量>1000的分类类型训练,预测结果只会属于这些分类,可通过原代码中的types变量查看具体分类列表
  • 若自定义序列存在长度异常(过短或过长),建议参照原训练集的序列长度范围进行过滤,避免预测偏差

内容的提问来源于stack exchange,提问作者Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:23:13