Skip to content

YuanyuanMa03/ml-easy-setup-R

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ML Easy Setup R

一键配置 R 语言机器学习/数据科学环境

CRAN status License

软件截图

R 语言环境配置,从未如此简单!

为什么选择 ML Easy Setup R?

痛点:配置 R 语言 ML 环境总是遇到各种问题

  • ❌ 包版本冲突(ggplot2 vs dplyr 版本不兼容)
  • ❌ 不知道用什么包处理什么任务
  • ❌ 每次新项目都要手动安装一堆包
  • ❌ renv 配置复杂,小白不知道从何入手

解决方案:一条命令搞定一切

  • ✅ 10 种预配置环境模板,覆盖各种 ML 场景
  • ✅ 基于 renv 的依赖隔离
  • ✅ 自动创建标准项目结构
  • ✅ 包含示例代码,快速上手

安装

# 从 GitHub 安装
remotes::install_github("YuanyuanMa03/ml-easy-setup-R")

# 或从 CRAN 安装(发布后)
install.packages("ml.easy.setup")

快速开始

方式一:R 函数调用

library(ml.easy.setup)

# 创建数据科学项目
create_project("data-analysis", template = "data_science")

# 创建深度学习项目
create_project("deep-learning", template = "deep_learning")

# 列出所有模板
list_templates()

方式二:命令行

# 创建项目
Rscript -e "ml.easy.setup::ml_setup('create my-project data_science')"

# 列出模板
Rscript -e "ml.easy.setup::ml_setup('list')"

# 检测系统
Rscript -e "ml.easy.setup::ml_setup('detect')"

环境模板详解

基础模板

minimal - 最小化配置

适合场景:入门学习、简单数据处理

create_project("quick-test", template = "minimal")

包含包

  • tidyverse - 数据科学工具套件
  • janitor - 数据清理
  • here - 文件路径管理
  • glue - 字符串拼接

数据科学

data_science - 数据科学环境

适合场景:数据分析、统计建模、报告生成

create_project("data-project", template = "data_science")

包含包

  • tidyverse - 完整数据科学工具链
  • tidymodels - 现代 ML 建模框架
  • caret - 经典 ML 包
  • data.table - 高性能数据处理
  • plotly - 交互式可视化
  • rmarkdown - 动态报告生成

示例代码

library(tidyverse)
library(tidymodels)

# 数据分割
split <- initial_split(df, prop = 0.75)
train <- training(split)
test <- testing(split)

# 定义模型
model_spec <- rand_forest(mtry = 4, trees = 1000) %>%
  set_engine("randomForest") %>%
  set_mode("classification")

# 训练
workflow <- workflow() %>%
  add_model(model_spec) %>%
  add_recipe(recipe)

fit <- fit(workflow, data = train)

ml_classic - 经典机器学习

适合场景:传统 ML 算法、Kaggle 竞赛

create_project("ml-project", template = "ml_classic")

包含包

  • caret - 统一建模接口
  • xgboost - 梯度提升
  • lightgbm - 高效梯度提升
  • randomForest - 随机森林
  • tidymodels - 现代 ML 框架
  • vip - 变量重要性
  • DALEX - 模型解释

示例代码

library(caret)
library(xgboost)

# XGBoost 训练
model <- train(
  target ~ .,
  data = train_data,
  method = "xgbTree",
  trControl = trainControl(
    method = "cv",
    number = 5
  ),
  tuneLength = 10
)

# 预测
predictions <- predict(model, test_data)
confusionMatrix(predictions, test_data$target)

深度学习

deep_learning - 深度学习环境

适合场景:神经网络、深度学习研究

create_project("dl-project", template = "deep_learning")

包含包

  • tensorflow - Google 深度学习框架
  • keras - 高级神经网络 API
  • tfdatasets - TensorFlow 数据管道

示例代码

library(keras)

# 构建模型
model <- keras_model_sequential() %>%
  layer_dense(units = 128, activation = 'relu', input_shape = c(784)) %>%
  layer_dropout(rate = 0.4) %>%
  layer_dense(units = 64, activation = 'relu') %>%
  layer_dropout(rate = 0.3) %>%
  layer_dense(units = 10, activation = 'softmax')

# 编译
model %>% compile(
  optimizer = 'adam',
  loss = 'categorical_crossentropy',
  metrics = c('accuracy')
)

# 训练
history <- model %>% fit(
  x_train, y_train,
  epochs = 20,
  batch_size = 128,
  validation_split = 0.2
)

可视化

visualization - 数据可视化环境

适合场景:数据可视化、图表制作

create_project("viz-project", template = "visualization")

包含包

  • ggplot2 - 语法化图形
  • plotly - 交互式可视化
  • gganimate - 动画
  • patchwork - 图表组合
  • ggthemes - 主题

示例代码

library(ggplot2)
library(patchwork)

# 创建图表
p1 <- ggplot(df, aes(x, y)) + geom_point()
p2 <- ggplot(df, aes(x, y)) + geom_line()

# 组合图表
p1 | p2

统计分析

statistics - 统计分析环境

适合场景:统计建模、假设检验、贝叶斯分析

create_project("stats-project", template = "statistics")

包含包

  • lme4 - 线性混合模型
  • nlme - 非线性混合效应
  • rstanarm - 贝叶斯回归
  • brms - 贝叶斯多级模型
  • survival - 生存分析

示例代码

library(lme4)

# 线性混合模型
model <- lmer(
  response ~ predictor1 + predictor2 + (1|random_effect),
  data = df
)

summary(model)

# 贝叶斯模型
library(brms)
model_bayes <- brm(
  response ~ predictor1 + (1|random_effect),
  data = df,
  family = gaussian()
)

时间序列

time_series - 时间序列分析

适合场景:销量预测、金融分析、传感器数据

create_project("forecast-project", template = "time_series")

包含包

  • fpp3 - 预测:原理与实践(第3版)
  • forecast - 经典预测包
  • prophet - Facebook Prophet
  • timetk - 时间序列工具包

示例代码

library(fpp3)
library(prophet)

# fpp3 方法
ts_data <- df %>%
  as_tsibble(index = date)

fit <- ts_data %>%
  model(ARIMA(value))

fit %>%
  forecast(h = 12) %>%
  autoplot()

# Prophet 方法
m <- prophet(df)
future <- make_future_dataframe(m, periods = 365)
forecast <- predict(m, future)
plot(m, forecast)

Shiny 应用

shiny - Shiny 应用开发

适合场景:交互式 Web 应用、仪表板

create_project("shiny-app", template = "shiny")

包含包

  • shiny - Web 应用框架
  • shinydashboard - 仪表板
  • DT - 交互式表格
  • plotly - 交互式图表
  • golem - Shiny 开发框架

示例代码

library(shiny)

ui <- fluidPage(
  titlePanel("My App"),
  sidebarLayout(
    sidebarPanel(
      sliderInput("n", "Number:", min = 1, max = 100, value = 50)
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

server <- function(input, output) {
  output$plot <- renderPlot({
    plot(rnorm(input$n))
  })
}

shinyApp(ui, server)

报告生成

reporting - 报告生成环境

适合场景:R Markdown 报告、论文、书籍

create_project("report-project", template = "reporting")

包含包

  • rmarkdown - 动态文档
  • knitr - 文字编织
  • bookdown - 书籍编写
  • quarto - 新一代出版系统
  • gt - 美化表格
  • flextable - 表格导出

生物信息学

bioinformatics - 生物信息学环境

适合场景:基因组分析、差异表达

create_project("bio-project", template = "bioinformatics")

包含包

  • Bioconductor - 生物信息学工具
  • DESeq2 - 差异表达分析
  • edgeR - RNA-seq 分析
  • limma - 线性模型
  • ComplexHeatmap - 复杂热图

完整环境

full - 完整工具链

适合场景:需要全方位工具的复杂项目

create_project("full-project", template = "full")

项目结构

创建的项目包含以下结构:

my-project/
├── R/                  # R 源代码目录
├── data/               # 数据目录
│   ├── raw/           # 原始数据
│   └── processed/     # 处理后数据
├── reports/            # R Markdown 报告
├── figures/            # 图表输出
├── notebooks/          # R Notebook
├── renv.lock           # 依赖锁定文件
├── .Rprofile           # R 配置文件
├── .gitignore          # Git 忽略文件
└── .Rbuildignore       # 构建忽略文件

函数参考

创建项目

create_project(
  name,              # 项目名称
  template = "minimal",  # 模板名称
  path = getwd(),    # 项目路径
  init_git = FALSE,  # 是否初始化 Git
  quiet = FALSE      # 静默模式
)

初始化 renv(用于现有项目)

init_renv(
  project = getwd(),    # 项目路径
  packages = character(0)  # 要安装的包
)

添加包

add_packages(
  packages,      # 包名向量
  project = getwd(),  # 项目路径
  type = "packages"   # 类型
)

系统检测

detect_system()

输出示例:

System Detection
================
Item              Value
----------------  -------------
R Version         4.3.1
Platform          x86_64-apple-darwin20
OS                darwin
CPU Cores         8
Memory            NA
renv              Installed
RStudio           Available

常见使用场景

Kaggle 竞赛

create_project("kaggle-titanic", template = "ml_classic")

数据分析报告

create_project("sales-report", template = "reporting")

Shiny 应用

create_project("customer-dashboard", template = "shiny")

深度学习研究

create_project("research-dl", template = "deep_learning")

时间序列预测

create_project("demand-forecast", template = "time_series")

开发

# 安装开发版本
remotes::install_github("YuanyuanMa03/ml-easy-setup-R")

# 运行测试
testthat::test_dir("tests")

# 生成文档
devtools::document()

路线图

  • 添加更多领域模板(空间分析、网络分析等)
  • 支持 Quarto 项目模板
  • 集成 CI/CD 模板
  • 添加 Docker 支持
  • 发布到 CRAN

与 Python 版本对比

特性 R 版本 Python 版本
包管理 renv uv/venv
预配置模板 10 种 13 种
项目结构 R 标准 Python 标准
语言特性 R 生态 Python 生态

贡献

欢迎贡献!请查看 CONTRIBUTING.md 了解详情。

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢


⭐ 如果这个项目对您有帮助,请考虑给我们一个星标!

Made with ❤️ for the R community

About

一键配置 R 语言机器学习/数据科学环境,解决依赖冲突和配置难题

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages