You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RStudio中构建线性回归模型时lm函数无响应求助

解决R中线性回归模型无响应问题及构建Lasso回归方案

问题根源

  • 你使用~ .将所有变量纳入模型,其中同时保留了原始分类变量和生成的虚拟变量,导致严重多重共线性,且特征维度暴增。lm()需要计算大规模矩阵的逆运算,这会让R陷入长时间计算甚至无响应。
  • 若数据集本身规模较大(行数/列数过多),普通线性回归的计算复杂度会急剧上升,进一步拖慢进程。

修复线性回归无响应问题

1. 清理冗余变量

先移除原始分类变量,避免多重共线性,只保留虚拟变量和数值型特征:

# 加载dplyr用于数据筛选(未安装则先运行install.packages("dplyr"))
library(dplyr)

# 移除原始分类变量,保留虚拟变量、SALE PRICE和数值特征
trainData_clean <- trainData %>%
  select(-BOROUGH, -`BUILDING CLASS CATEGORY`, -`TAX CLASS AT TIME OF SALE`)

2. 简化模型特征

如果清理后特征仍较多,先从核心特征开始建模,再逐步扩展:

# 用核心特征构建线性回归(比如面积+行政区虚拟变量)
lm_model <- lm(`SALE PRICE` ~ `GROSS SQUARE FEET` + starts_with("DUMMY_BOROUGH"), data = trainData_clean)

# 若确认特征无冗余,也可以用全量清理后的数据建模
# lm_model <- lm(`SALE PRICE` ~ ., data = trainData_clean)

3. 小规模测试验证

如果数据集行数过多,先取子集验证模型能否正常运行:

# 随机抽取1万条数据测试
set.seed(123)
sample_train <- trainData_clean[sample(nrow(trainData_clean), 10000), ]
lm_test <- lm(`SALE PRICE` ~ ., data = sample_train)

# 若测试通过,再用全量数据;若仍慢,可改用fastlm包提升效率
# install.packages("fastlm")
# library(fastlm)
# lm_model <- fastlm(`SALE PRICE` ~ ., data = trainData_clean)

构建Lasso回归模型(适配高维度数据)

Lasso回归天生适合高维度场景,能自动进行特征选择,步骤如下:

1. 准备glmnet要求的矩阵格式

# 提取特征矩阵(自动处理虚拟变量,移除截距列)
x <- model.matrix(`SALE PRICE` ~ ., data = trainData_clean)[, -1]
# 提取目标变量
y <- trainData_clean$`SALE PRICE`

2. 交叉验证选择最优正则化参数

set.seed(123)
# alpha=1代表Lasso回归,family="gaussian"对应回归任务
lasso_cv <- cv.glmnet(x, y, alpha = 1, family = "gaussian")

# 查看最优lambda值(最小交叉验证误差对应的参数)
lasso_cv$lambda.min

3. 训练最优Lasso模型

lasso_model <- glmnet(x, y, alpha = 1, lambda = lasso_cv$lambda.min)

# 查看被选中的特征(系数非0的变量)
print(coef(lasso_model))

4. 测试集评估

# 预处理测试集
testData_clean <- testData %>%
  select(-BOROUGH, -`BUILDING CLASS CATEGORY`, -`TAX CLASS AT TIME OF SALE`)
x_test <- model.matrix(`SALE PRICE` ~ ., data = testData_clean)[, -1]

# 预测并计算RMSE
lasso_pred <- predict(lasso_model, newx = x_test)
rmse_lasso <- sqrt(mean((lasso_pred - testData_clean$`SALE PRICE`)^2))
cat("Lasso回归测试集RMSE:", rmse_lasso, "\n")

内容的提问来源于stack exchange,提问作者Inokaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:25:31