# DC_PV_Power_Predict_2018 **Repository Path**: poorhua/DC_PV_Power_Predict_2018 ## Basic Information - **Project Name**: DC_PV_Power_Predict_2018 - **Description**: DataCastle 2018国能日新第一届光伏功率预测 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2022-01-05 - **Last Updated**: 2022-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataCastle 2018国能日新光伏功率预测 -- 构建BaseLine *机器学习第一次练手过程,记录于此。* ## 数据加载 使用pandas的read_csv()方法加载数据,然后使用concat()的方法分别将4个训练集和4个测试集合并到一起。 ## 数据探索 1. 使用head()查看测试集和训练集前5行数据,可以看出训练集比测试集数据多出【实发辐照度】和【实际功率】两列。另外,测试集【id】列只是序号,对算法模型无影响,删除即可。 2. 使用scatter()绘制【实发辐照度】和【实际功率】数据的散点图,可以看出,两列数据强相关。 3. 使用info()查看数据基础信息,可以看出训练集和测试集数据并无空值。但时间数据为字符格式,需要处理。 4. 使用describe()查看数据统计值,可以看出训练集和测试集各列数据并无缺失值。另外可以看出,训练集【实发辐照度】和【实际功率】两列数据50%数据为近似于0,而最大值远大于0。联想夜晚并无光照,故无辐照度和功率,处理数据时可作为参考。 5. 使用Excel打开训练集和测试集数据,可以看出: + 训练集给定3年的数据,而测试集只设计1年,可猜测年份对光伏功率无影响; + 所有数据时间秒数皆为0,可猜测其对光伏功率无影响; + 月、日、时、分对功率的影响无法判断,可提取处理作为特征,绘制散点图或计算相关性系数查看其与功率的相关性; ## 特征工程 根据数据探索中的分析,可初步处理数据: 1. 训练集: + 从【时间】列提取月、日、时、分信息,作为新的特征添加到数据中; + 删除【时间】列数据,或将其设为行索引(考虑选择模型时,或可使用时间序列模型); + 因各特征量纲不同,故进行数据归一化处理; 2. 测试集: + 去除无用的【id】列; + 从【时间】列提取月、日、时、分信息,作为新的特征添加到数据中; + 进行数据归一化处理; ## 选择模型,训练、预测数据 1. 数据量较小,且为回归预测型需求,初步选择SVM模型的回归类型SVR算法; 2. 因【实发辐照度】为强特征,故先预测实发辐照度,将其添加到测试集中,再预测光伏功率; 3. 因是比赛数据,测试集无标签,故无法计算测试集准确率; ## 数据保存与提交 使用pandas的to_csv()方法,按要求保存数据,然后提交到比赛网站即可。 ## 算法改进 1. 机器学习算法“特征为王”的时代,好的特征工程(如异常值删除、特征过滤、特征组合等)是算法提升的必备过程; 2. 可以考虑使用2种以上模型预测数据,最后进行融合; 3. 从专业角度出发进行改进。如本赛题,光伏功率可以使用时间序列法和神经网络等方法进行预测。 ## 附:文件(夹)说明 1. DC_Data是赛题提供的数据; 2. main.py 为程序入口代码; 3. Load_Save_Data.py 为加载和保存数据代码; 4. Data_Process.py 为数据预处理(特征工程)代码; 5. Train_Predict.py 为训练、预测数据代码; 6. DC_PV_Power_Predict_2018.ipynb 为初步拿到数据,在jupyter notebook上进行数据探索过程; 7. Task_Info.doc 为赛题要求