使用Python对传感器采集到的数据进行数据清洗和预测未来一段时间的温湿度数据,您可以按照以下步骤进行操作:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
data = pd.read_csv('data.csv') # 替换为您的数据文件路径
# 处理缺失值或异常值
data = data.dropna() # 删除包含缺失值的行
data = data[(data['Temperature'] > -50) & (data['Temperature'] < 100)] # 温度异常值范围
data = data[(data['Humidity'] >= 0) & (data['Humidity'] <= 100)] # 湿度异常值范围
# 处理重复值
data = data.drop_duplicates()
# 处理时间列
data['Timestamp'] = pd.to_datetime(data['Timestamp'])
data = data.set_index('Timestamp')
# 提取日期和时间特征
data['Year'] = data.index.year
data['Month'] = data.index.month
data['Day'] = data.index.day
data['Hour'] = data.index.hour
data['Minute'] = data.index.minute
X = data[['Year', 'Month', 'Day', 'Hour', 'Minute']]
y_temperature = data['Temperature']
y_humidity = data['Humidity']
X_train, X_test, y_temperature_train, y_temperature_test = train_test_split(X, y_temperature, test_size=0.2, random_state=42)
X_train, X_test, y_humidity_train, y_humidity_test = train_test_split(X, y_humidity, test_size=0.2, random_state=42)
# 温度预测模型
temperature_model = LinearRegression()
temperature_model.fit(X_train, y_temperature_train)
# 湿度预测模型
humidity_model = LinearRegression()
humidity_model.fit(X_train, y_humidity_train)
# 构造待预测的时间特征
future_time = pd.date_range(start=data.index[-1], periods=10, freq='H')
future_data = pd.DataFrame({'Year': future_time.year,
'Month': future_time.month,
'Day': future_time.day,
'Hour': future_time.hour,
'Minute': future_time.minute})
# 预测温度
future_temperature = temperature_model.predict(future_data)
# 预测湿度
future_humidity = humidity_model.predict(future_data)
for i in range(len(future_time)):
print('Time: {}, Predicted Temperature: {:.2f}°C, Predicted Humidity: {:.2f}%'.format(
future_time[i], future_temperature[i], future_humidity[i]))
这是一个简单的示例,仅供参考,如需指导,可私聊,适当收费