在当今的数据驱动时代,机器学习已成为各行各业不可或缺的工具。然而,从数据预处理到模型训练、评估,再到结果比较,这一流程往往繁琐且耗时。本文介绍的是一个fastml R包,它旨在简化机器学习模型的训练、评估和比较过程。fastml以其简洁的代码和强大的功能,帮助我们在机器学习项目中节省时间并提高效率。本文将详细介绍fastml的功能,并通过代码示例展示其使用方法。
全面的数据预处理:轻松处理缺失值、编码分类变量,并应用各种缩放方法。
支持多种算法:训练包括XGBoost、随机森林、支持向量机(SVM)、KNN、神经网络等多种机器学习模型。
超参数调优:为每种算法自定义和自动化超参数调优,以优化模型性能。
性能评估:使用准确率、Kappa、敏感性、特异性、精确度、F1分数和ROC、AUC等指标评估模型。
可视化工具:生成比较图,轻松可视化和比较不同模型的性能。
易于集成:设计直观的函数接口,可以无缝集成到你现有的R工作流中。
安装
install.packages("fastml")
devtools::install_github("selcukorkmaz/fastml")
# 加载R包
library(fastml)
主要函数及参数
fastml(
# 数据集
# 目标变量
algorithms = c("xgboost", "random_forest", "svm_radial"), # 支持的算法
test_size = 0.2, # 测试集的比例
resampling_method = "cv", # 重采样方法
5, # 交叉验证的折数 =
tune_params = NULL, # 调参
metric = "Accuracy", # 评估指标
1, # CPU核数 =
TRUE, # 分层抽样 =
impute_method = NULL, # 缺失数据插补方法
encode_categoricals = TRUE, # 分类变量是否编码
scaling_methods = c("center", "scale"), # 数据归一化
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",
"xgboost", # 指定算法 =
resampling_method = "cv",
folds = 3,
n_cores = 8,
test_size = 0.25
)
# View model summary
summary(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 results
summary(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)
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor virginica versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor virginica versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] versicolor versicolor versicolor versicolor versicolor
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
[ ] virginica virginica virginica virginica virginica
Levels: versicolor virginica
结语
fastml的优势在于它的简洁性和全面性。它不仅支持多种机器学习算法,还提供了数据预处理、超参数调优和性能评估等一站式服务。这使得fastml成为机器学习初学者和专业人士的理想选择。
fastml通过简化机器学习流程,让我们能够更专注于模型的构建和优化,而不是被繁琐的代码所困扰。如果你正在寻找一个能够提高工作效率的R包,fastml绝对值得一试。
参考资料
https://github.com/selcukorkmaz/fastml
分享更多R语言知识,请关注公众号【数据统计和机器学习】。公众号后台回复“fastml”免费索取数据和代码。请【分享+点赞+在看】