概要
特征决定上限:有效的特征工程能显著提升模型性能
模型服务于数据:要根据数据特点选择合适模型
融合创造奇迹:加权平均可带来显著提升
从数据分析开始
plt.figure(figsize=(20,10))
for i in range(9):plt.subplot(3, 3, i+1)plt.plot(hours, train.iloc[:24, i])plt.title(train.columns[i])
plt.show()
-
通过对数据的可视化可以发现:
-
GHI与POAI呈正相关
-
风速分量U100/V100可合成总风速
-
功率在凌晨时段达到峰值
-
target = target[target['时间'].str.endswith('00:00')]
通过时间对齐来使功率数据降采样至小时级
构建有效的特征工程
特征工程指的是把原始数据转变为模型训练数据的过程,目的是获取更好的训练数据特征。
常见特征有 统计特征与时空特征
常用的处理方法有 过滤 包裹 嵌入
def feature_combine(df):df["wind_speed"] = np.sqrt(df['u100']**2 + df['v100']**2) # 合成风速df["h"] = df.index % 24 # 时间周期性特征df["ghi/poai"] = df["ghi"] / (df["poai"] + 1e-7) # 辐照效率比return df
模型的选取、训练与验证
如同人的能力各有千秋,选取不同的模型也会获得不同的效果,通过不断尝试来选取合适的模型
又如同智囊团,多个模型结果的再分析并输出可以获得更高的准确率
还可以采用交叉验证的策略
kf = KFold(n_splits=5, shuffle=True, random_state=2024)
for fold, (train_idx, valid_idx) in enumerate(kf.split(X)):