回复:将类别分配给行,保持总概率固定我会尝试这个公式。
p = Random Uniform();
If( p <= 0.5, 0, p <= 0.8, 1, 2 );
我使用了50%的培训,30%的验证和20%的测试。
回复:将类别分配给行,保持总概率固定你好 @马克贝利 ,
谢谢你的建议。这项工作可行,但是我做了一些修改,因为我不想拥有固定的训练,验证和测试比率,而是修改每个引导程序模拟以查看是否存在最佳的训练/验证/测试比率,因为验证列中的选择可能会影响模型拟合,也许简单的0.6、0.2、0.2拆分不是最佳选择。例如,也许应该为0.72、0.15、0.13。
p = Random Uniform();
If( p <= Random Uniform(x1,x2), 0,<BR /> p <= Random Uniform(X3,x4), 1,<BR /> p <= Random Uniform(x5,x6), 2 );
调整x1,x2,x3,x4,x5和x6可以导致公式列中训练/验证/测试的比率的范围不同。
谢谢!,
DS
回复:将类别分配给行,保持总概率固定您一次只能使用一个随机变量。在调用If()函数之前,无需多次调用Random Uniform()。将变量用于布尔表达式。
p = Random Uniform();
If( p <= x1, 0, p <= x2, 1, 2 );
将类别分配给行,使总概率固定尊敬的JMP社区,
(WE10,64位,JMP Pro 4.1.0)
我正在尝试通过将0、1或2分配给行来生成执行类似于“创建验证列”的操作的列公式。我正在尝试使用“随机类别”功能作为执行此操作的一种方法,它可以正常工作,但不是我想要的方法。它为行分配0、1或2,但是当您将每个类别的频率相加时,会得到一个大于1的值,这是我不希望的。
在“创建验证列”中,您可以将数据表的特定百分比分配为“火车”,“验证”或“测试”(0、1、2),这些分数的总和始终为1。我想使用随机类别之类的函数来执行此操作,以使“ 0”,“ 1”和“ 2”的分数加起来为1。为了简单起见,我想使“ 1”的数量等于“ 2”的数量,即,验证数据和测试数据的数量相等,并且总计为1-训练数据行的数量。
所有这些背后的目的是,我想通过更改训练,验证和测试数据集的数量来测试调整模型,以最小化RMSE。可以通过右键单击感兴趣的统计信息,然后选择“模拟”来完成此操作,它会进行引导并重新运行模型以评估统计信息的变化方式。但是,您必须具有一个功能,可以交换出每个验证数据集中的行数。
每次运行模拟时,它将“生成”一个新的验证列,但是“火车”,“验证”,“测试”行的比率不同。然后,可以使用输出来找到三个模型的最佳比率,以获得更好的模型。
任何想法/反馈对此表示极大的赞赏。
谢谢!,
DS
回复:将类别分配给行,保持总概率固定该计划是可靠的。不过,对于较大的样本,它的性能更好。这也许是一个更好的版本。(我通常不使用公式。)
Names Default to Here( 1 );
n = 500;
dt = New Table( "Again and Again",
Add Rows( n ),
New Column( "Y", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X1", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X2", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "Validation", "Numeric", "Nominal" )
);
training proportion = 0.6;
valid threshold = 1 - ((1 - training proportion) / 2);
:Validation << Set Values(
J( n, 1, p = Random Uniform(); If( p <= training proportion, 0, p <= valid threshold, 1, 2 ) );
);
您是否有理由坚持这么大的测试比例?
回复:将类别分配给行,保持总概率固定你好 @马克贝利 ,
如果使用修改后的版本,则比使用精简形式时,会得到更大范围的比率。
换句话说,我可以看到更大范围的测试训练集(约65%-78%),其他则按比例分配-大约50/50验证/测试。这确实是我所追求的:更改测试将训练集设置在一个较低的值和较高的值之间,然后将其余的50/50分为:验证/测试。
谢谢!,
DS
回复:将类别分配给行,保持总概率固定再次感谢您的建议!我之前的回复中有一个错字并进行了编辑。较大部分应用于训练集,而不是测试集。