Giter Site home page Giter Site logo

tianchi-industry-ai's Introduction

天池工业AI大赛-智能制造质量预测 思路代码

First文件夹中存放了初赛最开始使用的PCA思路代码。代码做了精简删除了关于皮尔森、互信息筛选特征的部分,使用GBDT筛选特征需要对初赛处理文件代码进行替换和修改。

初赛处理文件:按照TOOL的不同将原始数据分割成若干数据集,针对每个数据集分别使用PCA降维,最后合并形成训练集,后期舍弃该方案。
线下验证:通过删除全空字段、删除数值过大字段、删除取值单一字段处理后,使用GBDT + SelectFromModel生成训练集,最后使用xgb、lgb单模型等模型、以及构建Stacking进行验证。
线上验证:使用xgb单模型、Stacking模型提交结果。
遗传算法:本来考虑用遗传算法在使用GBDT构建出特征候选集的基础上再筛选特征,但是整体框架编写完后发现需要调节的细节太多,后续只用到适应性函数来辅助线下验证。
     遗传算法框架:
         1.整体种群设置10个个体,每个个体的基因长度为候选特征集长度,基因编码采用0 1二进制法,最后随机生成基因序列初始化种群。
         2.适应函数采用10折线性回归结果。
         3.选择算子采用轮盘赌算法,选择该轮进化中适应性最高的个体。
         4.交叉算子采用两端交叉法,随机选择父本和母本的一段基因序列进行交换。
         5.变异算子采用随机变异法,初始设定变异概率阈值,每个个体生成一个随机数,若随机数小于阈值,则对应个体的随机基因点进行取反变异。
     tips:
         实际使用时发现,轮盘赌算法在数轮进化后,所有个体最终的适应性值趋于一致,但是该值并不是最优结果,可能由于在每轮进化中最优个体没有保存下来,而产生的最优个体在轮盘赌中被洗牌。这里的选择算子可考虑换成锦标赛算法等。
         适应性函数中使用线性回归主要是考虑缩短时间,这里应该使用树形模型作为适应性评价模型,以保持和特征选择所使用的模型一致。
         交叉算子所使用的两端交叉,与两个端点的随机选择直接相关,端点距离太远可能导致重要特征被替换,距离太近导致无法实现交叉的效果,这个可以考虑更加灵活的交叉方法,比如固定长度单段交叉、固定长度多段交叉等等。
         变异算子主要是变异阈值的选取,可以通过增加种群个体数量,增加遗传轮次进行调整。
         关于遗传算法的几个关键算子,还有很多方法和技巧...在后续的比赛中争取再优化调整。

Second文件夹中存放复赛代码。

复赛处理文件:按照以下步骤生成训练数据:
    1.删除全空字段
    2.转换obj字段,将TOOL字段数值化编码
    3.删除类似日期的较大值
    4.删除全相同字段
    5.四分位处理异常值
    6.再删除一次全相同字段
    7.删除小方差字段
    8.使用GBDT + SelectFromModel筛选特征
    
    最后结果由xgb单模型与Stacking模型融合而成。

tianchi-industry-ai's People

Contributors

aiaiyueq11 avatar

Watchers

 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.