尝试创建并保存随机的行子集并将其保存到脚本中以备后用我正在对多元回归预测模型进行大量验证测试,我继续调整该模型,并希望使用脚本自动化部分验证测试过程。到目前为止,我还无法“保存到脚本”过程中我从训练数据集中生成和保存行的随机子集以用于验证测试的部分。
当我手动执行此操作时,我:1) 从我的主表中生成一个随机的行子集 (20%),2) 保存子集,以及 3) 从主表中删除这些子集行并保存“新”主表(请注意,我确保将子集表链接到主表以允许执行此步骤)。然后我继续对新的主表进行模型分析并测试子集表中的行的拟合程度(即验证测试)。
如何让 JMP 在脚本中“记录”这些动作?到目前为止,我还没有意识到这些动作。提前致谢!
脚本编写回复:尝试创建和保存行的随机子集并将其保存到脚本中以备后用查看子集数据表中的源条目,它将具有子集的 jsl回复:尝试创建和保存行的随机子集并将其保存到脚本中以备后用你好@Campbell_Ted_R ,
以下脚本应该可以帮助您开始您想去的地方。 我不建议将子集链接到主表,因为如果这样做,当我们使用脚本删除主表中的那些行时,它也会删除子集表中的行。 无论如何,这应该让你朝着你想要的方向开始。
Names default to here (1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Random_rows = dt<<SELECT randomly=""></SELECT>
希望这可以帮助!,
DS
回复:尝试创建和保存行的随机子集并将其保存到脚本中以备后用完美的!是否有命令在脚本中命名新文件(即新的子集文件和新的主表文件)?理想情况下,它会在每次运行脚本时以顺序递增的数字命名两个新文件(例如,子集 1、主要 1.....子集 2、主要 2.....子集 3、主要 3、... ..etc)但我不介意在需要时自己在脚本中手动重新设置它,因为这已经节省了大量时间。
回复:尝试创建和保存行的随机子集并将其保存到脚本中以备后用你好@Campbell_Ted_R ,
是的,在 JSL 中调用 Save 或 Save As 函数时,可以设置名称。 如果您以迭代方式执行此操作,则可以将其全部放入更大的 For 循环中,并且它可以自动为您完成所有操作。 现在我考虑了您对数据所做的事情,几乎看起来您正在做类似于 K 折交叉验证的事情。 如果您是,JMP 中的许多适合平台都可以轻松应对。 根据建模平台,您可以选择它作为交叉验证选项,或者您可能必须制作几个 k 折验证列,这在 XGBoost 中是需要的。 无论哪种方式,您都可以创建包含训练、验证和测试列的验证列,并且您可以根据响应列或因子列对验证列进行分层,但它最适合您的情况。
附带说明一下,如果您要开始编写脚本以节省时间,我强烈建议您使用脚本索引(帮助 > 脚本索引)来帮助您。 您可以搜索命令,并且有一些示例说明如何使用它来执行这些操作/命令。
希望这可以帮助!,
DS
回复:尝试创建和保存随机的行子集并将其保存到脚本以供以后使用在你走得更远之前,我想知道另一种方法是否有优势。 您可以使用 Excluded 行状态而不是子集。 拟合最小二乘将不包括模型训练中排除的行。 您可以将预测公式保存在新列中,并且排除行的预测响应将在那里。
此外,JMP Pro 提供了验证分析角色,使此类评估变得非常容易和方便。
回复:尝试创建和保存随机的行子集并将其保存到脚本以供以后使用谢谢戴德里希!并感谢您建议使用 JSL 脚本索引寻求帮助。它运行良好。