数据预处理 1、先筛选夜间的数据,即NIHT = 1 2、数据质量控制。每个变量都有质量标签,即_QC L _F_MDS_QC、TA_F_QC、SW_IN_F_QC、VPD_F_QC、P_F_QC、 WS_F_QC、N _VUT_R F_QC,其中只提取QC = 0或者1的数据进行训练预测 3、缺失值直接剔除 模型选择:线性回归、支持向量机、决策树、集成学习算法等
时间: 2023-09-05 14:11:32 浏览: 199
数据预处理
5星 · 资源好评率100%
好的,以下是一个基于您的需求进行数据预处理的Python代码,以及使用决策树模型进行预测的代码:
```python
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# 读入数据集
data = pd.read_csv("data.csv")
# 筛选夜间的数据
data = data[data['NIHT'] == 1]
# 数据质量控制
data = data[data['L_F_MDS_QC'].isin([0, 1])]
data = data[data['TA_F_QC'].isin([0, 1])]
data = data[data['SW_IN_F_QC'].isin([0, 1])]
data = data[data['VPD_F_QC'].isin([0, 1])]
data = data[data['P_F_QC'].isin([0, 1])]
data = data[data['WS_F_QC'].isin([0, 1])]
data = data[data['N_VUT_R_F_QC'].isin([0, 1])]
# 剔除缺失值
data.dropna(inplace=True)
# 提取自变量和目标变量
X = data[['TA_F', 'SW_IN_F', 'VPD_F', 'P_F', 'WS_F', 'N_VUT_R_F']]
y = data['L_F_MDS']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# 建立决策树模型
dt_model = DecisionTreeRegressor()
# 训练模型
dt_model.fit(X_train, y_train)
# 预测测试集
y_pred = dt_model.predict(X_test)
# 计算模型评价指标
mse = mean_squared_error(y_test, y_pred)
rmse = mse ** 0.5
r2 = r2_score(y_test, y_pred)
print("MSE:", mse)
print("RMSE:", rmse)
print("R2 Score:", r2)
```
其中,`data.csv`是包含所有自变量和目标变量的数据集文件名,`data = data[data['NIHT'] == 1]`是筛选夜间数据,`data = data[data['L_F_MDS_QC'].isin([0, 1])]`是进行数据质量控制,`data.dropna(inplace=True)`是剔除缺失值,`X`和`y`分别是自变量和目标变量的数据集,`train_test_split`是将数据集分为训练集和测试集,`DecisionTreeRegressor`是决策树模型,`fit`是训练模型,`predict`是进行预测,`mean_squared_error`和`r2_score`是模型评价指标。
阅读全文