精华内容
下载资源
问答
  • 工业大数据竞赛

    2017-12-12 10:33:52
    近年来,随着大数据的火热,机器学习已从学术界的科研熔炉中慢慢走出来,开始寻求工业实践落地,此时工业大数据竞赛作为新一轮实践平台,为更多高校、科研单位的技术科研成果的场景实践提供了可能。 1.天池工业AI...

    近年来,随着大数据的火热,机器学习已从学术界的科研熔炉中慢慢走出来,开始寻求工业实践落地,此时工业大数据竞赛作为新一轮实践平台,为更多高校、科研单位的技术科研成果的场景实践提供了可能。

    1.天池工业AI大赛-智能制造质量预测

    竞赛介绍:
    12月7日,在2017云栖大会•苏州峰会上,由苏州高新区与阿里云联合举办的天池工业AI大赛正式启动。此次大赛要求选手利用生产参数准确预测产品质量,从而提高生产制造企业的良品率。期间选手将利用人工智能等多种技术改进生产环节,这也意味着人工智能与工业智造的进一步融合。
    大赛面向全社会开放,高等院校、科研单位、互联网企业、创客团队人员均可报名。

    • 初赛(2017年12月18日-2018年1月16日)
    • 复赛(1月18日—1月29日)
    • 决赛(2月6日)

    竞赛地址:
    天池工业AI大赛-智能制造质量预测
    奖项设置:
    冠军:1支队伍,奖金贰拾万,颁发获奖证书
    亚军:2支队伍,奖金拾万,颁发获奖证书
    季军:3支队伍,奖金伍万,颁发获奖证书

    2.首届(2017)中国工业大数据创新竞赛【已结束】

    竞赛介绍:
    为进一步探索工业大数据对工业改革的深远影响,由工业和信息化部指导,中国信息通信研究院主办的首届工业大数据创新竞赛将于2017年6月-9月隆重举办。大赛以“开放共享、协作共赢”为原则,在发掘专业技术人才的同时,助力于解决工业企业实际问题,以提升制造智能水平,推动中国工业转型升级,推进工业大数据的加速发展,积极促进赛事成果转化和产学研用紧密结合,服务工业经济提质增效升级,推荐优秀专业技术人才找到适合发展的平台。
    本次竞赛内容针对设备故障预测和健康管理(PHM)领域,分两个项目进行竞赛:
    1.风机故障分类,根据SCADA系统采集的数据段判断故障所属类别;
    2.风机故障预测,根据历史数据预测风机结冰故障发生的时间和概率。
    本次大赛面向所有公众开放,高校师生团队、科研单位、初创团队、互联网企业人员等均可报名参与。

    • 初赛(2017年6月15日—8月17日)
    • 复赛(2017年8月18日—9月22日)
    • 专家评审(2017年10月)

    竞赛地址:工业大数据创新竞赛
    奖项设置:
    冠军:1支队伍,RMB 15,000,颁发获奖证书
    亚军:2支队伍,每支队伍 RMB 10,000,颁发获奖证书
    季军:3支队伍,每支队伍 RMB 5,000,颁发获奖证书

    3.PHM

    PHM(Prognostics & Health Management,即故障诊断与健康管理)学会从 2008 年成立一直专注于工业设备故障诊断领域,其每年举办的「PHM 数据竞赛」是国际上高水平的同类赛事之一。首届竞赛由国际 PHM 学会和 NASA 共同举办,此后赛事成为一项传统,受到来自欧美工业界乃至军工界的追捧,至今已经有 10 届。往年的竞赛题目包括「涡轮发动机的剩余寿命预测」、「齿轮箱异常检测」、「晶圆化学机械平坦化异常分类」等,今年则聚焦于「城轨车辆悬挂系统异常检测」。

    本次竞赛包括两个问题:

    1)健康诊断:判断城轨车辆悬挂系统是否处于故障状态
    2)故障定位:从故障车辆的 22 个部件中识别出 1~2 个故障部件

    竞赛地址: PHM2017 data challenge

    4.Kaggle——Statoil/C-CORE Iceberg Classifier Challenge(卫星图像冰山分类挑战)

    竞赛介绍:
    对出入加拿大纽芬兰岛各港口的货船、油船、邮轮而言,每次进出都会提心吊胆,唯恐撞上格陵兰岛方向漂来的冰山。目前看来,查看卫星图像是发现冰山的最佳方法,但是这个办法仍不够完美。图像上,海洋中一个亮点意味着可能就是冰山,不过也可能是船只或者鲸。美国雅虎新闻网昨日援引海洋冷资源工程中心副主席德斯蒙德·鲍尔的话报道:“问题是,卫星图像上除了显示冰山,还显示很多东西,船只、海洋生物,因此我们需要知道每样东西什么样。”
    加拿大海洋冷资源工程中心和挪威国家石油公司提供了5000张卫星图像,其中包括一些冰山,希望全球感兴趣的团队或个人开发软件,帮助识别冰山。
    竞赛地址:
    Statoil/C-CORE Iceberg Classifier Challenge
    奖项设置:

    • 1st place - $25,000
    • 2nd place - $15,000
    • 3rd place - $10,000
    展开全文
  • 赛后总结:第四届工业大数据竞赛注塑成型 原文首发于我的公众号 前言 以第四届工业大数据竞赛虚拟量测任务为例,介绍大家的思路。自己代码乱写,导致不知道最后要复现的是哪个,加上工作上各种人员优化,就没有...

    赛后总结:第四届工业大数据竞赛注塑成型

    在这里插入图片描述
    原文首发于我的公众号

    前言

    以第四届工业大数据竞赛虚拟量测任务为例,介绍大家的思路。自己代码乱写,导致不知道最后要复现的是哪个,加上工作上各种人员优化,就没有进一步。虽然放弃比赛,但对数据掌握的还算透彻,刚好决赛也都有答辩视频,就我个人理解和优秀选手的开源,在这里和大家一起分享一下。比赛链接:http://www.industrial-bigdata.com/Competition

    只有一次评分的机会,本以为是摸奖赛,但前排还是很稳健。祝贺各位优秀的选手,也通过直播学习了一下大家的思路,学习了很多新思路和方法,总结如下。很多基于我对赛题的理解,以及根据答辩视频的猜测,如有错误之处,欢迎指正。

    工业大数据

    工业大数据有着自己的特点,因此结合工业特点和机器学习是关键的一点。

    工业大数据数据质量的“3B”挑战:broken,bad,background

    工业大数据的“3C”目的:Comparison(比较性),Correlation (相关性),Consequence (因果性)

    关于数据和模型也可以参考我之前的两篇文章:

    数据竞赛:第四届工业大数据竞赛-虚拟测量

    数据挖掘III:数据敏感性

    模型总结

    由于预测存在外插(Extrapolation)部分,所以决赛第一和第二都在模型中运用了线性回归模型来增强外插的预测。看来对外插部分的预测是前排的关键,同时三四位的深度学习模型也很有可取之处,如果开源代码值得再仔细看看。

    Teletraan:关键点在于,数据驱动(lightgbm)为主,用机理进一步优化。通过构造特征保压压力积分和,认识到了数据存在新工况并予以优化。验证时用了时间序列交叉验证的方法。

    LHD战队:关键点在于,根据机理采用线性回归模型为主,用数据模型adaboost进一步优化为辅助。通过流体力学得到的启发,将复杂机理简化为小扰动下的线形模型,得到泛化性较好的模型。

    star:关键点在于,深度学习模型一把梭,效果也非常好,能把深度学习模型调的效果如此之好很厉害。主要采用ResSluice模型,以及多个size同时学习的多任务学习。

    中南小组:深挖机器参数和过程参数。也是深度学习模型,采用了卷积神经网络conv1D和spatial pyramid pooling,对时域特征裁补padding,并将时域特征进行整合。

    Micro_i:主要在于运用了时间序列特征方法以及autoencoder的表征学习。打标,根据调机段对尺寸数据分组,也就是时间序列相关的衍生特征。在特征生成和特征筛选方面做的很细致。

    GT_respect:详细细致的特征清洗、缺失填充、标准化、PCA降维。模型采用xgboost对size1和size2建模,size3采用LightGBM建模,并尝试了模型融合。

    MX:树模型与阶段优化。时域统计特征,并注重了注射、保压、冷却、脱模阶段的时域特征,额外的比如peak-to-peak等特征,采用了Lightgbm模型。主要采用相关性降维。

    DGAIBD:发现了训练集和测试集的不同。异常样本分析去掉了几个size异常点,而特征几乎差不多,因此去掉了这几个异常点。特征采用6个时间特征与3个频域特征。并且将size3的预测值作为size1的特征用来预测了。

    石龙:去除唯一值特征、共线性特征和异常点,高频数据采用平均值、中位数、最大值、求和、标准差、偏度等。模型采用深度学习,bn层和dropout层,设计时借鉴无限宽的神经网络特点。loss函数优化、参数初始化。

    许泽霖:特征工程上对高频传感器提取了mean\max\min\median\var等特征,还依据不同phase选取了很多的特征,skew,kurt,sum等。模型xgboost和lightgbm,样本选择时去除了几个异常点,也用了主成分分析。

    答辩总结

    PPT的角度:Teletraan浓浓的企业风,每页信息简明扼要,看来浸淫工业界多年。LHD和star浓浓的学术风,每页信息量密集紧凑、逻辑层层递进,风格不同却是高手。

    答辩角度:本身最抑扬顿挫、有节奏感的是石龙团队,不过前面广告说的太多了。

    附冠军方案分享

    联系方式

    公众号搜索:YueTan

    展开全文
  • 所以我们建立注塑成型大数据,来感知这些不可见的干扰因素,然后通过分析建模解决甚至避免现场痛点问题。比如成型过程的异常检测预警及不良品的识别,有助于减少甚至避免不合格品的产生,对于管控产品质量、降低生产...

    原文首发于我的公众号

    背景

    注塑成型作为做常见的一种塑料制品加工工艺,它所加工的产品在生活中随处可见,例如电子产品、汽车配件、玩具以及其他众多消费品。由于成型系统较为复杂并且对环境较为敏感,注塑成型加工过程中的不稳定因素很容易导致产品不良的发生,造成经济损失。所以我们建立注塑成型大数据,来感知这些不可见的干扰因素,然后通过分析建模解决甚至避免现场痛点问题。比如成型过程的异常检测预警及不良品的识别,有助于减少甚至避免不合格品的产生,对于管控产品质量、降低生产成本有重要的作用。同时,针对异常产生现场人员因经验差异导致调机无法规范化的问题,如果能够根据成型过程数据和异常事件进行建模分析,改进调机策略,将会节省大量的时间成本和经济成本。

    任务

    要求选手针对成型工艺品质异常中尺寸超规问题进行虚拟量测。根据训练集所提供所有模次产品的过程数据和相对应的实际量测值(标签)进行虚拟量测模型建模,然后对测试集中的产品进行尺寸预测,即虚拟量测。

    数据

    本次竞赛的数据集包含以下多种来源:

    传感器高频数据:该数据来自于模温机及模具传感器采集的数据,文件夹内每一个模次对应一个csv文件,单个模次时长为40~43s,采样频率根据阶段有20Hz和50Hz两种,含有24个传感器采集的数据;
    成型机状态数据(data_spc):该数据来自成型机机台,均为表征成型过程中的一些状态数据,每一行对应一个模次,数据维度为86维;
    机台工艺设定参数(data_set):文件夹中含有注塑成型的81种工艺设定参数;
    产品测量尺寸(size):文件夹内含有每个模次产品的3维尺寸;
    分析
    首先根据任务与数据简单查看数据。查看所有特征列,列名,类型,空值统计,基本describe信息。

    查看目标列的信息。首先是趋势:

    在这里插入图片描述

    目标列的分布:
    在这里插入图片描述

    查看各个特征与目标的关系,以及各个特征训练集与测试集分布的不同。

    在这里插入图片描述
    在这里插入图片描述

    建模

    在数据探索性分析基础上,就是建模过程。首先,可以把metrics函数写出来。然后是特征导入,模型、验证、提交各个部分。baseline写完之后,首先保证验证部分是合理的,判断依据是本地测试结果与线上提交结果的同步,允许微小不同,但应保持同步。

    对于常规的表格问题,首选尝试自然是lightgbm,除了性能好之外,还可以方便的输出特征重要性,进行特征选型。我的基本模型是这样的,lightgbm和交叉验证融合到一起。

    def model():
        predictions = np.zeros(len(X_test))
        for i, (train_index, val_index) in enumerate(skf.split(X_train,y_train)):
            print("fold {}".format(i))
            X_tr, X_val = X_train.iloc[train_index], X_train.iloc[val_index]
            y_tr, y_val = y_train.iloc[train_index], y_train.iloc[val_index]
            lgb_train = lgb.Dataset(X_tr, y_tr)
            lgb_val = lgb.Dataset(X_val, y_val)
            clf = lgb.train(lgb_params, lgb_train, num_round=2000, valid_sets = [lgb_train, lgb_val],verbose_eval=50, 
                            early_stopping_rounds = 50)
            print('best iteration = ', clf.best_iteration)
            predictions += clf.predict(X_test, num_iteration=clf.best_iteration) / skf.n_splits
        return predictions
    

    迭代与后处理

    从数据、特征、模型去考虑细致深入的改进。错误分析,尝试寻找tricks。

    也值得纪念一下自己第一次认真参加的数据比赛。决赛的翻车自然就是另一个故事了。

    比赛的总结

    常规套路

    • lightgbm baseline
    • nn baseline
    • 训练与测试集同分布检测
    • 特征筛选(同分布也可以认为是一种提前筛选)
    • 本地交叉验证
    • 特征工程

    以上做的细致一点,初赛可以达到1e5以下。虽然离第一结果很远,但可以维持在top20以内。但是决赛前三天,风云突变,这个成绩只能排50以外了。

    弯路

    我的大多尝试都越来越差,即使本地测试提高了,排行榜也可能差远了。
    其实没什么弯路,只是尝试了太多不起作用的调整,目标后来甚至是能坚持完赛,别放弃就好。若干年后的一个秋天,当我回想起我第一次参加数据比赛的经历,因为好好了解了一下注塑机的历史,大概只记得注塑机的发明动力源自以前的台球都是昂贵的象牙做的。

    联系方式

    公众号搜索:YueTan

    展开全文
  • #数据处理代码 import pandas as pd import numpy as np #提取M1数据 pinlv=[] #M_number=['M1','M2','M3','M4','M5'] M_xilie=['a','b','c','d','e'] boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','...
    #数据处理代码
    
    import pandas as pd
    import numpy as np
    
    #提取M1数据
    pinlv=[]
    #M_number=['M1','M2','M3','M4','M5']
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端X':[[]],'压缩机非联端Y':[[]],'压缩机联端X':[[]],'压缩机联端Y':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(7):
            file_count=len(os.listdir('D:\训练数据\M1\M1%s\%s'%(M_xilie[h],boxing[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(7):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\训练数据\M1\M1%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[x[:4] for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\训练数据\M1\M1%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
    
                pinlv=pinlv+listdata2    
    
            #import array
            #int16重要!
            #pinlv=np.array(pinlv,dtype=np.int16)
            #import wave
            #import numpy as np
            #import scipy.signal as signal
            #import scipy.io.wavfile
    
            #scipy.io.wavfile.write('D:\训练数据\M1\M1a\%s.wav' %(boxing[h]),44100,pinlv)   #7.2
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\训练数据\M1.csv')
    import pandas as pd
    import numpy as np
    
    #提取M2数据
    pinlv=[]
    #M_number=['M1','M2','M3','M4','M5']
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端X':[[]],'压缩机非联端Y':[[]],'压缩机联端X':[[]],'压缩机联端Y':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(6):
            file_count=len(os.listdir('D:\训练数据\M2\M2%s\%s'%(M_xilie[h],boxing[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(6):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\训练数据\M2\M2%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[x[:4] for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\训练数据\M2\M2%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
    
                pinlv=pinlv+listdata2    
    
            #import array
            #int16重要!
            #pinlv=np.array(pinlv,dtype=np.int16)
            #import wave
            #import numpy as np
            #import scipy.signal as signal
            #import scipy.io.wavfile
    
            #scipy.io.wavfile.write('D:\训练数据\M1\M1a\%s.wav' %(boxing[h]),44100,pinlv)   #7.2
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\训练数据\M2.csv')
    import pandas as pd
    import numpy as np
    
    #提取M3数据
    pinlv=[]
    #M_number=['M1','M2','M3','M4','M5']
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端X':[[]],'压缩机非联端Y':[[]],'压缩机联端X':[[]],'压缩机联端Y':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(7):
            file_count=len(os.listdir('D:\训练数据\M3\M3%s\%s'%(M_xilie[h],boxing[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(7):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\训练数据\M3\M3%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[x[:4] for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\训练数据\M3\M3%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
    
                pinlv=pinlv+listdata2    
    
            #import array
            #int16重要!
            #pinlv=np.array(pinlv,dtype=np.int16)
            #import wave
            #import numpy as np
            #import scipy.signal as signal
            #import scipy.io.wavfile
    
            #scipy.io.wavfile.write('D:\训练数据\M1\M1a\%s.wav' %(boxing[h]),44100,pinlv)   #7.2
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\训练数据\M3.csv')
    import pandas as pd
    import numpy as np
    
    #提取M4数据
    pinlv=[]
    #M_number=['M1','M2','M3','M4','M5']
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端A','压缩机非联端B','压缩机联端A','压缩机联端B','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端A':[[]],'压缩机非联端B':[[]],'压缩机联端A':[[]],'压缩机联端B':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(7):
            file_count=len(os.listdir('D:\训练数据\M4\M4%s\%s'%(M_xilie[h],boxing[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(7):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\训练数据\M4\M4%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[x[:3] for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\训练数据\M4\M4%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
    
                pinlv=pinlv+listdata2    
    
            #import array
            #int16重要!
            #pinlv=np.array(pinlv,dtype=np.int16)
            #import wave
            #import numpy as np
            #import scipy.signal as signal
            #import scipy.io.wavfile
    
            #scipy.io.wavfile.write('D:\训练数据\M1\M1a\%s.wav' %(boxing[h]),44100,pinlv)   #7.2
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\训练数据\M4.csv')
    import pandas as pd
    import numpy as np
    
    #提取M5数据
    pinlv=[]
    #M_number=['M1','M2','M3','M4','M5']
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端X':[[]],'压缩机非联端Y':[[]],'压缩机联端X':[[]],'压缩机联端Y':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(7):
            file_count=len(os.listdir('D:\训练数据\M5\M5%s\%s'%(M_xilie[h],boxing[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(7):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\训练数据\M5\M5%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[x[:4] for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\训练数据\M5\M5%s\%s\wave_%s.csv' %(M_xilie[g],boxing[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
    
                pinlv=pinlv+listdata2    
    
            #import array
            #int16重要!
            #pinlv=np.array(pinlv,dtype=np.int16)
            #import wave
            #import numpy as np
            #import scipy.signal as signal
            #import scipy.io.wavfile
    
            #scipy.io.wavfile.write('D:\训练数据\M1\M1a\%s.wav' %(boxing[h]),44100,pinlv)   #7.2
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\训练数据\M5.csv')
    def xiaoshudian(x):
        t=0
        for i in range(len(x)):
            if x[i]=='.':
                t=t+1
            if t==2:
                return x[:i]
            if i==len(x)-1:
                return x
    #xiaoshudian('1.1.23456789')
    import pandas as pd
    import numpy as np
    
    #提取决赛数据
    pinlv=[]
    M_xilie=['_1','_2','_3','_4','_5']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)']
    
    boxing2=['汽轮机非联端A','汽轮机非联端B','汽轮机联端A','汽轮机联端B','汽轮机位移A(波形)','汽轮机位移B(波形)']
    
    fenlei=pd.DataFrame({'压缩机非联端X':[[]],'压缩机非联端Y':[[]],'压缩机联端X':[[]],'压缩机联端Y':[[]],'压缩机轴位移A(波形)':[[]],\
                         '压缩机轴位移B(波形)':[[]],'压缩机轴位移C(波形)':[[]],'label':[[]]})
    
    file_all_count=[]
    k=0
    import os
    for h in range(5):
        for i in range(6):
            file_count=len(os.listdir('D:\决赛数据\M18\M18%s\%s'%(M_xilie[h],boxing2[i])))
            file_all_count.append(file_count)
    
    for g in range(5):
        for h in range(6):
            for i in range(file_all_count[k]):
                df=pd.read_csv('D:\决赛数据\M18\M18%s\%s\wave_%s.csv' %(M_xilie[g],boxing2[h],(i+1)),skiprows=5)
                df=df.drop(['wave'],axis=1)    
                #df.loc[i+1]=list(data)
                listdata=list(df)
                listdata=[xiaoshudian(x) for x in listdata]
                listdata=[float(x) for x in listdata]
    
                df2=pd.read_csv('D:\决赛数据\M18\M18%s\%s\wave_%s.csv' %(M_xilie[g],boxing2[h],(i+1)),nrows=1,header=None)
                freq=df2.loc[0,1]
    
                listdata2=[x*freq for x in listdata]
     
                pinlv=pinlv+listdata2    
    
            fenlei.loc[g,['%s'%(boxing[h])]]=[pinlv]
            pinlv=[]
            k=k+1
    fenlei.to_csv('d:\决赛数据\M18.csv')
    #转化为 .wav文件
    import librosa
    import numpy as np
    import pandas as pd
    import scipy
    df=pd.read_csv('d:\决赛数据\M17.csv')
    df2=df.drop(['Unnamed: 0'],axis=1)
    
    M_xilie=['_1','_2','_3','_4','_5']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)']
    
    for h in range(5):
        for i in range(6):
            df2.iloc[h,i]=df2.iloc[h,i][1:-1]
            pinlv=df2.iloc[h,i].split(',')
            pinlv=[float(x) for x in pinlv]
            pinlv=np.array(pinlv,dtype=np.int16)
            scipy.io.wavfile.write('D:\决赛数据\M17%s%s.wav' %(M_xilie[h],boxing[i]),44100,pinlv)
            
    #模型的训练和检验
    
    #建立模型一: 区分机器是否坏掉
    #读入数据 X y
    import librosa
    import numpy as np
    
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    for g in range(5):
        for h in range(5):
            for i in range(7):
                
                if g==1 and i==6:
                    break
                    
                file_name='D:\训练数据\M%s%s%s.wav'%(g+1,M_xilie[h],boxing[i])  
                X, sample_rate = librosa.load(file_name, res_type='kaiser_fast') 
                mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T,axis=0)
    
                if g==0 and h==0 and i==0:
                    tezhen=mfccs
                else:
                    tezhen=np.vstack((tezhen,mfccs))
    
    from sklearn.preprocessing import LabelEncoder
    from keras.utils import np_utils
    
    X=tezhen
    y=np.array([['a'],['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],['a'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                
                ['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],\
                ['a'],['a'],['a'],['a'],['a'],['a'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],\
                
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g'],\
                ['g'],['g'],['g'],['g'],['g'],['g'],['g']])
    
    lb = LabelEncoder()
     
    y = np_utils.to_categorical(lb.fit_transform(y))
    #训练模型 1
    import numpy as np
    from keras.models import Sequential
    from keras.layers import Dense,Dropout,Activation,Flatten,LSTM
    from keras.layers import Convolution2D,MaxPooling2D
    from keras.optimizers import Adam
    from sklearn import metrics
    
    num_labels = y.shape[1]
    filter_size = 2
    
    # build model
    model=Sequential()
     
    model.add(Dense(256,input_shape=(40,)))
    model.add(Activation('relu'))
    model.add(Dropout(0.1))
     
    model.add(Dense(64))
    model.add(Activation('relu'))
    model.add(Dropout(0.1))
     
    model.add(Dense(num_labels))
    model.add(Activation('softmax'))
     
    model.compile(loss='binary_crossentropy',metrics=['accuracy'],optimizer='adam')
    
    model.fit(X,y,batch_size=34,epochs=25)
    
    
    #获取全组决赛数据
    import librosa
    import numpy as np
    
    M_xilie=['_1','_2','_3','_4','_5']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)']
    
    for g in range(8):
        for h in range(5):
            for i in range(6):
           
                file_name='D:\决赛数据\M%s%s%s.wav'%(g+11,M_xilie[h],boxing[i])
                X, sample_rate = librosa.load(file_name, res_type='kaiser_fast')
                mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T,axis=0)
    
                if g==0 and h==0 and i==0:
                    tezhen_juesai=mfccs
                else:
                    tezhen_juesai=np.vstack((tezhen_juesai,mfccs))
    X_juesai=tezhen_juesai
    print(X_juesai.shape)
    (240, 40)
    #预测决赛全组数据
    ar=model.predict_classes(X_juesai)
    for i in np.arange(0,240,6):
        print(ar[i:i+6])
        if (i+1)%5==0:
            print('')
    
    #建立模型二: 区分机器具体时间坏掉
    #读入数据 X y
    import librosa
    import numpy as np
    
    M_xilie=['a','b','c','d','e']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)','压缩机轴位移C(波形)']
    
    for g in range(2):
        for h in range(5):
            for i in range(7):
                
                if g==1 and i==6:
                    break
                    
                file_name='D:\训练数据\M%s%s%s.wav'%(g+1,M_xilie[h],boxing[i])  
                X, sample_rate = librosa.load(file_name, res_type='kaiser_fast') 
                mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T,axis=0)
    
                if g==0 and h==0 and i==0:
                    tezhen=mfccs
                else:
                    tezhen=np.vstack((tezhen,mfccs))
    
    from sklearn.preprocessing import LabelEncoder
    from keras.utils import np_utils
    
    X2=tezhen
    y2=np.array([['a'],['a'],['a'],['a'],['a'],['a'],['a'],\
                ['b'],['b'],['b'],['b'],['b'],['b'],['b'],\
                ['c'],['c'],['c'],['c'],['c'],['c'],['c'],\
                ['d'],['d'],['d'],['d'],['d'],['d'],['d'],\
                ['e'],['e'],['e'],['e'],['e'],['e'],['e'],\
                
                ['a'],['a'],['a'],['a'],['a'],['a'],\
                ['b'],['b'],['b'],['b'],['b'],['b'],\
                ['c'],['c'],['c'],['c'],['c'],['c'],\
                ['d'],['d'],['d'],['d'],['d'],['d'],\
                ['e'],['e'],['e'],['e'],['e'],['e']])
    
    lb = LabelEncoder()
     
    y2 = np_utils.to_categorical(lb.fit_transform(y2))
    #训练模型 2
    import numpy as np
    from keras.models import Sequential
    from keras.layers import Dense,Dropout,Activation,Flatten,LSTM
    from keras.layers import Convolution2D,MaxPooling2D
    from keras.optimizers import Adam
    from sklearn import metrics
    
    num_labels = y2.shape[1]
    filter_size = 2
    
    # build model
    model2=Sequential()
     
    model2.add(Dense(256,input_shape=(40,)))
    model2.add(Activation('relu'))
    model2.add(Dropout(0.1))
     
    model2.add(Dense(64))
    model2.add(Activation('relu'))
    model2.add(Dropout(0.1))
     
    model2.add(Dense(num_labels))
    model2.add(Activation('softmax'))
     
    model2.compile(loss='categorical_crossentropy',metrics=['accuracy'],optimizer='adam')
    
    model2.fit(X2,y2,batch_size=34,epochs=25)
    
    #获取故障组决赛数据
    import librosa
    import numpy as np
    
    M_number=['11','16','17','18']
    M_xilie=['_1','_2','_3','_4','_5']
    boxing=['压缩机非联端X','压缩机非联端Y','压缩机联端X','压缩机联端Y','压缩机轴位移A(波形)','压缩机轴位移B(波形)']
    
    for g in range(4):
        for h in range(5):
            for i in range(6):
           
                file_name='D:\决赛数据\M%s%s%s.wav'%(M_number[g],M_xilie[h],boxing[i])
                X, sample_rate = librosa.load(file_name, res_type='kaiser_fast')
                mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T,axis=0)
    
                if g==0 and h==0 and i==0:
                    tezhen_juesai=mfccs
                else:
                    tezhen_juesai=np.vstack((tezhen_juesai,mfccs))
    X_juesai=tezhen_juesai
    print(X_juesai.shape)
    (120, 40)
    #预测故障组决赛数据
    ar=model2.predict_classes(X_juesai)
    for i in np.arange(0,120,6):
        print(ar[i:i+6])
        if (i+1)%5==0:
            print('')
    
     

     

    展开全文
  • 3 数据描述 竞赛中有4类数据,包括入库流量数据(每3个小时)、39个遥测站降雨数据(小时)、日降雨预报数据(未来5天)、环境观测数据(天)。 赛事方提供2013年1月1日0时~2016年12月31日24时的相关数据作为开放...
  • 所以我们建立注塑成型大数据,来感知这些不可见的干扰因素,然后通过分析建模解决甚至避免现场痛点问题。比如成型过程的异常检测预警及不良品的识别,有助于减少甚至避免不合格品的产生,对于管控
  • 来源:中国信息通信研究院CAICT在工业和信息化部信息化和软件服务业司、工业互联网产业联盟指导下,中国信息通信研究院牵头成立工业大数据创新竞赛组委会,组织编写了《工业大数据创新竞赛白皮书(2017)——风机...
  • 第四届工业大数据创新竞赛-注塑成型工艺的虚拟量测和调机优化-决赛排名24 初赛、决赛数据和代码、说明文件和调机报告
  • 为加速工业大数据应用创新,强化以实践能力为导向的应用型人才培养,中国信息通信研究院和深圳宝安区人民政府携手,联合国内优秀企业共同举办第四届工业大数据创新竞赛竞赛聚焦细分行业、特定领域痛...
  • 3日,由工业和信息化部指导、中国信息通信研究院主办的“首届(2017)中国工业大数据创新竞赛”启动仪式在北京举行。工业和信息化部党组成员、总工程师张峰出席并致辞,中国工程院院士孙家广作题为“工业大数据:从...
  • 大数据竞赛心得

    千次阅读 2019-07-05 09:47:56
    下面是自己参加竞赛的一点经历和心得,希望对你有所帮助! 接触竞赛也有一年多了,期间收获最好的成绩应该是第四名,虽然成绩不怎么样,但是...大多赛题都来源于我们的生活,或工业中的各种难题,比如手机流量套餐...
  • 大数据竞赛解决方案

    2020-03-18 10:05:02
    工业和信息化部正式发布了《大数据产业发展规划(2016-2020年)》,明确了“十三五”时期大数据产业的发展思路、原则和目标,将引导大数据产业持续健康发展,有力支撑制造强国和网络强国建设。  2018年9月 工信部...
  • a) 传感器高频数据:该数据来自于模温机及模具传感器采集的数据,文件夹内每一个模次对应一个csv文件,单个模次时长为40~43s,采样频率根据阶段有20Hz和50Hz两种,含有24个传感器采集的数据; b) 成型机状态数据...
  • a) 传感器高频数据:该数据来自于模温机及模具传感器采集的数据,文件夹内每一个模次对应一个csv文件,单个模次时长为40~43s,采样频率根据阶段有20Hz和50Hz两种,含有24个传感器采集的数据; b) 成型机状态数据...
  • 第四届工业大数据创新竞赛-水电站入库流量预测 成绩排名: 初赛线上第一段2月份25.4分,第二段最高分10.0分,第三段不好意思说,可看文章末尾我的提交结果记录,第一次9月8号提交第六名,当时开心的要死,之后排名...
  • 赛题地址:工业大数据产业创新平台题目描述:对于水电站来说,发电是主要经济效益来源,而水就是生产的原料。对进入水电站水库的入库流量进行精准预测,能够帮助水电站对防洪、发电计划调度工作进行合理安排,实现...
  • 赛题地址:工业大数据产业创新平台题目描述:对于水电站来说,发电是主要经济效益来源,而水就是生产的原料。对进入水电站水库的入库流量进行精准预测,能够帮助水电站对防洪、发电计划调度工作进行合理安排,实现...
  • 无论你是机械制造、自动化或 IT 相关专业的在校生,还是企业从事技术改造、智能化升级的从业人员,一定不会对近期火热的「新基建」、「智能制造」、「工业互联网」、「数字化转型」等概念感到陌生...
  • 记者 | 张俊潇 ... 微信公众号ID | datayuancn ...10月11日,“2017杭州·云栖大会”在万众期待中盛大召开,会上马云宣布组建全球科技研究机构“达摩院”,为整个大会奠定...双方洽谈已久的合作——工业AI大赛暨2017中
  • 中国信息通信研究院总工程师余晓晖,以“中国工业大数据产业发展及应用趋势暨中国首届工业大数据创新竞赛信息发布“为题探讨了自己的看法。 以下为嘉宾演讲实录: 尊敬的各位院士,各位嘉宾,各位专家,上午好!...
  • 工业和信息化部正式发布了《大数据产业发展规划(2016-2020年)》,明确了“十三五”时期大数据产业的发展思路、原则和目标,将引导大数据产业持续健康发展,有力支撑制造强国和网络强国建设。  2018年9月 工信部...
  • 2016年1月17日,为贯彻落实《中华人民共和国国民经济和社会发展第十三个五年规划纲要》和《促进大数据发展行动纲要》,加快实施国家大数据战略,推动大数据产业健康快速发展,工业和信息化部印发了《大数据产业发展...
  • 机器之心原创作者:高静宜在刚刚结束的国际 PHM 数据竞赛中,昆仑数据的 K2 代表队以绝对优势一举夺冠,成为 PHM Data Challenge 十年竞赛史上首个完全由中国本土成员组成的冠军团队。团队由昆仑数据首席数据...
  • 天池竞赛报名网址:2018广东工业智造大数据创新大赛——智能算法赛 智能算法赛以“铝型材表面瑕疵识别”为主题,赛前有给出300张图片用于熟悉并摸索建模的方向。、 思路很简单,CNN + TensorFlow 就可以完成整个...
  • 2018年全国信息安全竞赛-安徽省大数据与...以前听到大数据觉得比较虚无缥缈,但却对其一直有一份好奇,可能正是因为这种好奇,让我有幸的参加了这次大数据竞赛,最终确定组了团队代表学校参赛。真正准备的时间准确...
  • 1 第三届工业大数据创新竞赛——转子部件脱落故障预测 ...内容: 大型旋转机组设备高速旋转、动能巨大,转子部件脱落故障给设备安全运行带来巨大威胁。...第四届工业大数据竞赛 2 轴承故障检测训练赛 竞赛背景: .
  • 编者按:机器人技术、大数据、3D打印、新型材料……新技术的浪潮正酝酿一场崭新的工业革命,它将深刻改变制造业和人类生活。而在这场抢占未来发展制高点的竞赛中,嗅觉灵敏的浙商已经行动起来。本报即日起推出《新...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

工业大数据竞赛