Coder Social home page Coder Social logo

xiaoyezi55 / jinnan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from blueschang/jinnan

1.0 0.0 0.0 2.96 MB

天池:津南数字制造算法挑战赛——赛场一:原料企业工艺优化 初赛17/2682(前1%) 复赛31名 Drop队代码

License: Apache License 2.0

Python 0.66% Jupyter Notebook 99.34%

jinnan's Introduction

Drop 队[初赛17/2682(前1%),复赛31名] 比赛代码


  • 我的 github 和 博客:

github:https://github.com/BluesChang

博客:https://blueschang.github.io

  • 队友 taoyafan 的 github 和 博客:

github: https://github.com/taoyafan

博客: https://me.csdn.net/taoyafan

环境要求

  • 系统

ubuntu 16.04

  • python 版本

python 3.5 或以上

  • 需要的库

numpy, pandas, lightgbm, xgboost, sklearn

文件说明

包括初赛和复赛,初赛中包括本地最终程序(.ipynb)、提交的程序(.py)和 历史程序

建议看本地最终程序,里面标题、注释和输出都比较全,方便阅读。

提交的程序为本地程序转成.py格式,然后稍加改善(main函数、结构、路径、输入约束等),介绍可以看里面的readme。

历史程序里面都是记录了我学习的历程。

程序说明

  • 程序思路:

读取数 -> 手动处理训练集明显异常数据 -> 数据清洗 -> 特征工程 -> 训练

数据清洗:

删除缺失率过高的数据 -> 处理字符时间(段) -> 计算时间差 -> 处理异常值 -> 删除单一类别占比过大的特征

特征工程:

构建新特征 -> 利用特征之间的相关性预测 nan 值 -> 后向特征选择

训练:

使用 lgb 和 xgb 自动选择最优参数, 然后融合

  • 数据通路:

数据读取得到 train, test ----> 合并得到 full ---> 经过 pipe line 得到 pipe_data ---> 训练集测试集分割得到 X_train 和 X_test ---> 训练得到结果 oof 和 predictions

运行说明

在复赛的一级目录下还需要 data 和 result 文件夹,分别放训练、测试数据和最终生成结果,最终生成的结果文件名为:测试名_模型名_结果_特征数量_时间.csv(提交的程序按照官方要求命名)

复赛程序说明

复赛内容包括收率预测和最优参数生成。

  • 收率预测:

    与初赛类似,但有所改动,改动如下:

    (1)最终异常数据并没有用其他特征来预测,只是简单的改变为缺失值,最后发现效果甚至好于用其他特征预测。

    (2)未使用 id 特征。

    (3)经过多次特征选择最终决定用 9 个特征,因此略去了特征选择的过程。

  • 最优参数生成:

    测试了两种方法,并最终采用粒子群算法:

    (1)梯度下降:通过数值方法计算每个特征的梯度,然后按照梯度下降的方法更新参数,但是最终发现梯度下降对于树模型基本没用,猜测因为特征略微改变后不影响分裂后的结果,因此大部分时候梯度为 0。

    (2)粒子群算法:每个粒子代表一组参数,优化目标为最优参数,寻找最优的粒子。并测试了不同的参数,确保找到最优的参数。

复赛.ipynb 为本地程序,包括包括收率预测和最优参数生成。

文件夹“津南数字制造算法挑战赛+17+Drop”为最终提交的复赛程序,不包括最优参数生成,只包括收率预测。

jinnan's People

Contributors

blueschang avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.