RapidMiner Studio 9.7.0有什么新功能?
发布:2020年6月2日
以下描述了RapidMiner Studio 9.7.0中的错误修复:
新功能
- 增加了与RapidMiner服务器绑定的版本化项目。您可以拥有任意多版本的项目,没有限制!版本控制由Git支持,任何常规的Git客户端都可以访问。这意味着Python/R程序员和RapidMiner用户之间的共享从未如此简单!
- 添加了对话框,以在从服务器获取快照时,在版本化项目中发生冲突时选择要保留的文件版本。版本控制发生在项目级别。由于您现在可以拥有任意多的项目,这是最明智的行为,因为大多数情况下,项目中的许多条目是相互关联的。因此,整个状态被保存下来,以后可以恢复,而不必担心依赖版本。
- 项目支持您的计算机上的所有文件!你可以把你的。py脚本,你的。md文件,你的。png文件,你的。pdf文件,等等都放到一个项目中。它将整齐地显示在RapidMiner Studio中。
- 当然,所有这些文件都可以一起进行版本控制,因此RapidMiner用户和Python编码人员可以共享同一个git存储库。Python编码人员甚至可以使用他们的本地Git客户端来实现这一点,不需要任何魔法。这将使RapidMiner用户和Python程序员之间的协作比以往任何时候都更容易!
- 版本化项目中的进程也可以在RapidMiner服务器上运行和调度,就像在现有的服务器中央存储库上一样
- 所有的文件都保存在您的计算机本地,但也可以通过Git共享。这为您提供了在原型制作过程中使用本地存储库时的性能,但也允许与您的同事轻松协作。
- 添加了新的面板“快照历史”,允许浏览您的版本化项目的历史记录,以及查看自最新快照以来所做的更改。它还可以用于恢复项目的早期状态,查看单个文件的过去版本,并恢复那些过去的版本。
- ExampleSets现在以一种新的文件格式写入磁盘:HDF5。这是一种成熟的格式,例如被美国宇航局用于存储大量数据。这也意味着Python和RapidMiner Studio可以通过HDF5文件更容易和更快地交换数据。
- 使用RapidMiner Studio 9.7或更高版本创建的本地存储库也可以利用支持计算机上所有文件(.py, .jpeg, .pdf等)的优势。
- 新的操作符目标编码哪一个可以删除具有太多值的标称属性并对剩余属性执行目标编码(也称为均值编码)
- 自动模型:一些进程(例如SVM, FLM或权重计算)现在使用新的目标编码而不是单热编码,从而减少内存使用和运行时间
- 时间序列:新的操作符集成用不同的方法对时间序列进行积分(累积和/左右黎曼和/梯形规则)
增强
- 本地存储库和版本化项目(绑定到RM Server)都已经完全重新构建,以摆脱许多旧的限制。福利包括:
- 增强的吞吐量和性能
- 更好的元数据缓存
- 并发访问支持
- 显示所有文件(无论它们是什么,例如Python脚本,图像,…)
- 允许不同的文件类型(例如数据、进程)和文件夹共享相同的名称
- 注意:您现有的本地存储库名称后面有(Legacy),表明它们仍然运行在旧技术上,并且仍然有一些限制!如果您创建了一个新的本地存储库,它的名字后面会有(local),并且具有上面列出的所有功能。您可以通过Studio将数据从旧存储库复制到新存储库以进行迁移。
- 现在可以在存储库中使用与数据条目同名的文件夹(对于某些旧的存储库可能不起作用)。
- 现在可以在存储库中拥有具有相同名称的流程和数据条目(对于某些旧存储库可能不起作用)。
- 取代发送邮件操作符的新版本,支持文件附件
- 改进的内存使用总和主可能有很多未使用值的标称列的操作符
- 改进了对存储库条目名称中的空白的处理
- 改进了临时文件的清理,以减少Studio长时间运行时的磁盘空间混乱,例如在服务器环境中
- 使结果视图中的日志表表现得更像其他结果,在上下文菜单中添加了更多操作和快捷方式
- 进程背景图像现在使用相对路径到图像,如果可能的话,而不是绝对路径。这只适用于从现在开始设置的背景图像,它不具有追溯性
- 对于二元属性,Statistics选项卡显示正数和负数
- 将RapidMiner服务器改名为RapidMiner AI Hub
- 在Design视图中打开进程时,将Process面板打开/移动到前台,以使发生的事情更明显
- 自动模型:服务器上的远程执行需要中央存储库作为存储位置
- Turbo Prep:现在只有基于本地文件的存储库可以用作自动模型切换的临时存储库
- 模型操作:只有本地存储库或中央服务器存储库可以用作已部署模型的存储位置(也称为“部署位置”)
- 模型操作:评分后在结果中保留未使用和ID列
- 运营商解释预测和模型模拟现在还支持分组模型,其中任意模型已经分组,而不仅仅是预处理模型
- 操作员解释预测现在为“重要性”输出提供了一个参数来限制重要特性的数量
- 时间序列
- 增加了使用填充的选项快速傅里叶变换并计算频率的幅值。
- 添加了指定负延迟的选项滞后操作符
- 添加了为lag操作符指定一组属性(由属性子集选择器选择)的默认延迟的选项
- 不幸的是,由于参数键不兼容,旧版本的Lag操作符已被弃用,并添加了具有相同名称但不同操作符键的新版本。
- 水
- 更新H2O库到3.30.0.1版本。
- 增加单调性约束梯度增强树
- 添加权重端口到深度学习
- 扩展了认可的专家参数白名单,现在支持H2O提供的所有参数
- 深度学习和逻辑回归现在可以处理只有一个值的标称列的数据集
修正
- 修复了一个可能导致Studio启动无法完成的问题
- 使Studio启动更严格的退出过程,而不是永远静静地挂在开机画面上
- 修正了可能导致面板有时不打开的问题,如果他们之前在这个会话中关闭
- 修复了HTML5安全模式开启时cta无法工作的问题
- 修正了性能矢量变化的反向传播问题
- 通过添加回退(例如SQLite写入)修复了JDBC驱动程序不实现某些功能集的问题。
- 修正了在与CTA通知横幅交互时导致UI完全冻结的潜在原因
- 修正了操作人员名称包含HTML时,进程导航和属性面板的问题
- 生成多标签数据现在在非回归模式下正确工作
- 修复了由可视化引起的内存泄漏
- 修正了如果超过许可限制,数据集无法自动下采样的罕见问题
- 修复了自动特征工程如果在特征选择的情况下,所有的输入特征都是标称的
- 修正了在使用企业单点登录时,服务器存储库不能正确获得权限的“编辑访问权限”对话框
- 修复了在进程面板中使用右键“插入操作符”弹出式菜单时导致Studio延迟和增加内存消耗的问题。
- 修复了将数据条目移动到另一个存储库时损坏的替换(而不是重复替换)
- Auto Model:远程执行现在显示新的提交屏幕,它只允许重置Auto Model来加载结果,从而避免了在同一会话中多个远程提交的问题
- 自动模型:重新排序列选择表中的列不再导致图形问题
- 时间序列:修复了一个错误提取的山峰,这将导致所有“_position”特征与示例编号的偏移量为1
已知的问题
- 一种热编码没有产生预期的结果,这将被修复与下一个补丁版本。
特别指出
- “Integer”类型的列以前存储为整数,现在存储为其双精度表示。这当然意味着更大的范围(~53位精度),但也意味着值不再有上限。这可能会对将数据存储到磁盘并重新读取数据产生影响。
- 由于采用了新的文件格式,“Date”类型的列不再存储毫秒。在将数据存储到磁盘并重新读取数据时,这可能会影响相等性测试和匹配。
- 在更新之后,将再也找不到为存储在存储库中的数据集在本地创建的可视化,从而导致结果可视化重置为其默认值。如果您已经设置了非常想要恢复的复杂可视化,则可以按照以下步骤操作:
- 在RapidMiner Studio的Results视图中打开数据集。
- 通过文件系统资源管理器在磁盘上导航到“USER_HOME/”。RapidMiner/内部缓存/内容映射器”文件夹。在那里,您可以找到与存储库名称和结构匹配的文件夹结构。
- 找到数据集的确切路径(例如:“C: /用户/ xyz /。RapidMiner/内部缓存/内容映射器/本地存储库/图表/Demo/派”)
- 你应该会在它旁边看到一条非常相似的路径,都以“”结尾。“或者”。rmhdf5table”(如。“C: /用户/ xyz /。RapidMiner/内部缓存/内容映射器/本地存储库/图表/Demo/Pie.ioo”)
- 进入步骤3的文件夹(没有.io结尾的那个),复制“pc. exe”文件。Json”文件从它到第4步的文件夹(以. oo结尾的那个)
- 关闭Results视图中的数据集
- 再打开一遍。它现在应该有它的配置了!
发展
版本化项目(由Git支持)的引入迫使对Repository API进行了重大的重新设计。在9.7之前,RepositoryLocation由一个类似于“//RepositoryName/folder/test”的字符串表示,并且“test”保证是唯一的。它可以是一个文件夹、一个进程、一个对象(数据)对象或一个blob。现在已经不是这样了!
由于与Git的协作可能会引入命名冲突,而这些冲突实际上并不是文件级的冲突(因此Git对它们很好),因此我们也必须允许这些“非冲突”进入存储库世界。
现在,以“test”作为最后一个路径元素结束的存储库位置可以描述一个文件夹(RepositoryLocationType #文件夹),或数据(RepositoryLocationType # DATA_ENTRY).有时这是未知的,这也没关系:RepositoryLocationType #未知可以在这种情况下使用。然而,它并没有止步于此。因为对于Git,“test。Rmp”和“test”。“Ioo”也很好,我们必须更进一步,也允许这样做。因此,RepositoryLocation现在也有一个预期的数据条目(子)类型,用于确定要定位的数据条目的特定类型(a)ProcessEntry,一个IOObjectEntry,一个ConnectionEntry,或者BinaryEntry).
你甚至可能会陷入“测试”这种不受欢迎的情况。“哦”和“测试”。rmhdf5table"(两个对象)在同一位置。因为我们无法确定进程应该潜在地使用哪个对象,所以这些情况必须由用户(web检索在这种情况下,操作符将抛出错误!但是,查看数据并重命名其中一个条目将工作得很好。这种情况只能发生在Git拉入新版本的项目之后。
换句话说,在我们的示例中,“test”现在可以是一个文件夹、一个进程、一个数据对象、一个连接项或一个二进制项。它们可以同时存在于同一个文件夹中。因此,一定要在新的RepositoryLocationBuilder中指定您想要从存储库中得到什么,否则您最终可能会得到它找到的第一个名称匹配,这可能是一个意想不到的类型。
- 存储库现在可以区分数据和文件夹,甚至可以区分不同的数据子类型(进程、对象、连接、二进制项),这意味着你可以同时拥有一个名为“a”的文件夹和一个名为“a”的进程。这对大量api有影响,最明显的是:
- com.rapidminer.repository.Repository接口:
- locateFolder(字符串)和locateData(字符串类
) 已经添加并可以实现,它们的默认实现指向RepositoryManager () # locateFolder(字符串)和locateData(字符串,类< ?扩展DataEntry)方法 - getIOObjectEntrySubtype(类< ?扩展iooobject > iooobjectclass已经添加并可以实现,默认实现返回IOObjectEntry.class。这用于新的基于文件的存储库实现(本地和版本化的项目),它最终将为每个不同的ioo对象类型在磁盘上具有不同的文件后缀(而不是所有它们共享遗留的.ioo后缀)。
- isTransient ()已添加,默认为false。这用于从存储库面板和全局搜索中隐藏临时存储库真正的.
- 定位(字符串)已弃用,不应再使用,因为它无法知道是否请求了文件或文件夹
- locateFolder(字符串)和locateData(字符串类
- com.rapidminer.repository.RepositoryManager类:
- locate(Repository, String, boolean)已弃用并被
- locateFolder(Repository, String, boolean)和locateData(存储库,字符串,类
- com.rapidminer.repository.Folder接口:
- containsFolder(字符串)和containsData(字符串,类< ?扩展DataEntry)已经添加并且必须实现
- containsEntry(字符串)已弃用,不应再使用,因为它无法知道是否请求了文件或文件夹
- canRefreshChildFolder(字符串)和canRefreshChildData(字符串)已经添加并且必须实现
- canRefreshChild(字符串)已弃用,不应再使用,因为它无法知道是否请求了文件或文件夹
- com.rapidminer.operator.Operator类:
- getParameterAsRepositoryLocation(字符串)已弃用,不应再使用,因为它无法知道是否请求了文件或文件夹
- getParameterAsRepositoryLocationData(字符串,类< ?扩展DataEntry >)已经添加了查找数据
- getParameterAsRepositoryLocationFolder(字符串)是否添加了查找文件夹的功能
- com.rapidminer.repository.RepositoryLocation类:
- locateEntry ()已弃用并被locateFolder ()和locateData ()(同上)
- 所有构造函数都已弃用,并被一个构造函数所取代:com.rapidminer.repository.RepositoryLocationBuilder
- getRepositoryLocation(字符串,操作符)已弃用并被getRepositoryLocationFolder(字符串,操作符)和getposiitorylocationdata (String, Operator, Class)扩展DataEntry >)
- 添加getLocationType ()和setLocationType (RepositoryLocationType)用于指定RepositoryLocation是否引用了一个文件夹、一个数据条目,还是不知道它引用了什么
- 添加getExpectedDataEntryType ()和setExpectedDataEntryType(类< ?扩展DataEntry >)它们用于指定期望的数据条目(子)类型。不使用ifRepositoryLocationType #文件夹预计。
- 添加isFailIfDuplicateIOObjectExists ()和setFailIfDuplicateIOObjectExists(布尔),它控制aRepositoryIOObjectEntryDuplicateFoundException时抛出locateData ()调用(请求IOObjectEntry),但是至少有两个具有相同名称(前缀)的IOObjectEntry子类型。由于这是一种不希望出现的情况,运营商在检索数据时将拒绝使用这些位置。
- 适应这些变化是非常重要的,否则你最终可能会得到一个文件夹而期望得到一个文件,或者期望得到一个对象而得到一个进程!
- com.rapidminer.repository.Repository接口:
- ParameterTypeRepositoryLocation现在为谓词提供了新的getter和setter,以限制用户在选择条目时可用的UI选择。它被用在RepositoryLocationValueCellEditor如果getRepositoryFilter ()没有被覆盖。注意,操作符仍然必须检查其用例的存储库位置的有效性,过滤器纯粹用于UI目的,不验证返回值。
- setRepositoryFilter(谓词
) - getRepositoryFilter ()
- setRepositoryFilter(谓词
- 在Studio中增加了安全加密框架,基于Google Tink。看到com.rapidminer.tools.encryption.EncryptionProvider作为起点。旧的CipherTools已经被弃用了吗一定不能用新的加密了!
- 这意味着处理XML和连接的任何访问方法都已被弃用,取而代之的是一个可以指定所需加密上下文的版本!不使用这些新方法可能会导致连接中加密值的解密失败,以及进程中的ParameterTypePassword !
- 看到库# getEncryptionContext ()用于获取存储库的加密上下文。默认实现使用EncryptionProvider。DEFAULT_CONTEXT它被所有本地存储库使用。如果需要为每个存储库实例定制加密密钥,则实现此方法。
- 所有Process构造函数都已弃用,并被接受加密上下文字符串标识符的版本所取代:
- 过程(字符串)已被弃用并被过程(字符串,字符串)
- 过程(文件,ProgressListener)已被弃用并被进程(文件,字符串,ProgressListener)
- 过程(读者)已被弃用并被过程(读者,字符串)
- 过程(InputStream)已被弃用并被过程(InputStream,字符串)
- 过程(URL)已被弃用并被过程(URL字符串)
- ParameterTypePasssword和ParameterTypeOAuth已经被弃用了吗绝不能在操作符中再次使用!请使用9.3版本中引入的连接框架,以避免在进程XML中使用敏感值。
- com.rapidminer.repository.BlobEntry已弃用。所有新的存储库必须支持新的com.rapidminer.repository.BinaryEntry代替。这是对二进制内容的直接视图,不以任何方式,形状或形式进行解释。没有神奇的字节,什么都没有。就像在文件系统上一样。
- 添加com.rapidminer.repository.gui.BinaryEntryResultRendererRegistry用于注册自定义呈现器,以便在新BinaryEntry作为流程结果传递时显示在Results视图中。
- 每个后缀可以注册多个渲染器
- 取决于文件的后缀,例如jpeg
- 添加com.rapidminer.gui.dnd.DropBinaryEntryIntoProcessActionRegistry用于在用户将新的BinaryEntry拖拽到画布中时注册自定义钩子。
- 可以创建操作符或触发任何自定义操作吗
- 取决于文件的后缀,例如py
- 添加com.rapidminer.gui.dnd.DropFileIntoProcessActionRegistry用于在用户将二进制文件从磁盘拖到画布中时注册自定义钩子。
- 可以创建操作符或触发任何自定义操作吗
- 取决于文件的后缀,例如py
- 添加com.rapidminer.repository.gui.OpenBinaryEntryActionRegistry用于在用户双击或以其他方式打开新的BinaryEntry时注册自定义钩子
- 取决于文件的后缀,例如py
- 添加com.rapidminer.repository.gui.BinaryEntryIconRegistry为存储库面板中显示的每个二进制条目后缀注册自定义图标
- 取决于文件的后缀,例如py
- 重构的com.rapidminer.operator.ports.Port和com.rapidminer.operator.ports.Ports接口和子接口/类。港口现在是一个自引用泛型类型,允许更方便和类型安全的方法
- 只有输入和输出端口,它们总是相反的,所以类型反映了这一点和方法getOpposite ()返回相反类型的值;getSource ()和getDestination ()现在存在于两个子类,并可能返回自己
- 连接和断开连接现在可以由连接的任何一方完成;还有一种方法canConnectTo检查两个端口是否可以连接
- 更新了Ports及其实现,以反映Port的通用性质。自定义实现在运行时不应受到影响,但可能需要对代码进行小幅调整才能正确编译
- 添加com.rapidminer.gui.tools.ResourceDockKey # PROPERTY_KEY_NEXT_TO_DOCKABLE和com.rapidminer.gui.tools.ResourceDockKey # PROPERTY_KEY_DEFAULT_FALLBACK_LOCATION它可以用来定义默认情况下应该打开Dockable的位置
- 添加com.rapidminer.TestUtils其中包含用于测试的实用方法,例如,在单元测试中至少创建和使用空进程所需的RapidMiner的最基本设置的方法
- 删除了相当多被弃用的方法和类,这些方法和类到目前为止已经被弃用了10多年。这应该对扩展没有影响,除非在RapidMiner 5之后使用了带有@Deprecated注释的老方法。
- 添加com.rapidminer.tools.io.NotifyingOutputStreamWrapper,它是一个OutputStream包装器,可以在流关闭(手动和自动)后执行可运行
- 添加com.rapidminer.tool.TempFileTools的方法来创建临时文件,这些临时文件将在RapidMiner #清理()和RapidMiner #关闭(),总是使用这些方法来确保清理未使用的文件。