描述
通过将字段中的值转换为遵循指定比例的值来标准化这些值。标准化方法包括 z 得分、最小值-最大值、最大绝对值和稳健标准化。
插图
使用方法
系统提供四种标准化方法:Z 得分、最小值-最大值、最大绝对值和稳健标准化。
- Z 得分方法使用标准差(也称为标准得分)来测量某个值与字段中所有值的平均值之间的差值。
- 潜在应用 - 评估某个值相对于字段中值分布的显著性。例如,可以在整个国家/地区其他县的背景下评估某个县的选民参与情况,从而帮助确定典型的选民参与模式以及选民参与率具有显著高值和低值的的县。
- 注意事项 - 此方法期望正态分布。因此,如果数据分布严重偏斜,则不建议使用此方法。
- 公式 - ,其中 x' 为标准化值,x 为原始值,x̄ 为均值(平均值),σx 为标准差。
- 最小值-最大值将保留原始数据值之间的关系,同时将这些值转换为用户指定的最小值和最大值之间的比例。
- 潜在应用 - 房地产评估师可能希望在模型(例如基于森林的分类与回归工具)中使用房屋的特征(例如房屋中的房间数量或房屋的年限)之前,将这些特征缩放至相同比例。
- 注意事项 - 此方法容易受到数据中异常值或极值的影响。
- 公式 - ,其中 x’ 为标准化值,x 为原始值,min(x) 为数据的最小值,max(x) 为数据的最大值,a 为用户定义的最小值,b 为用户定义的最大值。
- 绝对最大值方法通过将每个值除以字段中的最大绝对值来比较某个值与分布中的最大绝对值之间的差值。
- 潜在应用 - 在使用具有稳定和逻辑最大值的数据,并且您想要将每个值与该最大值进行比较时,此方法将非常有用。例如,一个县中的投票数不能超过该县中投票年龄的人数。投票比例最高的县将达到该最大值,并根据绝对最大选民参与率来评估所有其他县。
- 注意事项 - 输出比例介于 -1 和 1 之间。较大的正值对应于接近 1 的值,较大的负值对应于接近 -1 的值。
- 公式 - ,其中 x' 为标准化值,x 为原始值,max(|x|) 为数据绝对值的最大值。
- 稳健标准化方法将使用 z 得分的稳健变体对指定字段中的值进行标准化。此变量将使用中位数和四分位数范围来代替平均值和标准差。
- 潜在应用 - 房地产评估师正在尝试估算某个城市中的房屋价值,而具有极高房屋价值的高级邻域导致数据中出现异常值。评估师将使用稳健标准化来降低这些异常值对该城市房屋价值分布的影响。
- 注意事项 - 通过使用中位数和四分位数范围,在尝试降低分布中异常值的影响时,这可能是一种有效的方法。
- 公式 - ,其中 x’ 为标准化值,x 为原始值,median(x) 为数据的中位数,IQR(x) 为数据的四分位数范围。
- Z 得分方法使用标准差(也称为标准得分)来测量某个值与字段中所有值的平均值之间的差值。
如果提供了多个字段,则会将指定标准化方法应用于所有字段。
该工具将修改输入数据,并将新创建的标准化字段附加到输入表或要素类。
对于每个选定字段,将在地理处理消息结果中提供汇总统计数据。这些统计数据包括最大值、最小值、总和、平均值、标准差、中位数、偏度和峰度。
语法
arcpy.management.StandardizeField(in_table, fields, {method}, {min_value}, {max_value})
参数 | 说明 | 数据类型 |
in_table | 表格,其中包含具有要标准化的值的字段。 | Table View; Raster Layer; Mosaic Layer |
fields [[input_field, output_field],...] | 包含要标准化的值的字段。对于每个字段,可以指定输出字段名称。如果未提供输出字段名称,则该工具将使用字段名称和所选方法来创建输出字段名称。 | Value Table |
method (可选) | 指定用于标准化指定字段中包含的值的方法。
| String |
min_value (可选) | method 参数的 MIN-MAX 方法所使用的值,用于指定所提供输出值的比例中的最小值。 | Double |
max_value (可选) | method 参数的 MIN-MAX 方法所使用的值,用于指定所提供输出值的比例中的最大值。 | Double |
派生输出
名称 | 说明 | 数据类型 |
updated_table | 包含新编码字段的表。 | 表视图 |
代码示例
以下 Python 窗口脚本演示了如何使用 StandardizeField 工具。
arcpy.management.StandardizeField("County_VoterTurnout",
"voter_turnout voter_turnout_Z_SCORE", "Z-SCORE")
以下独立脚本演示了如何使用 StandardizeField 工具。
# Import system modules
import arcpy
try:
# Set the workspace and input features.
arcpy.env.workspace = r"C:\\Standardize\\MyData.gdb"
inputFeatures = ”County_VoterTurnout”
# Set the input fields that will be standardized
fields = "votes_total;rawdiff_dem_vs_gop;pctdiff_dem_vs_gop"
# Set the standardization method.
method = "ROBUST"
# Run the Standardize Field tool
arcpy.management.StandardizeField(inputFeatures, fields, method)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是