pycaret学习笔记(2)-quickstart-分类任务

文摘   2024-10-29 00:16   天津  
本次教程首页

分类

PyCaret的分类模块是一个监督机器学习模块,用于将元素分类成组。 目标是预测离散和无序的分类类标签。一些常见的用例包括预测客户默认(是或否)、预测客户流失(客户将离开或留下)、发现的疾病(积极或消极)。

该模块可用于二进制或多类问题。

Setup

函数初始化训练环境并创建转换管道。在执行任何其他函数之前,必须调用Setup函数。它需要两个必需的参数:data和target。所有其他参数都是可选的。

# load sample dataset
from pycaret.datasets import get_data
data = get_data('diabetes')
测试数据
测试数据是从github下载
data.dtypes
测试数据均为数值类型的变量
# prompt: 查看data是否有缺失值

data.isnull().sum()
数据集内无缺失值

PyCaret 3.0有两个API。您可以根据自己的喜好选择其中一个。功能和实验结果是一致的。

Functional API

from pycaret.classification import *
s = setup(data, target = 'Class variable', session_id = 123)

OOP API

from pycaret.classification import ClassificationExperiment
s = ClassificationExperiment()
s.setup(data, target = 'Class variable', session_id = 123)

该函数使用交叉验证训练和评估模型库中所有可用机器学习算法的性能。该函数的输出是具有平均交叉验证分数的评分网格。 CV期间评估的指标可以使用get_metrics函数访问。可以使用add_metric和remove_metric函数添加或删除自定义指标。

# functional API
best = compare_models()

# OOP API
best = s.compare_models()
print(best)

Analyze Model

此函数分析训练模型在测试集上的性能。在某些情况下,可能需要重新训练模型。

# functional API
evaluate_model(best)

# OOP API
s.evaluate_model(best)
代码自动补全及说明功能
分析流程图
ROC曲线
校准曲线

evaluate_model只能在Notebook中使用,因为它使用ipywidget。您也可以使用plot_model函数单独生成绘图。

# functional API
plot_model(best, plot = 'auc')

# OOP API
s.plot_model(best, plot = 'auc')

# functional API
plot_model(best, plot = 'confusion_matrix')

# OOP API
s.plot_model(best, plot = 'confusion_matrix')

Predictions

该函数对数据进行评分并返回prediction_label和prediction_score预测类的概率)。当data为无时,它预测测试集上的标签和分数(在设置函数期间创建)。

# functional API
predict_model(best)

# OOP API
s.predict_model(best)
预测结果
# prompt: 确定predtest的数据类型

print(type(pred_test))
# prompt: 查看predteest的数据维度及前列行

print(pred_test.shape)
print(pred_test.head())

评估指标是在测试集上计算的。第二个输出是pd.DataFrame,其中包含对测试集的预测(参见最后两列)。要在看不见的(新)数据集上生成标签,只需将数据集传递到predict_model函数下的data参数中。

### functional API
predictions = predict_model(best, data=data)
predictions.head()

# OOP API
predictions = s.predict_model(best, data=data)
predictions.head()```

分数表示预测类的概率(不是正类)。如果prediction_label为0,prediction_score为0.90,这意味着0类的90%概率。如果您想查看两个类的概率,只需在predict_model函数中传递raw_score=True。

# functional API
predictions = predict_model(best, data=data, raw_score=True)
predictions.head()

# OOP API
predictions = s.predict_model(best, data=data, raw_score=True)
predictions.head()

Save the model

# functional API
save_model(best, 'my_best_pipeline')

# OOP API
s.save_model(best, 'my_best_pipeline')

要在环境中重新加载模型:

# functional API
loaded_model = load_model('my_best_pipeline')
print(loaded_model)

# OOP API
loaded_model = s.load_model('my_best_pipeline')
print(loaded_model)
加载模型

高分文章新方法-基于R语言的动态预测模型课程第三期

开课目的及前言

预测模型类文章目前总结起来发展经历了以下三个阶段:

  1. 基于传统流行病学的列线图模型(本质都是cox回归及glm回归),简单的统计学分析模型,是模型依赖的方法,临床上实际情况很难满足其前提假设,实际效果不好。

  2. 基于机器学习/深度学习的预测模型的构建(在数据上提高了维度,在算法上引入了机器学习),虽然算法上引入了机器学习模型,处理数据更加灵活,模型的假设也更少。但是在使用的数据上还是患者的一次基线数据进行预测,与临床实际不符。

  3. 基于纵向数据的动态预测模型(基于纵向多次随访数据,模型应用联合模型等动态预测模型方法),应用患者的多次随访数据对最终的生存结果进行预测,从数据和方法上都更类似于临床实际。

考虑到动态预测模型有以下特点,因此必然是后续高分文章的必备方法:

  1. 数据上必须有同一个患者的多次随访数据,相对于既往横断面一次基线数据,数据的收集难度更大,而且动态预测模型需拟合纵向的线性混合模型,因此需要的数据量较大。这就提示我们如果能收集到如上数据更加容易发高分文章。

  2. 应用方法学动态预测模型需首先掌握普通生存分析及普通预测模型的方法,并且还需要熟悉纵向数据分析的广义线性混合模型,再次基础上还需要掌握tidyverse语法基础来将自己的数据转换为满足函数要求的纵向数据,另外对于联合模型,模型的结合形式及变量选择也均需要从临床背景及统计学方法考虑。

文章示例-动态预测模型预测筛查肠癌患者
文章示例-动态预测模型预测前列腺癌预后
文章示例-动态预测用于创伤外科
文章示例-动态预测对比传统模型在糖尿病患者中的应用
顶刊文章示例-动态预测模型用于肾移植后再次肾功能不全诊断
杂志情况

授课老师

1 灵活胖子

双一流学校肿瘤学博士毕业,目前就职于国内五大肿瘤中心之一。科研方向为真实世界研究,生物信息学分析及人工智能研究。目前以第一或共同第一作者身份发表SCI论文10余篇,累计IF50+。目前与国内多个院校及医院有科研合作。联合翻译小组同学,在国内第一次将jmbayes2及dynamicLM全文翻译为中文并在公众号发表。

2 Rio

医学博士,临床医生。发表中英文文章 10 余篇。R 与 python 爱好者。

课程目录及安排

第一部分:R语言基础部分

第二部分:传统临床基础统计图表制作

第三部分:常规生存分析部分

第四部分:高级生存分析部分

第五部分:动态预测模型部分

授课形式及时间

授课形式:远程在线实时直播授课。

授课时间:2024年12月开课,总课时不少于30小时,每周利用休息时间进行4-6小时的授课,预计4-6周完成所有授课内容。

答疑支持:建立课程专属微信群,1年内课程内容免费答疑。

视频回看:3年内免费无限次回看。

课程售价及售后保证

课程售价:总价3000元,报名可先交300元预定,开课后2周内交齐即可

对公转账等手续务必提前联系助教

承办公司:天企助力(天津)生产力促进有限公司

奖励政策:学员应用所学内容发表IF 10+文章可退还学费(具体要求及流程需要咨询助教)

报名咨询

可联系我的助教进行咨询

我的助教微信

助教联系电话:18502623993


灵活胖子的科研进步之路
医学博士,R语言及Python爱好者,科研方向为真实世界研究,生信分析与人工智能研究。
 最新文章