人工智能训练师考试1.1.2

一、真题

试题代码
试题名称
智能农业系统中的业务数据采集和处理流程设计

场地设备要求
人工智能训练师主机:CPU(intel i5 及以上)、内存(不少于 16GB)、操作系统(windows10)、支持深度学习训练;

考核时间
30min

工作任务
某农业公司计划引入智能农业系统,通过安装在农田中的各种传感器(如温度传感器、湿度传感器、土壤传感器等)实时监控农田环境,收集数据并进行分析,以优化作物管理和提高产量。为此,公司需要设计并实现一套数据采集和处理流程,确保数据的高效采集、传输和处理,为智能分析提供可靠的数据支持。

我们提供一个传感器数据集(sensor_data.csv),包含以下字段:

SensorID: 传感器ID

Timestamp: 时间戳

SensorType: 传感器类型(Temperature温度, Humidity湿度, SoilMoisture土壤水分, SoilPH土壤酸碱度, Light光传感器)

Value: 传感器读数

Location: 传感器安装位置:

你作为智能农业系统的人工智能训练师,根据提供的sensor_data.csv数据集和Python代码框架(1.1.2.ipynb),完成以下数据的采集和处理任务,为智能农业系统提供可靠的数据支持。请按照以下要求完成任务,确保结果准确并保存相应的截图。

(1)传感器数据统计:

通过运行Python代码(1.1.2.ipynb)分别统计每种传感器的数据数量和平均值。将上述统计结果截图以JPG的格式保存,命名为“1.1.2-1”。

(2)按位置统计温度和湿度数据:

通过运行Python代码(1.1.2.ipynb)统计每个位置的温度和湿度传感器数据的平均值。将上述统计结果截图以JPG的格式保存,命名为“1.1.2-2”。

(3)数据清洗和异常值处理:

通过运行Python代码(1.1.2.ipynb)对数据进行清洗,处理异常值。具体要求如下:

将明显异常的温度(< -10 或 > 50)和湿度(< 0 或 > 100)数据进行标记并统计。

对缺失值使用前面数据的值(如果前面值没有采用后面数据的值)进行填补。

将清洗后的数据保存为新文件cleaned_sensor_data.csv。

所有结果文件储存在桌面新建的考生文件夹中,文件夹命名为“准考证号+身份证号后六位”。

技能要求
(1)能结合人工智能技术要求和业务特征,设计整套业务数据采集流程

(2)能结合人工智能技术要求和业务特征,设计整套业务数据处理流程

质量指标
(1)设计出的业务数据底层逻辑清晰,有效合理。

(2)数据完整性:每个传感器数据记录数应完整,缺失值尽量少。

(3)数据准确性:传感器数据应合理,与参考数据偏差小。

二、答案

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

读取数据集 2分

data = pd.read_csv(‘sensor_data.csv’)

1. 传感器数据统计

对传感器类型进行分组,并计算每个组的数据数量和平均值 3分

sensor_stats = data.groupby(‘SensorType’)[‘Value’].agg([‘count’,‘mean’])

输出结果

print(“传感器数据数量和平均值:”)
print(sensor_stats)
传感器数据数量和平均值:
count mean
SensorType
Humidity 2065 48.978302
Light 1950 49.439011
SoilMoisture 1951 49.325119
SoilPH 2029 49.865460
Temperature 2005 49.847153

2. 按位置统计温度和湿度数据

筛选出温度和湿度数据,然后按位置和传感器类型分组,计算每个组的平均值 2分

location_stats = data[data[‘SensorType’].isin([‘Temperature’,‘Humidity’])].groupby([‘Location’,‘SensorType’])[‘Value’].mean().unstack()

输出结果

print(“每个位置的温度和湿度数据平均值:”)
print(location_stats)
每个位置的温度和湿度数据平均值:
SensorType Humidity Temperature
Location
Field1 49.036008 50.482617
Field2 47.379411 49.874282
Field3 49.583266 48.761804
Field4 49.955498 50.241608

3. 数据清洗和异常值处理

标记异常值 3分

data[‘is_abnormal’] = np.where(
((data[‘SensorType’]‘Temperature’) & ((data[‘Value’] < -10) | (data[‘Value’] > 50))) |
((data[‘SensorType’]
‘Humidity’) & ((data[‘Value’] < 0) | (data[‘Value’] > 100))),
True, False
)

输出异常值数量 2分

print(“异常值数量:”, data[‘is_abnormal’].sum())

填补缺失值

使用前向填充和后向填充的方法填补缺失值 4分

data[‘Value’].fillna(method=‘ffill’, inplace=True)
data[‘Value’].fillna(method=‘bfill’, inplace=True)

保存清洗后的数据

删除用于标记异常值的列,并将清洗后的数据保存到新的CSV文件中 4分

cleaned_data = data.drop(columns=[‘is_abnormal’])
cleaned_data.to_csv(‘cleaned_sensor_data.csv’, index=False)
print(“数据清洗完成,已保存为 ‘cleaned_sensor_data.csv’”)

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
情书羊-的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容