r - 决策树中 R 数据挖掘的空结果
问题描述
我有这个代码
#Import data
tugas=read.csv("D:/FlightDelays.csv")
dipakai=c(1,2,4,8,10,13)
l=dim(tugas)[1]
tugas<-tugas[1:l,dipakai]
## Pembagian Data TRaining dan testtin
n <- round(nrow(tugas)*0.70);n
set.seed(123)
samp=sample(1:nrow(tugas),n)
data.train = tugas[samp,]
data.test = tugas[-samp,]
dim(data.train)
dim(data.test)
fit <- rpart(delay~., data = data.train, method = 'class')
summary(fit)
fit$variable.importance
但是fit$variable.importance
,我无法运行它,因为结果为空。我怎样才能解决这个问题?
解决方案
它不起作用,因为您所有的预测都是多数类:
fl = https://raw.githubusercontent.com/niharikabalachandra/Logistic-Regression/master/FlightDelays.csv
tugas=read.csv(fl)
dipakai=c(1,2,4,8,10,13)
l=dim(tugas)[1]
tugas<-tugas[1:l,dipakai]
n <- round(nrow(tugas)*0.70)
set.seed(123)
samp=sample(1:nrow(tugas),n)
data.train = tugas[samp,]
data.test = tugas[-samp,]
fit <- rpart(delay~., data = data.train, method = 'class')
table(predict(fit,type="class"))
delayed ontime
0 1541
你需要解决这个学习不平衡的问题。下面我只是调整权重来得到不是大多数类的预测,但是它并没有提高模型的精度:
wt = ifelse(data.train$delay == "delayed",1.5,1)
fit <- rpart(delay~., data = data.train, method = 'class',weights =wt)
table(predict(fit,type="class"))
delayed ontime
97 1444
table(predict(fit,data.train,type="class"),data.train$delay)
delayed ontime
delayed 53 44
ontime 235 1209
您现在可以了解重要性:
fit$variable.importance
carrier dest schedtime dayweek origin
40.275159 23.709600 19.088864 16.221204 9.527087
推荐阅读
- node.js - 遍历 JSON 数组每次都会给我 0
- reactjs - 如何在 React 和 Graphql 中格式化日期“1594321836292”
- javascript - 合并到匹配 id 的对象数组
- cors - NestJS CORS 不起作用 - 我该怎么办?
- leaflet - 在 Leaflet 的 .bindPopup 中插入多个元素
- c++ - C++ 程序未运行
- rust - 对我的可写类型使用 fmt::Write 或 io::Write 特征?
- javascript - 通过javascript旋转图像
- multidimensional-array - 如何在 c++ 程序中插入名称列表,就像我们在 int 数组中插入整数一样
- angular - 通过比较两个列表来获取值