R语言|快速构建机器学习模型、评估与比较(fastml)

文摘   2024-12-03 15:21   甘肃  

在当今的数据驱动时代,机器学习已成为各行各业不可或缺的工具。然而,从数据预处理到模型训练、评估,再到结果比较,这一流程往往繁琐且耗时。本文介绍的是一个fastml R包,它旨在简化机器学习模型的训练、评估和比较过程。fastml以其简洁的代码和强大的功能,帮助我们在机器学习项目中节省时间并提高效率。本文将详细介绍fastml的功能,并通过代码示例展示其使用方法。

fastml提供了以下功能:

  • 全面的数据预处理:轻松处理缺失值、编码分类变量,并应用各种缩放方法。

  • 支持多种算法:训练包括XGBoost、随机森林、支持向量机(SVM)、KNN、神经网络等多种机器学习模型。

  • 超参数调优:为每种算法自定义和自动化超参数调优,以优化模型性能。

  • 性能评估:使用准确率、Kappa、敏感性、特异性、精确度、F1分数和ROC、AUC等指标评估模型。

  • 可视化工具:生成比较图,轻松可视化和比较不同模型的性能。

  • 易于集成:设计直观的函数接口,可以无缝集成到你现有的R工作流中。


安装

install.packages("fastml")
# 从github安装devtools::install_github("selcukorkmaz/fastml")
# 加载R包library(fastml)

主要函数及参数

fastml(  data, # 数据集  label, # 目标变量  algorithms = c("xgboost", "random_forest", "svm_radial"), # 支持的算法  test_size = 0.2, # 测试集的比例  resampling_method = "cv", # 重采样方法  folds = 5, # 交叉验证的折数  tune_params = NULL, # 调参  metric = "Accuracy", # 评估指标  n_cores = 1,  # CPU核数  stratify = TRUE,  # 分层抽样  impute_method = NULL, # 缺失数据插补方法  encode_categoricals = TRUE, # 分类变量是否编码  scaling_methods = c("center", "scale"), # 数据归一化  summaryFunction = NULL,  # 自定义数据摘要方法  seed = 123  # 种子数)


示例1

data(iris) # 载入数据
iris$Species <- factor(iris$Species) # 转换为因子

# 模型训练model <- fastml(  data = iris,   #数据集 label = "Species", # 目标变量  n_cores = 6  )

# 模型训练结果summary(model)
===== fastml Model Summary =====Best Model: random_forest 
Performance Metrics for All Models:
Model Accuracy Kappa Sensitivity Specificity Precision random_forest 0.95 0.9 0.9 1 1 xgboost 0.90 0.8 0.8 1 1 svm_radial 0.90 0.8 0.8 1 1 F1 0.9473684 0.8888889 0.8888889
Best Model Hyperparameters:
mtry 2
Generating performance comparison plots...
To make predictions, use the 'predict' function.=================================

结果显示,random_forest是最优模型。并列出了模型的评估指标,最优模型的超参数,模型评估比较图。

示例2

library(modeldata)data("credit_data")
# 模型训练model <- fastml( data = na.omit(credit_data), label = "Status",  algorithms = "xgboost",   # 指定算法 resampling_method = "cv", folds = 3, n_cores = 8, test_size = 0.25)
# View model summarysummary(model)
===== fastml Model Summary =====Best Model: xgboost 
Performance Metrics for All Models:
Model Accuracy Kappa Sensitivity Specificity Precision F1 xgboost 0.7998018 0.4002036 0.4257812 0.9269588 0.6646341 0.5190476
Best Model Hyperparameters:
nrounds max_depth eta gamma colsample_bytree min_child_weight subsample 100 5 0.1 0 0.6 5 0.6
Generating performance comparison plots...
To make predictions, use the 'predict' function.=================================

示例3

# 自定义超参数搜索custom_tuning <- list(  random_forest = expand.grid(mtry = c(1:10)))
model <- fastml( data = iris, label = "Species", algorithms = c("random_forest"), tune_params = custom_tuning, metric = "Accuracy")
# View the resultssummary(model)
===== fastml Model Summary =====Best Model: random_forest
Performance Metrics for All Models:
Model Accuracy Kappa Sensitivity Specificity Precision random_forest 0.9 0.8 0.8 1 1 F1 0.8888889
Best Model Hyperparameters:
mtry 1
Generating performance comparison plots...
To make predictions, use the 'predict' function.=================================

预测

predict(model,iris)

[1] versicolor versicolor versicolor versicolor versicolor [6] versicolor versicolor versicolor versicolor versicolor [11] versicolor versicolor versicolor versicolor versicolor [16] versicolor versicolor versicolor versicolor versicolor [21] versicolor versicolor virginica versicolor versicolor [26] versicolor versicolor versicolor versicolor versicolor [31] versicolor versicolor versicolor virginica versicolor [36] versicolor versicolor versicolor versicolor versicolor [41] versicolor versicolor versicolor versicolor versicolor [46] versicolor versicolor versicolor versicolor versicolor [51] virginica virginica virginica virginica virginica [56] virginica virginica virginica virginica virginica [61] virginica virginica virginica virginica virginica [66] virginica virginica virginica virginica virginica [71] virginica virginica virginica virginica virginica [76] virginica virginica virginica virginica virginica [81] virginica virginica virginica virginica virginica [86] virginica virginica virginica virginica virginica [91] virginica virginica virginica virginica virginica [96] virginica virginica virginica virginica virginica Levels: versicolor virginica


结语

fastml的优势在于它的简洁性和全面性。它不仅支持多种机器学习算法,还提供了数据预处理、超参数调优和性能评估等一站式服务。这使得fastml成为机器学习初学者和专业人士的理想选择。

fastml通过简化机器学习流程,让我们能够更专注于模型的构建和优化,而不是被繁琐的代码所困扰。如果你正在寻找一个能够提高工作效率的R包,fastml绝对值得一试。


参考资料

https://github.com/selcukorkmaz/fastml

分享更多R语言知识,请关注公众号【数据统计和机器学习】。公众号后台回复“fastml”免费索取数据和代码。请【分享+点赞+在看】

麦当的生态学笔记
用于文献信息解读和分享,统计分析相关方法的传递。
 最新文章