# 智慧海洋建设 **Repository Path**: zengxiaohui/smart_ocean_construction ## Basic Information - **Project Name**: 智慧海洋建设 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-07 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README https://tianchi.aliyun.com/course/video?spm=5176.12586971.1001.32.51df5cfdTR8A1D&liveId=41002 https://g2.antv.vision/zh/examples/line/double#series https://www.jiqizhixin.com/articles/2018-11-02-7 ## 环境准备 安装java1.8.0,sudo -E apt install default-jre ***lightgbm GPU 安装*** ``` shell pip install lightgbm --install-option=--gpu --install-option="--opencl-include-dir=/usr/local/cuda-10.0/include/" --install-option="--opencl-library=/usr/local/cuda-10.0/lib64/libOpenCL.so" 如果报错那么可以尝试下面的方法 git clone --recursive https://github.com/Microsoft/LightGBM cd LightGBM mkdir build cd build cmake -DUSE_GPU=1 .. make -j cd ../LightGBM/python-package sudo python setup.py install ``` pip install -r requestments.txt ## 框架说明 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍 ## 集成学习 ### bagging (自助法、自助聚合) > 该方法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。 在「并行化的方法」中,我们单独拟合不同的学习器,因此可以同时训练它们。最著名的方法是「bagging」(代表「自助聚合」),它的目标是生成比单个模型更鲁棒的集成模型。 ### boosting (通常被称为「adaboost」)(随机森林、提升法) >该方法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。 *sklearn中有实现的:自适应提升(adaboost )和梯度提升(gradient boosting) ### stacking(堆叠法) >该方法通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。 ### 特征工程 https://tianchi.aliyun.com/course/video?liveId=2849 *** 细节很重要 *** * 时间窗划分导致的缺失值 31天, * Shift导致的缺失值 第1天减第2天的数据,第2天减第3天的数据 * 特征提取细节:除法还是ln *** 层次化时间序列特征 *** * https://github.com/blue-yonder/tsfresh * 时间窗统计特征:最大,最小,均值,分位数(10%,20%,30%.。。。) * 差分统计特征:连续值,对比 ### 我的代码执行顺序 清洗和时间序列化特征 将csv合并为一个大的csv文件和hdf文件.ipynb 数据分析.ipynb 数据特征转换变化.ipynb 重要特征排序和得到最优特征.ipynb hyperopt搜索超参数.ipynb 训练和测试.ipynb 结果转换.ipynb ## 总结 * k折拆分,留出法, * 机器学习没有验证集,只有训练,测试集 * 集成学习中的VotingClassifier没有进行了k折拆分,只是进行了投票统计 * DistGridSearchCV进行了5折 * 网格搜索速度慢,但在搜索整个搜索空间方面效果很好,而随机搜索很快,但可能会错过搜索空间中的重要点。幸运的是,还有第三种选择:贝叶斯优化 * 进行重要特征排序后,可以将最不重要的给去除不加入训练,这样不影响准确率而且还会提高训练速度