Select Rows组件研究
版本:Orange3.38.1
作者:erichoo
时间:2025.4.25 9:00-2025.5.6 17:00
地点:重庆市江津区
文章目录
- 1 背景知识
- 2 功能详解
- 3 条件类型
- 4 实例
- 4.1 日期类型
- 4.2 数字类型
- 4.3 文本类型
- 4.4 标称类型
- 5 总结
1 背景知识
在数据挖掘领域中,在数据挖掘领域中,Select Rows组件作为数据预处理过程中的核心工具,用于基于特定条件对数据集中的样本进行筛选和提取,又称为数据样本筛选或样本选择。该组件在数据挖掘过程中发挥着关键作用,适用于以下典型场景:
- 精准样本子集提取:原始数据集往往包含大量样本,其中部分样本可能与分析目标无关,或存在数据质量问题(如数据缺失严重、存在异常值等)。通过Select Rows组件,可依据条件筛选出符合需求的样本子集,去除干扰数据,使分析聚焦于有效样本。例如,在客户消费行为分析中,数据集中包含各群体消费样本,若仅需分析高消费客户行为,可通过Select Rows组件设置消费金额阈值,提取符合条件的样本,实现精准分析。
- 数据清洗与异常处理:现实数据中常存在异常样本或错误样本,这些样本会影响模型训练和分析结果的准确性。利用Select Rows组件,可设置条件识别并剔除异常样本,或单独提取异常样本进行深入分析。如在气象数据集中,个别温度样本出现明显偏离正常范围的数值,使用Select Rows组件筛选出这些异常样本,有助于提升数据质量,保证后续分析的可靠性。
- 动态样本探索与分析:在数据探索阶段,需从不同角度观察数据。Select Rows组件支持灵活设置筛选条件,快速生成不同样本子集,方便研究人员对比分析。如在电商销售数据中,通过该组件筛选不同时间段、不同地区的销售样本,对比销售趋势和区域差异,为商业决策提供依据。
- 适配特定任务需求:不同的数据分析和建模任务对数据有不同要求。Select Rows 组件可根据任务需求筛选合适的样本,如在时间序列分析中,选择特定时间范围内的样本;在预测模型中,筛选出符合某些特征组合的样本用于特征工程或模型解释,帮助研究人员更好地理解数据与模型决策之间的关系,提高模型训练和分析的针对性。
2 功能详解
Orange软件中的Select Rows组件功能配置如下图所示:
以下按照标红数字编号,依此介绍每一个组件功能:
- Conditions:条件编辑区,通过子控件5、6、7三个按钮控制筛选条件的增加删除,通过内部的表格控件展示/编辑所有筛选条件(每一个条件右侧的X按钮可以删除该条件)。
- 要素:选择筛选条件作用的目标列。
- 条件:选择目标列的条件类型。根据目标列的类型,可以选择的条件各不相同。为保证叙述的连贯性,条件类型详情在下一节介绍。
- 阈值:设置与条件配套的参考值。涉及区间的条件类型,例如is between/is outside,要设置两个参考值(下文以左右区分二者),其他都只需要设置一个参考值。
- Add Condition:增加一个新的条件。
- Add All Variables:添加所有变量/列。点击后,如果子控件1的内容不为空,则系统会弹出警告(This will replace the existing filters with filters for all variables),提醒用户现有条件将全部被替换,如果点击OK按钮,则所有现有内容清空,每一个列都会增加一个条件。
- Remove All:清空所有条件。此按钮需谨慎,一旦点击,系统无如何确认对话框,直接删除所有条件编辑区内容。
- Remove unused values and constant features:删除未用值与常量要素。对于标称类型的可选值集合,如果不存在任何样本赋予该值,那么该值被认定为unused,类型的可选值将被重新定义;如果某个列的所有样本值都一样,那么被认为是常量要素,被删除。
- Remove unused classes:删除未用分类。对于数据分析中的分类任务,目标类型的可选值集合中,如果不存在任何训练样本赋予该值,那么该值被认定为unused,被删除。
- 自动更新:如果勾选,将在条件变化时自动更新并发送输出数据。否则,需要手动点击发送。
- 样本概况:通过三个数字来表示输出的概况。第一个数字代表Matching Data,即满足筛选条件的样本总数,示例图中为4617;第二个数字代表Unmatched Data,即不满足筛选条件的样本总数,示例图中为1046;第三个数字代表AnnotatedData,即标记输出样本(比输入样本增加了一个列Selected代表是否选中),示例图中为5663。
3 条件类型
Orange中的变量,一共包括日期、数值、文本、标称四个类型,分别解释如下:
- 日期类型,列图标为T,代表Time,源代码中类别为TimeVariable
- 数值类型,列图标为N,代表Numeric,源代码中类别为ContinuousVariable
- 文本类型,列图标为S,代表String,源代码中类别为StringVariable
- 标称类型,列图标为C,代表Category,源代码中类别为StringVariable
下面详细介绍在Select Rows组件的条件子控件3中,每一个变量类型可以有哪些选择。
- 日期&数值
日期类型与数值类型的选择条件一致,包括如下几种:
- equals,相等,即字段值等于参考值的样本被选择。
- is not,不等于,即字段值不等于参考值的样本被选择。
- is below,之下,即字段值小于参考值的样本被选择。
- is at most,不超过,即字段值小于等于参考值的样本被选择。
- is greater than,大于,即字段值大于参考值的样本被选择。
- is at least,至少,即字段值大于等于参考值的样本被选择。
- is between,介于,即字段值大于等于左参考值并且小于等于右参考值的样本被选择。
- is outside,之外,即字段值小于左参考值或者大于右参考值的样本被选择。
- is defined,定义,即字段值非缺失的样本被选择。
- 文本
文本类型的选择条件包括如下几种:
- equals,相等,即字段值等于参考值的样本被选择。
- is not,不等于,即字段值不等于参考值的样本被选择。
- is before,在前面,即字段值小于参考值的样本被选择。由于Orange编程语言为python,所以字符串的小于操作,就是按照字典序排在前面者。字典序可以这样理解:从字符串的第一个字符开始,依次比较两个字符串对应位置的字符。若两个字符不同,那么具有较小 Unicode 编码值的字符所在的字符串就被判定为较小,若一个字符串是另一个字符串的前缀,那么较短的字符串被认为较小。
- is equal or before,在前面或者相等,即字段值小于等于参考值的样本被选择。
- is after,在后面,即字段值大于参考值的样本被选择。
- is equal or after,在后面或者相等,即字段值大于等于参考值的样本被选择。
- is between,介于,即字段值大于等于参考值并且小于等于最大值的样本被选择。
- is outside,之外,即字段值小于参考值或者大于最大值的样本被选择。
- contains,包含,即字段值包含参考值的样本被选择。
- does not contain,不包含,即字段值不含参考值的样本被选择。
- begins with,以开头,即字段值前缀为参考值的样本被选择。
- does not begin with,未以开头,即字段值前缀不为参考值的样本被选择。
- ends with,以结尾,即字段值后缀为参考值的样本被选择。
- does not end with,未以结尾,即字段值后缀不为参考值的样本被选择。
- is defined,定义,即字段值非缺失的样本被选择。
- is not defined,未定义,即字段值缺失的样本被选择。
- 标称
标称类型的选择条件包括如下几种:
- is,是,即字段值等于参考值的样本被选择。
- is not,非,即字段值不等于参考值的样本被选择。
- is one of,是一种,即字段值包含于参考值集合的样本被选择。
- is defined,定义,即字段值非缺失的样本被选择。
4 实例
本实例通过某上市公司历史股价数据的筛选,来演示四个类型的样本选择过程。ows文件如下图:
4.1 日期类型
日期类型配置,如下图所示:
通过日期的条件,选择了2005年后非2008年的样本,避开了2008年金融危机数据以及2005年以前股价波动较小的样本,总共得到满足条件的样本数为4617。
4.2 数字类型
数字类型的配置,如下图所示:
实例中首先增加了一个涨幅列,该列定义为最高价/开盘价,然后在过滤条件中,设置为涨幅在8%以上的样本,总共得到满足条件的样本数为32。
4.3 文本类型
文本类型的配置,如下图所示:
设置了文本必须大于1.35,且文本中包含6,总共得到满足条件的样本数为4478。
4.4 标称类型
标称类型的配置,如下图所示:
设置了该列必须有定义,且为多选值之一,总共得到满足条件的样本数为2506。
5 总结
本文以Orange软件中的Select Rows组件为研究对象,阐述其在样本筛选中的作用,详细介绍功能配置,并通过股票历史数据集演示日期、数值、文本、标称四大类型的筛选能力 。示例ows文件已经传入gitee,路径地址为:
https://gitee.com/erichoocq/ai-erichoo-open/tree/master/Orange/samples
文件名称为:
test_select_rows01.ows
参考数据为:
data/guizhou_moutai_stock_data.csv