大数跨境
0
0

[R包分享]fastml:快速机器学习模型训练和评估

[R包分享]fastml:快速机器学习模型训练和评估 R语言数据分析指南
2024-12-11
2

欢迎关注R语言数据分析指南

本节来分享一款用于机器学习模型训练和评估的R包fastml,此包可以简化多个机器学习模型的训练、评估和比较。它提供全面的数据预处理,支持各种具有超参数调整的算法,并提供性能指标和可视化工具,以促进高效、有效的机器学习工作流程。更多详细内容请参考官方文档。

官方文档

https://github.com/selcukorkmaz/fastml

此包的目前最大的问题可能在于需要的依赖包过多,小编在运行官方代码测试中发现需要安装如下多款依赖包,同时还提示需要python3环境。

install.packages("fastml")
> install.packages("fastml")  
also installing the dependencies ‘SQUAREM’, ‘diagram’, ‘lava’, ‘prodlim’,
‘warp’, ‘lhs’, ‘gower’, ‘hardhat’, ‘ipred’, ‘timeDate’, ‘slider’, 
‘doFuture’, ‘GPfit’, ‘modelenv’, ‘DiceDesign’, ‘sfd’, ‘recipes’, 
‘rsample’, ‘parsnip’, ‘tune’, ‘workflows’, ‘yardstick’, ‘dials’
library(tidyverse)
install.packages("lightgbm")
install.packages("bonsai")
install.packages("discrim")
install.packages("keras")
install.packages("baguette")


library(fastml)
library(lightgbm)
library(bonsai)
library(discrim)
library(keras)
library(baguette)
# Example dataset
data(iris)
# 使用了 iris 数据集,将其转化为二分类问题,仅保留了 versicolor 和 virginica 两个类别。
iris <- iris[iris$Species != "setosa", ]  # Binary classification

iris$Species <- factor(iris$Species)

• 调用了 fastml 的核心函数 fastml 来完成模型训练。
• 自动选择和训练多种算法,例如 XGBoost、随机森林(Random Forest)、支持向量机(SVM)、k-近邻(KNN)、神经网络(Neural Networks)等。
• 自动进行超参数调优,确保每种算法都在优化配置下运行,从而实现最佳性能。

# Train models
model <- fastml(
  data = iris,
  label = "Species")

使用 summary(model) 查看模型性能结果:
• 输出包括多个性能指标:准确率 (Accuracy)、Cohen’s Kappa (Kappa)、敏感度 (Sensitivity)、特异度 (Specificity)、精确率 (Precision)、F1 分数 (F1 Score) 和 ROC 曲线下面积 (ROC AUC)。

# View model summary
summary(model)

===== fastml Model Summary =====
Best Model: c5.0 

Performance Metrics for All Models:

               Model accuracy    f_meas kap precision roc_auc sens spec
                c5.0     0.95 0.9473684 0.9         1    1.00  0.9    1
                 lda     0.95 0.9473684 0.9         1    0.99  0.9    1
                 qda     0.95 0.9473684 0.9         1    0.99  0.9    1
             bagging     0.90 0.8888889 0.8         1    1.00  0.8    1
       decision_tree     0.90 0.8888889 0.8         1    0.92  0.8    1
            lightgbm     0.90 0.8888889 0.8         1    1.00  0.8    1
 logistic_regression     0.90 0.8888889 0.8         1    0.90  0.8    1
      neural_network     0.90 0.8888889 0.8         1    0.98  0.8    1

图形解读

代码和图表通过 fastml 包展示了如何高效地完成机器学习模型训练和性能对比分析。利用 fastml 的自动化功能,可以在短时间内快速获得多个模型的性能评估结果,并通过清晰的可视化工具进行对比,从而为模型选择提供数据支撑。这种方法尤其适合时间有限或需要快速原型开发的场景。

横轴:Model
横轴表示所比较的 不同机器学习模型,是 fastml 包在同一数据集上自动训练的多种分类模型。这些模型包括:
1. bagging:Bagging(Bootstrap Aggregating),通过结合多个弱分类器(例如决策树)的结果来减少模型的方差并提高稳定性。
2. SVM (Support Vector Machine):支持向量机,擅长处理线性可分数据和高维数据集的分类问题。3. decision_tree:决策树模型,基于树结构的分层分类。
4. lda (Linear Discriminant Analysis):线性判别分析,基于统计学方法进行分类,适合线性可分的特征。
5. logistic_regression:逻辑回归,经典的二分类模型,适用于线性可分问题。
6. neural_network:神经网络模型,用于处理复杂的非线性关系。
7. c5.0:一种改进的决策树算法,常被用于快速训练和优化树模型。
这些模型通过 fastml 的自动化过程完成训练和超参数调优,因此即使是不同的模型,均已在性能优化后被比较。

图例表示对应的性能指标:
• 红色(accuracy):表示 准确率,即模型整体预测的正确率。
• 棕色(f_meas):表示 F1 分数,精确率和召回率的综合衡量。
• 绿色(kap):表示 Cohen’s Kappa,分类一致性指标。
• 深绿色(precision):表示 精确率,预测为正类的样本中实际为正类的比例。
• 蓝色(roc_auc):表示 ROC 曲线下面积,分类能力的综合评价。
• 紫色(sens):表示 敏感度(召回率),模型对正类样本的识别能力。
• 粉色(spec):表示 特异度,模型对负类样本的识别能力。

该图的意义在于 直观比较多种机器学习模型在不同性能指标上的表现,通过柱子高度直接反映每种模型在各性能指标上的得分,能够快速比较和筛选出最优模型。

关注下方公众号下回更新不迷路

购买介绍

本节介绍到此结束,有需要学习R数据可视化的朋友欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档(2024版),购买将赠送2023年的绘图文档内容。目前此文档(2023+2024)已经更新上传200案例文档,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。

2024更新的绘图内容将同时包含数据+代码+注释文档+文档清单,2023无目录仅有数据文件夹,小编只分享案例文档,不额外回答问题,无答疑服务,零基础不推荐买。

案例特点

所选案例图均属于个性化分析图表完全适用于论文发表,内容异常丰富两年累计发布案例图200+,2024年6月起提供html版注释文档更加直观易学。文档累计上千人次购买拥有良好的社群交流体验。R代码结构清晰易懂,为防止中文乱码提供单独的注释文档

R代码结构清晰易懂,为防止中文乱码2024年6月起提供单独html注释文档

群友精彩评论

淘宝店铺

2024年已更新案例图展示

2023年案例图展示


【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读410
粉丝0
内容1.2k