Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包插入符号:具有相同语法的不同输出(方法:“knn”mlpkerasdeaction)_R_R Caret - Fatal编程技术网

包插入符号:具有相同语法的不同输出(方法:“knn”mlpkerasdeaction)

包插入符号:具有相同语法的不同输出(方法:“knn”mlpkerasdeaction),r,r-caret,R,R Caret,你能帮帮我吗 我使用相同轴的插入符号获得了不同的结果。例如: model = caret::train(y ~., data = train_set, method = 'mlpKerasDecay', preProc = "range", trControl = fitControl) 输出:预测(模型) 但对于KNN: model = caret::train(y ~., data = train_set, method = 'knn', preProc = "

你能帮帮我吗

我使用相同轴的插入符号获得了不同的结果。例如:

model = caret::train(y ~., data = train_set, method = 'mlpKerasDecay', preProc = "range", trControl = fitControl)
输出:
预测(模型)

但对于KNN:

model = caret::train(y ~., data = train_set, method = 'knn', preProc = "range", trControl = fitControl) 
输出:
predict(model)

正如你所看到的,数量级是不同的。 我的问题是:

为什么?

在多层感知器中,我要做什么来反转比例

我尝试了
convert\u response()
(来源:) 但结果似乎不像KNN的结果那样具有一致性

好的,我可以一步一步地创建一个keras模型,但是我如何解决它呢

编辑: 一个应用示例:

库:

library(caret)
library(keras)
library(plyr)
library(recipes)
library(tensorflow)
library(dplyr) 
fitControl = trainControl(method = "repeatedcv", number = 5, repeats = 5)
train_set = structure(list(y = c(12.5061772379805, 12.3883942023241, 12.7656884334656, 
12.6760762747759, 12.4292161968444, 12.6115377536383), banos = c(1, 
1, 1, 1, 1, 1), lon = c(-70.65409, -70.6471, -70.64788, -70.64177, 
-70.67638, -70.64213), lat = c(-33.43636, -33.43623, -33.45287, 
-33.44923, -33.43112, -33.44331)), row.names = c(2L, 4L, 7L, 
8L, 10L, 11L), class = "data.frame")

set.seed(1234)
model = caret::train(y ~., data = train_set, method = "mlpKerasDecay", preProc = "range", trControl = fitControl)
predict(model)
-0.6769148 -0.7869630 -1.0850035 -1.1153764 -0.2204445 -0.9990849
设置:

library(caret)
library(keras)
library(plyr)
library(recipes)
library(tensorflow)
library(dplyr) 
fitControl = trainControl(method = "repeatedcv", number = 5, repeats = 5)
train_set = structure(list(y = c(12.5061772379805, 12.3883942023241, 12.7656884334656, 
12.6760762747759, 12.4292161968444, 12.6115377536383), banos = c(1, 
1, 1, 1, 1, 1), lon = c(-70.65409, -70.6471, -70.64788, -70.64177, 
-70.67638, -70.64213), lat = c(-33.43636, -33.43623, -33.45287, 
-33.44923, -33.43112, -33.44331)), row.names = c(2L, 4L, 7L, 
8L, 10L, 11L), class = "data.frame")

set.seed(1234)
model = caret::train(y ~., data = train_set, method = "mlpKerasDecay", preProc = "range", trControl = fitControl)
predict(model)
-0.6769148 -0.7869630 -1.0850035 -1.1153764 -0.2204445 -0.9990849
您将收到以下警告:
预处理中的警告。默认值(thresh=0.95,k=5,freqCut=19,uniqueCut=10,:banos无变化
。但是,这是我的完整数据帧
dim(train_set)=8202 63
[是的,我必须清理它(尚未)]

跑步:

library(caret)
library(keras)
library(plyr)
library(recipes)
library(tensorflow)
library(dplyr) 
fitControl = trainControl(method = "repeatedcv", number = 5, repeats = 5)
train_set = structure(list(y = c(12.5061772379805, 12.3883942023241, 12.7656884334656, 
12.6760762747759, 12.4292161968444, 12.6115377536383), banos = c(1, 
1, 1, 1, 1, 1), lon = c(-70.65409, -70.6471, -70.64788, -70.64177, 
-70.67638, -70.64213), lat = c(-33.43636, -33.43623, -33.45287, 
-33.44923, -33.43112, -33.44331)), row.names = c(2L, 4L, 7L, 
8L, 10L, 11L), class = "data.frame")

set.seed(1234)
model = caret::train(y ~., data = train_set, method = "mlpKerasDecay", preProc = "range", trControl = fitControl)
predict(model)
-0.6769148 -0.7869630 -1.0850035 -1.1153764 -0.2204445 -0.9990849
结果(可能会在您的计算机中更改):

library(caret)
library(keras)
library(plyr)
library(recipes)
library(tensorflow)
library(dplyr) 
fitControl = trainControl(method = "repeatedcv", number = 5, repeats = 5)
train_set = structure(list(y = c(12.5061772379805, 12.3883942023241, 12.7656884334656, 
12.6760762747759, 12.4292161968444, 12.6115377536383), banos = c(1, 
1, 1, 1, 1, 1), lon = c(-70.65409, -70.6471, -70.64788, -70.64177, 
-70.67638, -70.64213), lat = c(-33.43636, -33.43623, -33.45287, 
-33.44923, -33.43112, -33.44331)), row.names = c(2L, 4L, 7L, 
8L, 10L, 11L), class = "data.frame")

set.seed(1234)
model = caret::train(y ~., data = train_set, method = "mlpKerasDecay", preProc = "range", trControl = fitControl)
predict(model)
-0.6769148 -0.7869630 -1.0850035 -1.1153764 -0.2204445 -0.9990849
这里的问题是因为
y
(在列集合中)的范围是[12,13],但在这里它似乎是标准化的

经过的时间(使用第十代i7英特尔-RTX 2080):

祝你一周愉快

亲切问候,,
Mirko。

按照@missuse的建议,插入符号中的keras配置实际上是有缺陷的。我更喜欢采用最佳参数,并手动创建网络。 如果它为某人服务,这是我的代码(上次配置)

我获得了很好的表现:MAEtrain_set=0.1326和MAEtest_set=0.1331。但是,对于这两组,Rsquared<0&Rsquared~0。但在这种特殊情况下,它似乎并不“那么糟糕”(来源:)

非常感谢你


致以最良好的问候,米尔科。

提供一个最小的可复制代码,访问。完成@BappaDas。非常感谢。祝您愉快。祝您愉快,米尔科。如果您检查
mlpkerasdeaction
模型性能,您可以看到它的
RMSE
远远低于knn模型。如果您检查,您可以看到这是一个非常简单的keras模型,只有一个l艾耶尔。也许它做得再好不过了。