pyCADD.Dance package

Subpackages

Submodules

pyCADD.Dance.common module

class pyCADD.Dance.common.Dancer[source]

Bases: object

Data analyzer for CADD 数据预处理及分析器

add_dataset(csv_path: str, *args, **kwargs) None[source]

增加数据集

Parameters

csv_pathstr

数据集的csv文件路径

add_neg_dataset(csv_path: str) None[source]

增加负样本数据集

Parameters

csv_pathstr

负样本数据集的csv文件路径

add_pos_dataset(csv_path: str) None[source]

增加正样本数据集

Parameters

csv_pathstr

正样本数据集的csv文件路径

get_merged_data() DataFrame[source]

返回合并数据集

prepare_data(fill_nan: bool = True, *args, **kwargs) None[source]

准备数据集

Parameters

fill_nanbool

是否填充缺失值 默认为True

*args, **kwargs

其他参数 传入self._fill_nan() value可指定填充值 默认0

save(file_name: str, dataset: DataFrame | None = None) None[source]

保存数据集

save_csv(file_name: str, dataset: DataFrame | None = None) None[source]

保存数据集

save_pickle(file_name: str, dataset: DataFrame | None = None) None[source]

保存数据集

class pyCADD.Dance.common.Evaluator(matrix: Matrix, label_col: str = 'activity')[source]

Bases: object

模型性能评估器 仅适用于非神经网络模型

add_clf(clf: Any, clf_name: str | None = None) None[source]

添加分类器实例到待评估的self.clfs字典属性中 同名分类器将被覆盖

Parameters

clfAny

分类器实例

clf_namestr

分类器名称 如为None则使用clf的__class__.__name__

del_clf(clf_name: str) None[source]

删除分类器实例

property gbt_default_params: dict

默认GBT参数空间

get_clf(clf_name: str) Any[source]

使用名称索引 获取已添加的单个分类器实例

get_clfs_dict() dict[source]

获取分类器实例字典

get_gbt_default_params() dict[source]

获取默认GBT参数空间

get_lr_default_params() dict[source]

获取默认LR参数空间

get_rf_default_params() dict[source]

获取默认RF参数空间

static get_weights(y: Series) Series[source]

计算不平衡数据集中各类标签的权重

load_params(path: str) dict[source]

加载参数文件

Parameters

pathstr

参数文件路径

Returns

paramsdict

参数字典

property lr_default_params: dict

默认LR参数空间

print_classifier_info() None[source]

打印已添加的分类器参数信息

print_cv_results() None[source]

打印交叉验证结果

repeat_cv(n_repeats: int = 30, k_folds: int = 4, random_seed: int = 42, score_func: ~typing.Callable = <function roc_auc_score>, use_train_set_only: bool = False) dict[source]

对所有添加的分类器执行多重交叉验证

Parameters

n_repeatsint

多重交叉验证的次数

k_foldsint

交叉验证的折数

random_seedint

随机种子

score_funcCallable

评估函数 默认为roc_auc_score

use_train_set_onlybool

是否只使用训练集进行交叉验证 如为False 则在交叉验证中使用完整数据集

Returns

dict

评估结果字典 SCP为单构象结果 clf_cv_results为交叉验证结果

property rf_default_params: dict

默认RF参数空间

save_params(file_name: str, params: dict) None[source]

保存参数文件

Parameters

file_namestr

参数文件名

paramsdict

参数字典

search_params(clf: Any, params_grid: dict, method: str = 'grid', *args, **kwargs) dict[source]

对模型实施最佳超参数搜索

Parameters

clfAny

分类器

params_griddict

参数空间

methodstr

调优方法

  • grid: 网格搜索

  • random: 随机搜索

argstuple

其他参数 传递给hyperparam_tuning函数

kwargsdict

其他参数 传递给hyperparam_tuning函数

testset_eval()[source]

使用测试集数据评估性能

Returns

testset_resultsdict

分类器的评估结果

class pyCADD.Dance.common.Matrix(dataframe: DataFrame, test_size=0.25, random_seed=42)[source]

Bases: object

结果矩阵

classmethod from_csv(path, *args, **kwargs) Matrix[source]

从csv文件中读取结果矩阵

Parameters

pathstr

csv文件路径

classmethod from_pickle(path, *args, **kwargs) Matrix[source]

从pickle文件中读取结果矩阵

Parameters

pathstr

pickle文件路径

classmethod from_splited_data(train_data: DataFrame, test_data: DataFrame)[source]

从划分好的数据中读取结果矩阵

Parameters

train_dataDataFrame

训练集数据

test_dataDataFrame

测试集数据

get_test_data(label_col: str = 'activity') DataFrame[source]

获取测试集数据

get_train_data(label_col: str = 'activity') DataFrame[source]

获取训练集数据

split_train_test_data(test_size: float | None = None, random_seed: int | None = None, label_col: str = 'activity') tuple[source]

划分训练集和测试集数据

pyCADD.Dance.core module

pyCADD.Dance.core.calc_scp_score(X: ~pandas.core.frame.DataFrame, y_true: ~pandas.core.series.Series, lower_is_better: bool = True, score_func: ~typing.Callable = <function roc_auc_score>)[source]

获取单构象Performance计算ROC-AUC值

Parameters

XDataFrame

数据特征

y_trueSeries

标签

lower_is_betterbool

评估指标是否为下降性指标

score_funccallable

评估方法 即 sklearn.metrics 函数 默认为ROC-AUC

Return

dict

{‘PDB’: SCP AUC}

pyCADD.Dance.core.hyperparam_tuning(model, param_gird: dict, X: DataFrame, y: Series, scoring: str = 'roc_auc', cv: int = 5, n_jobs: int = -1, method: str = 'grid', save_dir: str | None = None, model_name: str | None = None)[source]

超参数调优

Parameters

modelobject

需要调优的模型

param_griddict

超参数网格

XDataFrame

训练集

ySeries

训练集标签

scoringstr

评估标准

cvint

训练集分割数

n_jobsint

训练进程数

methodstr

调优方法 * grid: 网格搜索 * random: 随机搜索

save_dirstr | None

参数文件保存路径 为None则不保存

model_namestr

模型名称

Return

dict

调优后的模型参数

pyCADD.Dance.metrics module

pyCADD.Dance.metrics.nef_score(y_true, y_score, percent: int | None = None)[source]

计算NEF值

Parameters

y_truearray-like or pandas.Series

样本的真实标签

y_scorearray-like or pandas.Series

样本的预测得分(概率)

percentint

早期富集百分率 取前 percent% 的样本计算NEF值 默认为None 将使用阳性样本在总样本中的比率 Ra = actives / total

Module contents

Data Analyzer for Computer-aid drug design