R语言使用lightgbm包构建二分类的LightGBM模型、输出二分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)
时间: 2024-10-05 08:03:27 浏览: 67
计算二项总体检验的P值_二项分布检验的P值_
5星 · 资源好评率100%
在R语言中,利用`lightgbm`包构建二分类LightGBM模型通常涉及以下几个步骤:
1. **安装和加载库**:
首先需要安装`lightgbm`和一些数据处理库,如`tidyverse`。你可以通过运行`install.packages("lightgbm")`和`install.packages(c("tidyverse", "caret"))`来完成。
2. **数据准备**:
加载数据集,例如使用`read.csv()`或`data.table::fread()`读取CSV文件,并将数据划分为训练集和测试集。
```R
library(lightgbm)
library(tidyverse)
# 加载数据
data <- data[1:80 %>% sample(nrow(data)), ]
test_data <- data[-(1:80), ]
```
3. **模型构建**:
使用`lightgbm`函数创建一个二分类模型。设置适当的参数,比如学习速率、树的数量、特征重要性等。
```R
params <- list(
objective = "binary",
metric = "binary_logloss",
num_leaves = 31,
learning_rate = 0.1,
n_estimators = 1000
)
lgb_model <- lgb.Dataset(train_data[, -c("target_column")], label = train_data$target_column,
free_raw_data = FALSE) %>%
lightgbm::boosting(params, verbose = FALSE)
```
4. **预测与评估**:
对测试集应用模型并计算混淆矩阵。这里可以使用`caret`包中的`confusionMatrix`函数。
```R
pred <- predict(lgb_model, test_data[, -c("target_column")])
test_data$predicted <- ifelse(pred > 0.5, 1, 0) # 预测类别
cm <- confusionMatrix(test_data$target_column, test_data$predicted)
cm
```
`confusionMatrix`会返回一个包含多种评价指标的表格,包括准确率(Accuracy)、精确率(Precision)、召回率(Sensitivity / Recall)、F1分数、支持度(Support)、预估值(Predicted Values)、实际值(Observed Values),以及混淆矩阵。其中,Kappa值是Cohen's kappa系数,表示观察到的分类一致性程度,P值是统计学上检验预测性能优劣的概率。
阅读全文