R cv.glmnet中的岭、套索回归误差和随机森林中的误差

R cv.glmnet中的岭、套索回归误差和随机森林中的误差,r,random-forest,logistic-regression,glm,glmnet,R,Random Forest,Logistic Regression,Glm,Glmnet,我试图运行一个脊,套索回归以及随机森林模型的总重置成本从一个csv文件 我的做法如下: data$TOTAL_REPLACEMENT_VALUE=log(data$TOTAL_REPLACEMENT_VALUE) n_total=nrow(data) n_train=round(n_total*0.7) training_data=data[1:n_train,] test_data=data[n_train+1:n_total,] X_train_cost_model=model.matr

我试图运行一个脊,套索回归以及随机森林模型的总重置成本从一个csv文件

我的做法如下:

data$TOTAL_REPLACEMENT_VALUE=log(data$TOTAL_REPLACEMENT_VALUE) 
n_total=nrow(data) 
n_train=round(n_total*0.7)
training_data=data[1:n_train,]
test_data=data[n_train+1:n_total,]
X_train_cost_model=model.matrix(TOTAL_REPLACEMENT_VALUE~TYPE,data=training_data) 
X_test_cost_model=model.matrix(TOTAL_REPLACEMENT_VALUE~TYPE,data=test_data) 
Y_train_cost=training_data[,"TOTAL_REPLACEMENT_VALUE"] 
Y_test_cost=test_data[,"TOTAL_REPLACEMENT_VALUE"]
我继续通过以下方式运行脊线和套索回归:

install.packages("glmnet",dependencies = TRUE)
library(glmnet) 
ridge_replacement_cost_model=cv.glmnet(X_train_cost_model,Y_train_cost,alpha=0,type.measure = "mse")
ridge_pred_replacement_cost=predict(ridge_replacement_cost_model,newx = X_test_cost_model,exact=TRUE,s="lambda.min")  
lasso_replacement_cost_model=cv.glmnet(X_train_cost_model,Y_train_cost,alpha=1,type.measure = "mse")
lasso_pred_replacement_cost=predict(lasso_replacement_cost_model,newx = X_test_cost_model,exact=TRUE,s="lambda.min") 

install.packages("randomForest")
library(randomForest)
rf_total_replacement_cost_model=randomForest(TOTAL_REPLACEMENT_VALUE~TYPE,                                                data=training_data,importance=TRUE)                                              
rf_pred_replacement_cost=predict(rf_total_replacement_cost_model,test_data,type="class") 
然而,我遇到了这些错误

Error in glmnet(x, y, weights = weights, offset = offset, lambda = lambda,  :    number of observations in y (590) not equal to the number of rows of x (589)

Error in na.fail.default(list(TOTAL_REPLACEMENT_VALUE = c(18.126980599175,  : 
  missing values in object

第一个错误发生在运行ridge和lasso回归之后,而第二个错误发生在运行randomForest模型之后。我知道在类似的问题上有一条线索,但我不知道哪里出了问题。非常感谢您的帮助。

您的数据中缺少值。这造成了问题。在运行模型之前删除缺少值的行。嗨,Gregor,我实际上将缺少的值转换为它的平均重置成本。因此,我的数据集中没有空的空格。对于您显示的所有代码,您不会显示任何缺少值的代码-替换为均值或其他任何内容。。错误信息非常清楚:
“对象中缺少值”
。因此,数据中似乎确实缺少值。顺便说一句,在R中,缺失值通常被编码为
NA
,因此您的数据没有任何“空白”可能是正确的,但错误消息告诉您存在缺失值。第一条错误消息说y有590个观察值,x有589个观察值,使问题看起来像是
x
中缺少一个值。哦,我已经检查了我的csv文件,我错过了一个空单元格,我应该对它执行算术运算。谢谢你的帮助,格雷戈!