gpt4 book ai didi

R boruta 包 - (列表)对象无法强制为类型 'double'

转载 作者:行者123 更新时间:2023-11-30 08:46:39 42 4
gpt4 key购买 nike

我正在尝试在我的数据集上运行 boruta 特征选择。

代码如下:

df<-read.csv('F:/DataAnalyticsClub/DACaseComp/DatasetDist/Datasets/BestFile.csv',stringsAsFactors=FALSE )
install.packages("Boruta")
library(Boruta)
df[is.na(df)] <- 0
df[df == ""] <- 0
X<-df[ , -which(names(df) %in% c("PREVSALEDATE","PREVSALEDATE2","ClassLabel", "PARID", "PROPERTYUNIT", "PriceDiff1", "PriceDiff2", "DateDiff1", "DateDiff2", "SALEDATE"))]
Y<-df['ClassLabel']



factorCols <- c("SCHOOLDESC","MUNIDESC","SALEDESC","INSTRTYPDESC","NEIGHDESC","TAXDESC","TAXSUBCODE_DESC","OWNERDESC","USEDESC","LOTAREA","CLEANGREEN","FARMSTEADFLAG","ABATEMENTFLAG","COUNTYEXEMPTBLDG","STYLEDESC","EXTFINISH_DESC","ROOFDESC","BASEMENTDESC","GRADEDESC","CONDITIONDESC","CDUDESC","HEATINGCOOLINGDESC","BSMTGARAGE")
nonFactorCols<-c("PRICE","COUNTYTOTAL","LOCALTOTAL","FAIRMARKETTOTAL","STORIES","YEARBLT","TOTALROOMS","BEDROOMS","FULLBATHS","HALFBATHS","FIREPLACES","FINISHEDLIVINGAREA","PREVSALEPRICE","PREVSALEPRICE2")

X[factorCols] <- lapply(X[factorCols], factor)

set.seed(123)
boruta.train<-Boruta(X,Y)

所以你看到我有一个不同特征的数据集,其中一些是字符串特征,所以我将它们转换为因子。其余的都是数字。我测试我的假设: enter image description here一旦我运行了 Boruta,我就得到了

Error in data.matrix(data.selected) : 
(list) object cannot be coerced to type 'double'

我不知道为什么。我的所有列都是因子或各种数字类型。可能出了什么问题?

经过谷歌搜索后,我发现有些人建议进行 as.matrix() 转换,但在这种情况下:

> boruta.train<-Boruta(as.matrix(X),as.matrix(Y))
Error: Variable none not found. Ranger will EXIT now.
Error in ranger::ranger(data = x, dependent.variable.name = "shadow.Boruta.decision", :
User interrupt or internal error.

最佳答案

好的,经过一番尝试后,我成功地发现了问题所在。 Boruta 要求 Y(目标)是列表类型,而不是数据帧或其他任何类型。

所以只需像这样创建 Y:

Y<-df[,'ClassLabel']

解决问题。

关于R boruta 包 - (列表)对象无法强制为类型 'double',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40823979/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com