我正在阅读有关交叉验证以及如何使用它来选择最佳模型和估计参数的内容,但我并没有真正理解它的含义。
假设我建立一个线性回归模型并进行 10 倍交叉验证,我认为这 10 个中的每一个都会有不同的系数值,现在我应该从 10 个不同的系数中选择哪个作为我的最终模型或估计参数。
或者我们使用交叉验证只是为了找到平均误差(在我们的例子中是 10 个模型的平均值)并与另一个模型进行比较?
validation statistics machine-learning cross-validation statistics-bootstrap
我有这样的产品数据
Product Date Sales Availbility
xyz 2017-12-31 724.5 6.0
xyz 2018-01-07 362.25 7.0
xyz 2018-01-14 281.75 7.0
xyz 2018-01-21 442.75 7.0
xyz 2018-01-28 442.75 6.0
xyz 2018-02-04 402.5 7.0
xyz 2018-02-11 201.25 3.0
xyz 2018-02-18 120.75 0.0
xyz 2018-02-25 40.25 0.0
xyz 2018-03-11 201.25 0.0
xyz 2018-03-18 483.0 5.0
xyz 2018-03-25 322.0 7.0
xyz 2018-04-01 241.5 7.0
xyz 2018-04-08 281.75 7.0
xyz 2018-04-15 523.25 7.0
xyz 2018-04-22 241.5 7.0
xyz 2018-04-29 362.25 7.0
Run Code Online (Sandbox Code Playgroud)
数据没有订购(一个小问题),我想要做的是,在可用性栏(第4栏)中我们有0,我想采取前3周(有完全可用性,即7)平均
如下所示:
xyz 2017-12-31 724.5 6.0 Null …Run Code Online (Sandbox Code Playgroud) 我有非常不平衡的数据,其中大约 96% 是 1 类,其余是 2 类,我在网上阅读了很多内容来解决上述问题,在 XGBOOST 文档中,他们建议使用 scale_pos_weight 和 max_delta_step 来处理不平衡数据,有人可以告诉我怎么做它们可以防止错误分类以及两者之间的区别是什么。
我有一个 20 列的训练数据集,所有这些都是我必须用于训练模型的因素,我已经获得了测试数据集,我必须在该数据集上应用我的模型进行预测并提交。
我正在进行初始数据探索,只是出于好奇检查了训练数据和测试数据级别,因为我们正在处理所有类别变量。令我沮丧的是,大多数类别(变量)在训练和测试数据集中具有不同的级别。
例如
table(train$cap.shape) #training data column levels
b c f k x
196 4 2356 828 2300
table(test$cap.shape) #test data
b f s x
256 796 32 1356
Run Code Online (Sandbox Code Playgroud)
这里我在测试数据集中有一个额外的类别,我该如何处理这些情况,训练中 c 的额外类别非常低,所以我正在考虑根据其与因变量的分布情况将该因素与其他因素合并,但我对如何处理测试中的额外级别感到困惑。
更多示例
table(train$odor) #train
c f m n p s y
189 2155 36 2150 2 576 576
table(test$odor) #test
a c f l n p
400 3 5 400 1378 254
Run Code Online (Sandbox Code Playgroud)
在本专栏中,我们有 2 个额外的测试级别,测试数据集中有大量实例。我该如何处理这些差异。
table(train$sColour) #train
b h k n o r w y
48 1627 …Run Code Online (Sandbox Code Playgroud) r classification machine-learning random-forest categorical-data
PPG Product Week Sales
P1 A 01/01/2018 50
P1 B 01/01/2018 40
P1 B 01/02/2018 30
P1 A 01/02/2018 80
P2 A 01/01/2018 100
P2 B 01/02/2018 70
Run Code Online (Sandbox Code Playgroud)
我试图找到每个PPG的总结,在这里和每个PPG中我想要获得最高销售额(整体)的产品,如下所示,
PPG Max Product Sales
P1 130 (This is sum of product A for ppg p1 across weeks)
P2 100 (This is sum of product A for ppg p2 across weeks)
Run Code Online (Sandbox Code Playgroud)
我已经尝试在dplyr中使用top_n(1,sum(sales))来实现,但它失败了,我们怎么能解决这个问题呢?我们可以将它扩展到几周内按销售额找到前n个产品,以检查是否80 -20规则,欢迎任何想法.
r ×3
boost ×1
dplyr ×1
grouping ×1
hive ×1
lag ×1
parameters ×1
statistics ×1
summary ×1
validation ×1
xgboost ×1