#P3871. 第2题-磁盘故障检测的特征工程
-
ID: 3235
Tried: 134
Accepted: 25
Difficulty: 7
所属公司 :
华为
时间 :2025年10月10日(留学生)-AI岗
-
算法标签>数据清洗与特征工程
第2题-磁盘故障检测的特征工程
解题思路
本题要求从输入的一行数据中提取多个样本,每个样本有 19 个特征,并对每个特征计算 8 个统计指标: 均值、最大值、最小值、极差、标准差、方差、偏度、峰度。
核心思路
-
数据读取与整形:
- 输入为一行字符串,使用
split()
分割得到浮点数列表。
- 输入为一行字符串,使用
题目内容
输入是磁盘检测中使用的典型的 "SMART" 数据集的部分信息,请根据下面的特征工程,提取相关特征。
特征工程的处理过程如下:
- 读取输入数据:
- 从标准输入读取一行数据,将其拆分成一个浮点数列表。
- 计算统计特征指标:
-
对个数据特征,计算以下统计指标:
-
均值 (Mean):计算每列数据的平均值。
-
最大值 (Max):找出每列中的最大值。
-
最小值 (Min):找出每列中的最小值。
-
极差 (Ptp):计算每列的最大值与最小值之差。
-
标准差 (Std):计算每列数据的标准差,反映数据的高程度。
-
方差 (Var):计算每列数据的方差,反映数据的离散程度。
-
偏度 (Skew):计算数据的偏度,反映数据分布的不对称性。
-
峰度 (Kurt):计算数据的峰度,反映数据分布的程度。
统计指标计算公式: 1.均值 (Mean):计算列据的平均值。
公式:means(sum of all values)/number of values
2.最大值 (Max):找出每列中的最大值。
3.最小值 (Min):找出每列中的最小值。
4.极差 (Ptp):计算每列的最大值与最小值之差。
公式:ptp=max−min
5.标准差 (Std) :计算每列数据的标准差,反映数据的离散程度。
公式:std=sqrt(variance)
6.方差 (Var):计算每列数据的方差,反映数据的离散程度。
公式:variance=mean of squared difierences from the Mean
7.偏度 (Skew):计算数据的偏度,反映数据分布的不对称性。
公式:skewness=(sum((x−mean)3)/n)/std3
8.峰度 (Kurt):计算数据的峰度,反映数据分布的陡峭程度。
公式:kurtosis=(sum((x−mean)4)/n)/std4−3
- 输出结果:
- 将所有统计指标按顺序排列
输入描述
输入数据为一行,包含多个样本信息,其中米格样本是 19 个浮点数,代表不同的存储设备指标。
每个样本的数据描述如下:
数据含义 说明
时间戳 Unix 时间戳(秒级或毫秒级)
容量 存储设备的总容量(字节)
已用容量 存储设备的已用容量(字节)
空闲容量 存储设备的空闲容量(字节)
读取操作计数 单位时间内完成的读取操作次数
写入操作计数 单位时间内完成的写入操作次数
读取吞吐量 读取数据的吞吐量(字节/秒)
写入吞吐量 写入数据的吞吐量(字节/秒)
读取延迟 读取操作的平均延迟(毫秒)
写入延迟 写入操作的平均延迟(毫秒)
读取错误计数 单位时间内发生的读取错误次数
写入错误计数 单位时间内发生的写入错误次数
硬盘温度 硬盘的当前温度(摄氏度)
转速 硬盘的转速 (RPM)
读取带宽 读取操作的带宽 (MB/s)
写入带宽 写入操作的带宽 (MB/s)
读取队列深度 读取操作的队列深度
写入队列深度 写入操作的队列
深度硬盘健康状态 硬盘的健康状态
输出描述
输出结果格式:
1、统计结果以一行输出,包含所有统计指标,按以下题序列,便用空格作为分隔符:
mean_0 max_0 min_0 ptp_0 std_0 var_0 skew_0 kurt 0 mean_1 max_1 min_1 ptp_1 std_1 var_1 skew_1 kurt_1... mean_18 max_18 min_18 ptp_18 std_18 var_18 skew_18 kurt_18
2、每个统计指标保留 2 位小数,便于阅读和理解。
样例1
输入
1623456000 1000000.0 800000.0 200000.0 100.0 200.0 500.0 1000.0 10.0 20.0 0.0 0.0 40.0 7200.0 50.0 100.0 5.0 10.0 0.0
1623456001 1000000.0 800000.0 200000.0 100.0 200.0 500.0 1000.0 10.0 20.0 0.0 0.0 40.0 7200.0 50.0 100.0 5.0 10.0 0.0
1623456002 1000000.0 800000.0 200000.0 100.0 200.0 500.0 1000.0 10.0 20.0 0.0 0.0 40.0 7200.0 50.0 100.0 5.0 10.0 0.0
1623456003 1000000.0 800000.0 200000.0 100.0 200.0 500.0 1000.0 10.0 20.0 0.0 0.0 40.0 7200.0 50.0 100.0 5.0 10.0 0.0
1623456004 1000000.0 800000.0 200000.0 100.0 200.0 500.0 1000.0 10.0 20.0 0.0 0.0 40.0 7200.0 50.0 100.0 5.0 10.0 0.0
输出
1623456002.00 1623456004.00 1623456000.00 4.00 1.41 2.00 0.00 -1.30 1000000.00 1000000.00 1000000.00 0.00 0.00 0.00 0.00 0.00 800000.00 800000.00 800000.00 0.00 0.00 0.00 0.00 0.00 200000.00 200000.00 200000.00 0.00 0.00 0.00 0.00 0.00 100.00 100.00 100.00 0.00 0.00 0.00 0.00 0.00 200.00 200.00 200.00 0.00 0.00 0.00 0.00 0.00 500.00 500.00 500.00 0.00 0.00 0.00 0.00 0.00 1000.00 1000.00 1000.00 0.00 0.00 0.00 0.00 0.00 10.00 10.00 10.00 0.00 0.00 0.00 0.00 0.00 20.00 20.00 20.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 40.00 40.00 40.00 0.00 0.00 0.00 0.00 0.00 7200.00 7200.00 7200.00 0.00 0.00 0.00 0.00 0.00 50.00 50.00 50.00 0.00 0.00 0.00 0.00 0.00 100.00 100.00 100.00 0.00 0.00 0.00 0.00 0.00 5.00 5.00 5.00 0.00 0.00 0.00 0.00 0.00 10.00 10.00 10.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
说明
输入样本是 10 个,每个样本的内容是 19 列特征:样本 1− 特征 0 样本 2− 特征 2 ... 样本 1 特征 18 样本 2− 特征 0 ... 样本 2− 特征 18 ... 样本 10− 特征 0 样本 10− 特征 18
输出是每个特征的度量值:特征 0− 均值 特征 0− 最大值 ... 特征 0− 峰度 特征 1− 均值 特征 1− 最大值 … 特征 1− 峰度 ... 特征 18− 均值 特征 18− 最大值 … 特征 18− 峰度
提示
输入样本解释:
1、实际用例中,输入无注释,仅数值
2、实际用例中,多个样本拼接成一行输入,用户需要自己隔离样本( 19 个特征为一个样本)
输出结果解释:
1、实际输出中,仅需保留数值,(参考样例的输出解释)
2、结果显示小数点后 2 位